Value 类代表任何类型的单个值。
API参考概览
void duckdb_destroy_value(duckdb_value *value);
duckdb_value duckdb_create_varchar(const char *text);
duckdb_value duckdb_create_varchar_length(const char *text, idx_t length);
duckdb_value duckdb_create_bool(bool input);
duckdb_value duckdb_create_int8(int8_t input);
duckdb_value duckdb_create_uint8(uint8_t input);
duckdb_value duckdb_create_int16(int16_t input);
duckdb_value duckdb_create_uint16(uint16_t input);
duckdb_value duckdb_create_int32(int32_t input);
duckdb_value duckdb_create_uint32(uint32_t input);
duckdb_value duckdb_create_uint64(uint64_t input);
duckdb_value duckdb_create_int64(int64_t val);
duckdb_value duckdb_create_hugeint(duckdb_hugeint input);
duckdb_value duckdb_create_uhugeint(duckdb_uhugeint input);
duckdb_value duckdb_create_bignum(duckdb_bignum input);
duckdb_value duckdb_create_decimal(duckdb_decimal input);
duckdb_value duckdb_create_float(float input);
duckdb_value duckdb_create_double(double input);
duckdb_value duckdb_create_date(duckdb_date input);
duckdb_value duckdb_create_time(duckdb_time input);
duckdb_value duckdb_create_time_ns(duckdb_time_ns input);
duckdb_value duckdb_create_time_tz_value(duckdb_time_tz value);
duckdb_value duckdb_create_timestamp(duckdb_timestamp input);
duckdb_value duckdb_create_timestamp_tz(duckdb_timestamp input);
duckdb_value duckdb_create_timestamp_s(duckdb_timestamp_s input);
duckdb_value duckdb_create_timestamp_ms(duckdb_timestamp_ms input);
duckdb_value duckdb_create_timestamp_ns(duckdb_timestamp_ns input);
duckdb_value duckdb_create_interval(duckdb_interval input);
duckdb_value duckdb_create_blob(const uint8_t *data, idx_t length);
duckdb_value duckdb_create_bit(duckdb_bit input);
duckdb_value duckdb_create_uuid(duckdb_uhugeint input);
bool duckdb_get_bool(duckdb_value val);
int8_t duckdb_get_int8(duckdb_value val);
uint8_t duckdb_get_uint8(duckdb_value val);
int16_t duckdb_get_int16(duckdb_value val);
uint16_t duckdb_get_uint16(duckdb_value val);
int32_t duckdb_get_int32(duckdb_value val);
uint32_t duckdb_get_uint32(duckdb_value val);
int64_t duckdb_get_int64(duckdb_value val);
uint64_t duckdb_get_uint64(duckdb_value val);
duckdb_hugeint duckdb_get_hugeint(duckdb_value val);
duckdb_uhugeint duckdb_get_uhugeint(duckdb_value val);
duckdb_bignum duckdb_get_bignum(duckdb_value val);
duckdb_decimal duckdb_get_decimal(duckdb_value val);
float duckdb_get_float(duckdb_value val);
double duckdb_get_double(duckdb_value val);
duckdb_date duckdb_get_date(duckdb_value val);
duckdb_time duckdb_get_time(duckdb_value val);
duckdb_time_ns duckdb_get_time_ns(duckdb_value val);
duckdb_time_tz duckdb_get_time_tz(duckdb_value val);
duckdb_timestamp duckdb_get_timestamp(duckdb_value val);
duckdb_timestamp duckdb_get_timestamp_tz(duckdb_value val);
duckdb_timestamp_s duckdb_get_timestamp_s(duckdb_value val);
duckdb_timestamp_ms duckdb_get_timestamp_ms(duckdb_value val);
duckdb_timestamp_ns duckdb_get_timestamp_ns(duckdb_value val);
duckdb_interval duckdb_get_interval(duckdb_value val);
duckdb_logical_type duckdb_get_value_type(duckdb_value val);
duckdb_blob duckdb_get_blob(duckdb_value val);
duckdb_bit duckdb_get_bit(duckdb_value val);
duckdb_uhugeint duckdb_get_uuid(duckdb_value val);
char *duckdb_get_varchar(duckdb_value value);
duckdb_value duckdb_create_struct_value(duckdb_logical_type type, duckdb_value *values);
duckdb_value duckdb_create_list_value(duckdb_logical_type type, duckdb_value *values, idx_t value_count);
duckdb_value duckdb_create_array_value(duckdb_logical_type type, duckdb_value *values, idx_t value_count);
duckdb_value duckdb_create_map_value(duckdb_logical_type map_type, duckdb_value *keys, duckdb_value *values, idx_t entry_count);
duckdb_value duckdb_create_union_value(duckdb_logical_type union_type, idx_t tag_index, duckdb_value value);
idx_t duckdb_get_map_size(duckdb_value value);
duckdb_value duckdb_get_map_key(duckdb_value value, idx_t index);
duckdb_value duckdb_get_map_value(duckdb_value value, idx_t index);
bool duckdb_is_null_value(duckdb_value value);
duckdb_value duckdb_create_null_value();
idx_t duckdb_get_list_size(duckdb_value value);
duckdb_value duckdb_get_list_child(duckdb_value value, idx_t index);
duckdb_value duckdb_create_enum_value(duckdb_logical_type type, uint64_t value);
uint64_t duckdb_get_enum_value(duckdb_value value);
duckdb_value duckdb_get_struct_child(duckdb_value value, idx_t index);
char *duckdb_value_to_string(duckdb_value value);
duckdb_destroy_value
销毁该值并释放为该类型分配的所有内存。
语法
void duckdb_destroy_value(
duckdb_value *value
);
参数
value:要销毁的值。
duckdb_create_varchar
通过以 null 结尾的字符串创建值
语法
duckdb_value duckdb_create_varchar(
const char *text
);
参数
text:以 null 结尾的字符串
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_varchar_length
通过字符串创建值
语法
duckdb_value duckdb_create_varchar_length(
const char *text,
idx_t length
);
参数
text:文本length:文本长度
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_bool
通过布尔值创建值
语法
duckdb_value duckdb_create_bool(
bool input
);
参数
input:布尔值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_int8
通过 int8_t (tinyint) 创建值
语法
duckdb_value duckdb_create_int8(
int8_t input
);
参数
input:tinyint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_uint8
通过 uint8_t (utinyint) 创建值
语法
duckdb_value duckdb_create_uint8(
uint8_t input
);
参数
input:utinyint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_int16
通过 int16_t (smallint) 创建值
语法
duckdb_value duckdb_create_int16(
int16_t input
);
参数
input:smallint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_uint16
通过 uint16_t (usmallint) 创建值
语法
duckdb_value duckdb_create_uint16(
uint16_t input
);
参数
input:usmallint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_int32
通过 int32_t (integer) 创建值
语法
duckdb_value duckdb_create_int32(
int32_t input
);
参数
input:整数值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_uint32
通过 uint32_t (uinteger) 创建值
语法
duckdb_value duckdb_create_uint32(
uint32_t input
);
参数
input:无符号整数值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_uint64
通过 uint64_t (ubigint) 创建值
语法
duckdb_value duckdb_create_uint64(
uint64_t input
);
参数
input:ubigint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_int64
通过 int64 创建值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
语法
duckdb_value duckdb_create_int64(
int64_t val
);
duckdb_create_hugeint
通过 hugeint 创建值
语法
duckdb_value duckdb_create_hugeint(
duckdb_hugeint input
);
参数
input:hugeint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_uhugeint
通过 uhugeint 创建值
语法
duckdb_value duckdb_create_uhugeint(
duckdb_uhugeint input
);
参数
input:uhugeint 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_bignum
通过 duckdb_bignum 创建 BIGNUM 值
语法
duckdb_value duckdb_create_bignum(
duckdb_bignum input
);
参数
input:duckdb_bignum 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_decimal
通过 duckdb_decimal 创建 DECIMAL 值
语法
duckdb_value duckdb_create_decimal(
duckdb_decimal input
);
参数
input:duckdb_decimal 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_float
通过 float 创建值
语法
duckdb_value duckdb_create_float(
float input
);
参数
input:float 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_double
通过 double 创建值
语法
duckdb_value duckdb_create_double(
double input
);
参数
input:double 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_date
通过 date 创建值
语法
duckdb_value duckdb_create_date(
duckdb_date input
);
参数
input:date 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_time
通过 time 创建值
语法
duckdb_value duckdb_create_time(
duckdb_time input
);
参数
input:time 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_time_ns
通过 time_ns 创建值
语法
duckdb_value duckdb_create_time_ns(
duckdb_time_ns input
);
参数
input:time 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_time_tz_value
通过 time_tz 创建值。请勿与 duckdb_create_time_tz 混淆,后者创建的是 duckdb_time_tz_t。
语法
duckdb_value duckdb_create_time_tz_value(
duckdb_time_tz value
);
参数
value:time_tz 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_timestamp
通过 duckdb_timestamp 创建 TIMESTAMP 值
语法
duckdb_value duckdb_create_timestamp(
duckdb_timestamp input
);
参数
input:duckdb_timestamp 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_timestamp_tz
通过 duckdb_timestamp 创建 TIMESTAMP_TZ 值
语法
duckdb_value duckdb_create_timestamp_tz(
duckdb_timestamp input
);
参数
input:duckdb_timestamp 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_timestamp_s
通过 duckdb_timestamp_s 创建 TIMESTAMP_S 值
语法
duckdb_value duckdb_create_timestamp_s(
duckdb_timestamp_s input
);
参数
input:duckdb_timestamp_s 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_timestamp_ms
通过 duckdb_timestamp_ms 创建 TIMESTAMP_MS 值
语法
duckdb_value duckdb_create_timestamp_ms(
duckdb_timestamp_ms input
);
参数
input:duckdb_timestamp_ms 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_timestamp_ns
通过 duckdb_timestamp_ns 创建 TIMESTAMP_NS 值
语法
duckdb_value duckdb_create_timestamp_ns(
duckdb_timestamp_ns input
);
参数
input:duckdb_timestamp_ns 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_interval
通过 interval 创建值
语法
duckdb_value duckdb_create_interval(
duckdb_interval input
);
参数
input:interval 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_blob
通过 blob 创建值
语法
duckdb_value duckdb_create_blob(
const uint8_t *data,
idx_t length
);
参数
data:blob 数据length:blob 数据长度
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_bit
通过 duckdb_bit 创建 BIT 值
语法
duckdb_value duckdb_create_bit(
duckdb_bit input
);
参数
input:duckdb_bit 值
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_create_uuid
通过 uhugeint 创建 UUID 值
语法
duckdb_value duckdb_create_uuid(
duckdb_uhugeint input
);
参数
input:包含 UUID 的 duckdb_uhugeint
返回值
该值。必须使用 duckdb_destroy_value 进行销毁。
duckdb_get_bool
返回给定值的布尔值。
语法
bool duckdb_get_bool(
duckdb_value val
);
参数
val:包含布尔值的 duckdb_value
返回值
布尔值;如果值无法转换,则为 false
duckdb_get_int8
返回给定值的 int8_t 值。
语法
int8_t duckdb_get_int8(
duckdb_value val
);
参数
val:包含 tinyint 的 duckdb_value
返回值
int8_t 值,或 MinValue
duckdb_get_uint8
返回给定值的 uint8_t 值。
语法
uint8_t duckdb_get_uint8(
duckdb_value val
);
参数
val:包含 utinyint 的 duckdb_value
返回值
uint8_t 值,或 MinValue
duckdb_get_int16
返回给定值的 int16_t 值。
语法
int16_t duckdb_get_int16(
duckdb_value val
);
参数
val:包含 smallint 的 duckdb_value
返回值
int16_t 值,或 MinValue
duckdb_get_uint16
返回给定值的 uint16_t 值。
语法
uint16_t duckdb_get_uint16(
duckdb_value val
);
参数
val:包含 usmallint 的 duckdb_value
返回值
uint16_t 值,或 MinValue
duckdb_get_int32
返回给定值的 int32_t 值。
语法
int32_t duckdb_get_int32(
duckdb_value val
);
参数
val:包含整数的 duckdb_value
返回值
int32_t 值,或 MinValue
duckdb_get_uint32
返回给定值的 uint32_t 值。
语法
uint32_t duckdb_get_uint32(
duckdb_value val
);
参数
val:包含无符号整数的 duckdb_value
返回值
uint32_t 值,或 MinValue
duckdb_get_int64
返回给定值的 int64_t 值。
语法
int64_t duckdb_get_int64(
duckdb_value val
);
参数
val:包含 bigint 的 duckdb_value
返回值
int64_t 值,或 MinValue
duckdb_get_uint64
返回给定值的 uint64_t 值。
语法
uint64_t duckdb_get_uint64(
duckdb_value val
);
参数
val:包含 ubigint 的 duckdb_value
返回值
uint64_t 值,或 MinValue
duckdb_get_hugeint
返回给定值的 hugeint 值。
语法
duckdb_hugeint duckdb_get_hugeint(
duckdb_value val
);
参数
val:包含 hugeint 的 duckdb_value
返回值
duckdb_hugeint 值,或 MinValue
duckdb_get_uhugeint
返回给定值的 uhugeint 值。
语法
duckdb_uhugeint duckdb_get_uhugeint(
duckdb_value val
);
参数
val:包含 uhugeint 的 duckdb_value
返回值
duckdb_uhugeint 值,或 MinValue
duckdb_get_bignum
返回给定值的 duckdb_bignum 值。data 字段必须使用 duckdb_free 销毁。
语法
duckdb_bignum duckdb_get_bignum(
duckdb_value val
);
参数
val:包含 BIGNUM 的 duckdb_value
返回值
duckdb_bignum 值。data 字段必须使用 duckdb_free 销毁。
duckdb_get_decimal
返回给定值的 duckdb_decimal 值。
语法
duckdb_decimal duckdb_get_decimal(
duckdb_value val
);
参数
val:包含 DECIMAL 的 duckdb_value
返回值
duckdb_decimal 值,或 MinValue
duckdb_get_float
返回给定值的 float 值。
语法
float duckdb_get_float(
duckdb_value val
);
参数
val:包含 float 的 duckdb_value
返回值
float 值;如果值无法转换,则为 NAN
duckdb_get_double
返回给定值的 double 值。
语法
double duckdb_get_double(
duckdb_value val
);
参数
val:包含 double 的 duckdb_value
返回值
double 值;如果值无法转换,则为 NAN
duckdb_get_date
返回给定值的 date 值。
语法
duckdb_date duckdb_get_date(
duckdb_value val
);
参数
val:包含 date 的 duckdb_value
返回值
duckdb_date 值,或 MinValue
duckdb_get_time
返回给定值的 time 值。
语法
duckdb_time duckdb_get_time(
duckdb_value val
);
参数
val:包含 time 的 duckdb_value
返回值
duckdb_time 值,或 MinValue(如果值无法转换)
duckdb_get_time_ns
返回给定值的 time_ns 值。
语法
duckdb_time_ns duckdb_get_time_ns(
duckdb_value val
);
参数
val:包含 time_ns 的 duckdb_value
返回值
duckdb_time_ns 值,或 MinValue
duckdb_get_time_tz
返回给定值的 time_tz 值。
语法
duckdb_time_tz duckdb_get_time_tz(
duckdb_value val
);
参数
val:包含 time_tz 的 duckdb_value
返回值
duckdb_time_tz 值,或 MinValue
duckdb_get_timestamp
返回给定值的 TIMESTAMP 值。
语法
duckdb_timestamp duckdb_get_timestamp(
duckdb_value val
);
参数
val:包含 TIMESTAMP 的 duckdb_value
返回值
duckdb_timestamp 值,或 MinValue
duckdb_get_timestamp_tz
返回给定值的 TIMESTAMP_TZ 值。
语法
duckdb_timestamp duckdb_get_timestamp_tz(
duckdb_value val
);
参数
val:包含 TIMESTAMP_TZ 的 duckdb_value
返回值
duckdb_timestamp 值,或 MinValue
duckdb_get_timestamp_s
返回给定值的 duckdb_timestamp_s 值。
语法
duckdb_timestamp_s duckdb_get_timestamp_s(
duckdb_value val
);
参数
val:包含 TIMESTAMP_S 的 duckdb_value
返回值
duckdb_timestamp_s 值,或 MinValue
duckdb_get_timestamp_ms
返回给定值的 duckdb_timestamp_ms 值。
语法
duckdb_timestamp_ms duckdb_get_timestamp_ms(
duckdb_value val
);
参数
val:包含 TIMESTAMP_MS 的 duckdb_value
返回值
duckdb_timestamp_ms 值,或 MinValue
duckdb_get_timestamp_ns
返回给定值的 duckdb_timestamp_ns 值。
语法
duckdb_timestamp_ns duckdb_get_timestamp_ns(
duckdb_value val
);
参数
val:包含 TIMESTAMP_NS 的 duckdb_value
返回值
duckdb_timestamp_ns 值,或 MinValue
duckdb_get_interval
返回给定值的 interval 值。
语法
duckdb_interval duckdb_get_interval(
duckdb_value val
);
参数
val:包含 interval 的 duckdb_value
返回值
duckdb_interval 值,或 MinValue
duckdb_get_value_type
返回给定值的类型。只要该值未被销毁,该类型即有效。类型本身不可被销毁。
语法
duckdb_logical_type duckdb_get_value_type(
duckdb_value val
);
参数
val:duckdb_value
返回值
duckdb_logical_type。
duckdb_get_blob
返回给定值的 blob 值。
语法
duckdb_blob duckdb_get_blob(
duckdb_value val
);
参数
val:包含 blob 的 duckdb_value
返回值
duckdb_blob
duckdb_get_bit
返回给定值的 duckdb_bit 值。data 字段必须使用 duckdb_free 销毁。
语法
duckdb_bit duckdb_get_bit(
duckdb_value val
);
参数
val:包含 BIT 的 duckdb_value
返回值
duckdb_bit
duckdb_get_uuid
返回一个表示给定值 UUID 的 duckdb_uhugeint。
语法
duckdb_uhugeint duckdb_get_uuid(
duckdb_value val
);
参数
val:包含 UUID 的 duckdb_value
返回值
表示 UUID 值的 duckdb_uhugeint
duckdb_get_varchar
获取给定值的字符串表示形式。结果必须使用 duckdb_free 销毁。
语法
char *duckdb_get_varchar(
duckdb_value value
);
参数
value:该值
返回值
字符串值。必须使用 duckdb_free 销毁。
duckdb_create_struct_value
通过类型和值数组创建结构体 (struct) 值。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_struct_value(
duckdb_logical_type type,
duckdb_value *values
);
参数
type:结构体类型values:结构体字段的值
返回值
结构体值;如果任何子类型为 DUCKDB_TYPE_ANY 或 DUCKDB_TYPE_INVALID,则返回 nullptr。
duckdb_create_list_value
通过子元素 (element) 类型和长度为 value_count 的值数组创建列表 (list) 值。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_list_value(
duckdb_logical_type type,
duckdb_value *values,
idx_t value_count
);
参数
type:列表类型values:列表的值value_count:列表中值的数量
返回值
列表值;如果子类型为 DUCKDB_TYPE_ANY 或 DUCKDB_TYPE_INVALID,则返回 nullptr。
duckdb_create_array_value
通过子元素类型和长度为 value_count 的值数组创建数组 (array) 值。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_array_value(
duckdb_logical_type type,
duckdb_value *values,
idx_t value_count
);
参数
type:数组类型values:数组的值value_count:数组中值的数量
返回值
数组值;如果子类型为 DUCKDB_TYPE_ANY 或 DUCKDB_TYPE_INVALID,则返回 nullptr。
duckdb_create_map_value
通过 map 类型和两个数组(分别用于键和值,每个长度均为 entry_count)创建 map 值。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_map_value(
duckdb_logical_type map_type,
duckdb_value *keys,
duckdb_value *values,
idx_t entry_count
);
参数
map_type:map 类型keys:map 的键values:map 的值entry_count:map 中条目(键值对)的数量
返回值
map 值;如果参数无效,则返回 nullptr。
duckdb_create_union_value
通过 union 类型、标签索引和值创建联合 (union) 值。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_union_value(
duckdb_logical_type union_type,
idx_t tag_index,
duckdb_value value
);
参数
union_type:联合类型tag_index:联合标签的索引value:该标签对应的联合值
返回值
联合值;如果参数无效,则返回 nullptr。
duckdb_get_map_size
返回 MAP 值中的元素数量。
语法
idx_t duckdb_get_map_size(
duckdb_value value
);
参数
value:MAP 值。
返回值
map 中的元素数量。
duckdb_get_map_key
将指定索引处的 MAP 键作为 duckdb_value 返回。
语法
duckdb_value duckdb_get_map_key(
duckdb_value value,
idx_t index
);
参数
value:MAP 值。index:键的索引。
返回值
作为 duckdb_value 的键。
duckdb_get_map_value
将指定索引处的 MAP 值作为 duckdb_value 返回。
语法
duckdb_value duckdb_get_map_value(
duckdb_value value,
idx_t index
);
参数
value:MAP 值。index:值的索引。
返回值
作为 duckdb_value 的值。
duckdb_is_null_value
返回该值的类型是否为 SQLNULL。
语法
bool duckdb_is_null_value(
duckdb_value value
);
参数
value:要检查的值。
返回值
如果该值的类型为 SQLNULL,则为 True;否则为 False。
duckdb_create_null_value
创建一个 SQLNULL 类型的值。
返回值
表示 SQLNULL 的 duckdb_value。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_null_value(
);
duckdb_get_list_size
返回 LIST 值中的元素数量。
语法
idx_t duckdb_get_list_size(
duckdb_value value
);
参数
value:LIST 值。
返回值
列表中的元素数量。
duckdb_get_list_child
将指定索引处的 LIST 子元素作为 duckdb_value 返回。
语法
duckdb_value duckdb_get_list_child(
duckdb_value value,
idx_t index
);
参数
value:LIST 值。index:子元素的索引。
返回值
作为 duckdb_value 的子元素。
duckdb_create_enum_value
通过类型和值创建枚举 (enum) 值。必须使用 duckdb_destroy_value 销毁。
语法
duckdb_value duckdb_create_enum_value(
duckdb_logical_type type,
uint64_t value
);
参数
type:枚举类型value:枚举的值
返回值
枚举值,或 nullptr。
duckdb_get_enum_value
返回给定值的枚举值。
语法
uint64_t duckdb_get_enum_value(
duckdb_value value
);
参数
value:包含枚举的 duckdb_value
返回值
uint64_t 值,或 MinValue
duckdb_get_struct_child
将指定索引处的 STRUCT 子元素作为 duckdb_value 返回。
语法
duckdb_value duckdb_get_struct_child(
duckdb_value value,
idx_t index
);
参数
value:STRUCT 值。index:子元素的索引。
返回值
作为 duckdb_value 的子元素。
duckdb_value_to_string
返回给定值的 SQL 字符串表示形式。
语法
char *duckdb_value_to_string(
duckdb_value value
);
参数
value:duckdb_value。
返回值
作为以 null 结尾字符串的 SQL 字符串表示形式。结果必须使用 duckdb_free 释放。