#[non_exhaustive]pub enum ValueRef<'a> {
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(&'a [u8]),
Blob(&'a [u8]),
Geometry(&'a [u8]),
Date32(i32),
Time64(TimeUnit, i64),
Interval {
months: i32,
days: i32,
nanos: i64,
},
List(ListType<'a>, usize),
Enum(EnumType<'a>, usize),
Struct(&'a StructArray, usize),
Array(&'a FixedSizeListArray, usize),
Map(&'a MapArray, usize),
Union(&'a ArrayRef, usize),
}Expand description
A non-owning static type value. Typically the memory backing this value is owned by DuckDB.
Container variants decode child values without DuckDB child logical type
metadata. See the crate::types compatibility notes for UHUGEINT
behavior inside containers.
See Value for an 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 decode to this variant because row
decoding uses DuckDB logical type metadata. Borrowed container values do
not carry that metadata and cannot recover nested UHUGEINT 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(&'a [u8])
The value is a text string.
Blob(&'a [u8])
The value is a blob of data
Geometry(&'a [u8])
The value is a top-level GEOMETRY, represented as WKB bytes.
Nested GEOMETRY values currently materialize through their Arrow
binary carrier as Blob values. See Value::Geometry for binding
and appender guidance.
Date32(i32)
The value is a date32
Time64(TimeUnit, i64)
The value is a time64
Interval
The value is an interval (month, day, nano)
List(ListType<'a>, usize)
The value is a list.
Enum(EnumType<'a>, usize)
The value is an enum
Struct(&'a StructArray, usize)
The value is a struct.
Array(&'a FixedSizeListArray, usize)
The value is an array.
Map(&'a MapArray, usize)
The value is a map.
Union(&'a ArrayRef, usize)
The value is a union.
Implementations§
Source§impl<'a> ValueRef<'a>
impl<'a> ValueRef<'a>
Sourcepub fn as_str(&self) -> FromSqlResult<&'a str>
pub fn as_str(&self) -> FromSqlResult<&'a str>
If self is Text or Enum, returns the string value. Otherwise,
returns Err(FromSqlError::InvalidType).
Sourcepub fn as_blob(&self) -> FromSqlResult<&'a [u8]>
pub fn as_blob(&self) -> FromSqlResult<&'a [u8]>
If self is Blob, Text, or Geometry, returns the byte slice.
Otherwise, returns Err(FromSqlError::InvalidType).
Sourcepub fn as_geometry_wkb(&self) -> FromSqlResult<&'a [u8]>
pub fn as_geometry_wkb(&self) -> FromSqlResult<&'a [u8]>
If self is Geometry, returns the WKB byte slice. Otherwise, returns
Err(FromSqlError::InvalidType).