⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k

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_ANYDUCKDB_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_ANYDUCKDB_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_ANYDUCKDB_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 释放。


© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南