Struct VariantValue
Represents a materialized variant value as a discriminated union. Preserves exact type information from the variant encoding.
public readonly struct VariantValue : IEquatable<VariantValue>
- Implements
- Inherited Members
Fields
False
The boolean false variant value.
public static readonly VariantValue False
Field Value
Null
The null variant value.
public static readonly VariantValue Null
Field Value
True
The boolean true variant value.
public static readonly VariantValue True
Field Value
Properties
IsArray
Returns true if this is an array value.
public bool IsArray { get; }
Property Value
IsBoolean
Returns true if this is a boolean value.
public bool IsBoolean { get; }
Property Value
IsNull
Returns true if this is a null value.
public bool IsNull { get; }
Property Value
IsObject
Returns true if this is an object value.
public bool IsObject { get; }
Property Value
IsString
Returns true if this is a string value.
public bool IsString { get; }
Property Value
PrimitiveType
Gets the primitive type. For objects/arrays this is a sentinel value.
public VariantPrimitiveType PrimitiveType { get; }
Property Value
Methods
AsArray()
Gets the array elements as a read-only list.
public IReadOnlyList<VariantValue> AsArray()
Returns
AsBinary()
Gets the binary value.
public byte[] AsBinary()
Returns
- byte[]
AsBoolean()
Gets the boolean value.
public bool AsBoolean()
Returns
AsDate()
Gets the Date as a DateTime.
public DateTime AsDate()
Returns
AsDateDays()
Gets the Date value as days since epoch.
public int AsDateDays()
Returns
AsDecimal()
Gets a decimal value. Supported for Decimal4 and Decimal8 only. Decimal16 can hold 38-digit values that exceed decimal range, so use AsSqlDecimal() for Decimal16 instead.
public decimal AsDecimal()
Returns
AsDouble()
Gets the Double value.
public double AsDouble()
Returns
AsFloat()
Gets the Float value.
public float AsFloat()
Returns
AsInt16()
Gets the Int16 value.
public short AsInt16()
Returns
AsInt32()
Gets the Int32 value.
public int AsInt32()
Returns
AsInt64()
Gets the Int64 value.
public long AsInt64()
Returns
AsInt8()
Gets the Int8 value.
public sbyte AsInt8()
Returns
AsObject()
Gets the object fields as a read-only dictionary.
public IReadOnlyDictionary<string, VariantValue> AsObject()
Returns
AsSqlDecimal()
Gets a decimal value as a SqlDecimal. Works for Decimal4, Decimal8, and Decimal16 (including values that exceed decimal range).
public SqlDecimal AsSqlDecimal()
Returns
AsString()
Gets the string value.
public string AsString()
Returns
AsTimeNtzMicros()
Gets a TimeNtz value as microseconds since midnight.
public long AsTimeNtzMicros()
Returns
AsTimestamp()
Gets a Timestamp as a DateTimeOffset (UTC).
public DateTimeOffset AsTimestamp()
Returns
AsTimestampMicros()
Gets a Timestamp value as microseconds since epoch.
public long AsTimestampMicros()
Returns
AsTimestampNtz()
Gets a TimestampNtz as a DateTime.
public DateTime AsTimestampNtz()
Returns
AsTimestampNtzMicros()
Gets a TimestampNtz value as microseconds since epoch.
public long AsTimestampNtzMicros()
Returns
AsTimestampNtzNanos()
Gets a TimestampNtzNanos value as nanoseconds since epoch.
public long AsTimestampNtzNanos()
Returns
AsTimestampTzNanos()
Gets a TimestampTzNanos value as nanoseconds since epoch.
public long AsTimestampTzNanos()
Returns
AsUuid()
Gets the UUID value.
public Guid AsUuid()
Returns
Equals(VariantValue)
public bool Equals(VariantValue other)
Parameters
otherVariantValue
Returns
Equals(object)
public override bool Equals(object obj)
Parameters
objobject
Returns
FromArray(params VariantValue[])
Creates an array variant value from params.
public static VariantValue FromArray(params VariantValue[] elements)
Parameters
elementsVariantValue[]
Returns
FromArray(IList<VariantValue>)
Creates an array variant value from a list of elements.
public static VariantValue FromArray(IList<VariantValue> elements)
Parameters
elementsIList<VariantValue>
Returns
FromBinary(byte[])
Creates a Binary variant value.
public static VariantValue FromBinary(byte[] value)
Parameters
valuebyte[]
Returns
FromBoolean(bool)
Creates a boolean variant value.
public static VariantValue FromBoolean(bool value)
Parameters
valuebool
Returns
FromDate(DateTime)
Creates a Date variant value from a DateTime.
public static VariantValue FromDate(DateTime date)
Parameters
dateDateTime
Returns
FromDate(int)
Creates a Date variant value from days since epoch.
public static VariantValue FromDate(int daysSinceEpoch)
Parameters
daysSinceEpochint
Returns
FromDecimal(decimal)
Creates a decimal variant value, choosing the smallest decimal type that can represent the value (Decimal4, Decimal8, or Decimal16).
public static VariantValue FromDecimal(decimal value)
Parameters
valuedecimal
Returns
FromDecimal16(SqlDecimal)
Creates a Decimal16 variant value. Decimal16 covers the full Parquet 38-digit decimal range, which exceeds the decimal 96-bit mantissa, so the API uses SqlDecimal uniformly. Use FromSqlDecimal(SqlDecimal) when you want the smallest decimal type that fits the value.
public static VariantValue FromDecimal16(SqlDecimal value)
Parameters
valueSqlDecimal
Returns
FromDecimal4(decimal)
Creates a Decimal4 variant value.
public static VariantValue FromDecimal4(decimal value)
Parameters
valuedecimal
Returns
FromDecimal8(decimal)
Creates a Decimal8 variant value.
public static VariantValue FromDecimal8(decimal value)
Parameters
valuedecimal
Returns
FromDouble(double)
Creates a Double variant value.
public static VariantValue FromDouble(double value)
Parameters
valuedouble
Returns
FromFloat(float)
Creates a Float variant value.
public static VariantValue FromFloat(float value)
Parameters
valuefloat
Returns
FromInt16(short)
Creates an Int16 variant value.
public static VariantValue FromInt16(short value)
Parameters
valueshort
Returns
FromInt32(int)
Creates an Int32 variant value.
public static VariantValue FromInt32(int value)
Parameters
valueint
Returns
FromInt64(long)
Creates an Int64 variant value.
public static VariantValue FromInt64(long value)
Parameters
valuelong
Returns
FromInt8(sbyte)
Creates an Int8 variant value.
public static VariantValue FromInt8(sbyte value)
Parameters
valuesbyte
Returns
FromObject(IDictionary<string, VariantValue>)
Creates an object variant value from a dictionary of field name to value.
public static VariantValue FromObject(IDictionary<string, VariantValue> fields)
Parameters
fieldsIDictionary<string, VariantValue>
Returns
FromSqlDecimal(SqlDecimal)
Creates a decimal variant value from a SqlDecimal, choosing the smallest decimal type that fits. Values exceeding decimal range produce a Decimal16.
public static VariantValue FromSqlDecimal(SqlDecimal value)
Parameters
valueSqlDecimal
Returns
FromString(string)
Creates a String variant value.
public static VariantValue FromString(string value)
Parameters
valuestring
Returns
FromTimeNtz(long)
Creates a TimeNtz variant value from microseconds since midnight.
public static VariantValue FromTimeNtz(long microseconds)
Parameters
microsecondslong
Returns
FromTimestamp(DateTimeOffset)
Creates a Timestamp variant value from a DateTimeOffset.
public static VariantValue FromTimestamp(DateTimeOffset value)
Parameters
valueDateTimeOffset
Returns
FromTimestamp(long)
Creates a Timestamp variant value from microseconds since epoch (UTC).
public static VariantValue FromTimestamp(long microseconds)
Parameters
microsecondslong
Returns
FromTimestampNtz(DateTime)
Creates a TimestampNtz variant value from a DateTime.
public static VariantValue FromTimestampNtz(DateTime value)
Parameters
valueDateTime
Returns
FromTimestampNtz(long)
Creates a TimestampNtz variant value from microseconds since epoch.
public static VariantValue FromTimestampNtz(long microseconds)
Parameters
microsecondslong
Returns
FromTimestampNtzNanos(long)
Creates a TimestampNtzNanos variant value from nanoseconds since epoch.
public static VariantValue FromTimestampNtzNanos(long nanoseconds)
Parameters
nanosecondslong
Returns
FromTimestampTzNanos(long)
Creates a TimestampTzNanos variant value from nanoseconds since epoch (UTC).
public static VariantValue FromTimestampTzNanos(long nanoseconds)
Parameters
nanosecondslong
Returns
FromUuid(Guid)
Creates a UUID variant value.
public static VariantValue FromUuid(Guid value)
Parameters
valueGuid
Returns
GetHashCode()
public override int GetHashCode()
Returns
ToString()
public override string ToString()
Returns
Operators
operator ==(VariantValue, VariantValue)
Equality operator.
public static bool operator ==(VariantValue left, VariantValue right)
Parameters
leftVariantValuerightVariantValue
Returns
operator !=(VariantValue, VariantValue)
Inequality operator.
public static bool operator !=(VariantValue left, VariantValue right)
Parameters
leftVariantValuerightVariantValue