#[non_exhaustive]pub enum Value {
Show 28 variants
Null,
Boolean(bool),
TinyInt(i8),
SmallInt(i16),
Int(i32),
BigInt(i64),
HugeInt(i128),
UHugeInt(u128),
UTinyInt(u8),
USmallInt(u16),
UInt(u32),
UBigInt(u64),
Float(f32),
Double(f64),
Decimal(Decimal),
Timestamp(TimeUnit, i64),
Text(String),
Blob(Vec<u8>),
Geometry(Vec<u8>),
Date32(i32),
Time64(TimeUnit, i64),
Interval {
months: i32,
days: i32,
nanos: i64,
},
List(Vec<Value>),
Enum(String),
Struct(OrderedMap<String, Value>),
Array(Vec<Value>),
Map(OrderedMap<Value, Value>),
Union(Box<Value>),
}Expand description
Owning dynamic type value. Value’s type is typically dictated by DuckDB (not by the caller).
Container variants decode child values without DuckDB child logical type
metadata. See the crate::types compatibility notes for UHUGEINT
behavior inside containers.
See ValueRef for a non-owning dynamic type
value.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Null
The value is a NULL value.
Boolean(bool)
The value is a boolean.
TinyInt(i8)
The value is a signed tiny integer.
SmallInt(i16)
The value is a signed small integer.
Int(i32)
The value is a signed integer.
BigInt(i64)
The value is a signed big integer.
HugeInt(i128)
The value is a signed huge integer.
UHugeInt(u128)
The value is an unsigned huge integer.
Top-level UHUGEINT result values materialize as this variant. Nested
UHUGEINT values inside lists, structs, maps, arrays, and unions do
not currently carry DuckDB child logical metadata and cannot recover
values above i128::MAX.
UTinyInt(u8)
The value is a unsigned tiny integer.
USmallInt(u16)
The value is a unsigned small integer.
UInt(u32)
The value is a unsigned integer.
UBigInt(u64)
The value is a unsigned big integer.
Float(f32)
The value is a f32.
Double(f64)
The value is a f64.
Decimal(Decimal)
The value is a DuckDB decimal.
Decimal stores DuckDB’s decimal width, scale, and scaled integer
payload.
Timestamp(TimeUnit, i64)
The value is a timestamp.
Text(String)
The value is a text string.
Blob(Vec<u8>)
The value is a blob of data
Geometry(Vec<u8>)
The value is a GEOMETRY, represented as WKB bytes.
As of the bundled DuckDB version, DuckDB does not expose a dedicated
geometry bind or appender helper. Binding this variant routes its WKB
bytes through the BLOB APIs. Use spatial SQL such as ST_GeomFromWKB(?)
when binding WKB bytes into a GEOMETRY SQL context. Appender writes
can stage these bytes in BLOB columns; appending directly to GEOMETRY
columns is not supported. See ValueRef::Geometry
for borrowed geometry values.
Date32(i32)
The value is a date32
The i32 represents the number of days since the Unix epoch (1970-01-01).
Enable the chrono feature for easy conversion to proper date types like NaiveDate.
Time64(TimeUnit, i64)
The value is a time64
Interval
The value is an interval (month, day, nano)
List(Vec<Value>)
The value is a list.
Enum(String)
The value is an enum
Struct(OrderedMap<String, Value>)
The value is a struct.
Array(Vec<Value>)
The value is an array.
Map(OrderedMap<Value, Value>)
The value is a map.
Union(Box<Value>)
The value is a union.