Table of Contents

Class CaseValue

Namespace
The.SQL.QIR.Values
Assembly
Instagile.dll

A sequence of if-then-else tests producing a single value.

[MessagePackObject(false)]
public sealed class CaseValue : Value, IEquatable<Value>
Inheritance
CaseValue
Implements
Inherited Members

Remarks

More general than TernaryValue, which has a more efficient representation in some dbs.

Constructors

CaseValue(Value, params (Condition, Value)[])

public CaseValue(Value elseOperand, params (Condition, Value)[] conditionOperands)

Parameters

elseOperand Value
conditionOperands (Condition, Value)[]

Fields

Conditions

[Key(1)]
public readonly (Condition, Value)[] Conditions

Field Value

(Condition, Value)[]

Else

[Key(0)]
public readonly Value Else

Field Value

Value

Properties

IsLiteral

Whether the value is self-paranthesing.

[IgnoreMember]
public override bool IsLiteral { get; }

Property Value

bool

IsNullable

Whether the value can be NULL at runtime.

[IgnoreMember]
public override bool IsNullable { get; }

Property Value

bool

Joins

Joins required to reach this value.

[IgnoreMember]
public override IEnumerable<Join> Joins { get; }

Property Value

IEnumerable<Join>

Methods

Equals(Value?)

Indicates whether the current object is equal to another object of the same type.

public override bool Equals(Value? obj)

Parameters

obj Value

Returns

bool

true if the current object is equal to the other parameter; otherwise, false.

GetHashCode()

Serves as the default hash function.

public override int GetHashCode()

Returns

int

A hash code for the current object.

ToString()

Returns a string that represents the current object.

public override string ToString()

Returns

string

A string that represents the current object.

Update(Value, (Condition, Value)[])

public CaseValue Update(Value elseOperand, (Condition, Value)[] conditionOperands)

Parameters

elseOperand Value
conditionOperands (Condition, Value)[]

Returns

CaseValue

WithSource(Table, Table)

public override Value WithSource(Table oldSource, Table newSource)

Parameters

oldSource Table
newSource Table

Returns

Value