⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k

值类表示任何类型的单个值。

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_varint(duckdb_varint 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_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_varint duckdb_get_varint(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_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(一个整数)创建一个值

语法
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: uinteger 值
返回值

该值。 必须使用 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_varint

从 duckdb_varint 创建一个 VARINT 值

语法
duckdb_value duckdb_create_varint(
  duckdb_varint input
);
参数
  • input: duckdb_varint 值
返回值

该值。 必须使用 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

从日期创建一个值

语法
duckdb_value duckdb_create_date(
  duckdb_date input
);
参数
  • input: 日期值
返回值

该值。 必须使用 duckdb_destroy_value 销毁此值。


duckdb_create_time

从时间创建一个值

语法
duckdb_value duckdb_create_time(
  duckdb_time input
);
参数
  • input: 时间值
返回值

该值。 必须使用 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: 包含 uinteger 的 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_varint

返回给定值的 duckdb_varint 值。 data 字段必须使用 duckdb_free 销毁。

语法
duckdb_varint duckdb_get_varint(
  duckdb_value val
);
参数
  • val: 包含 VARINT 的 duckdb_value
返回值

一个 duckdb_varint。 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

返回给定值的日期值。

语法
duckdb_date duckdb_get_date(
  duckdb_value val
);
参数
  • val: 包含日期的 duckdb_value
返回值

一个 duckdb_date,或 MinValue如果值无法转换


duckdb_get_time

返回给定值的时间值。

语法
duckdb_time duckdb_get_time(
  duckdb_value val
);
参数
  • val: 包含时间的 duckdb_value
返回值

一个 duckdb_time,或 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

返回一个 duckdb_uhugeint,表示给定值的 UUID 值。

语法
duckdb_uhugeint duckdb_get_uuid(
  duckdb_value val
);
参数
  • val: 包含 UUID 的 duckdb_value
返回值

一个 duckdb_uhugeint,表示 UUID 值


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: struct 的类型
  • values: struct 字段的值
返回值

struct 值,如果任何子类型是 DUCKDB_TYPE_ANYDUCKDB_TYPE_INVALID,则为 nullptr。


duckdb_create_list_value

从子(元素)类型和长度为 value_count 的值数组创建一个列表值。必须使用 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 的值数组创建一个数组值。必须使用 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

从映射类型和两个数组(一个用于键,一个用于值,每个数组的长度为 entry_count)创建一个映射值。必须使用 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: 映射类型
  • keys: 映射的键
  • values: 映射的值
  • entry_count: 映射中的条目数(键值对)
返回值

映射值,如果参数无效,则为 nullptr。


duckdb_create_union_value

从联合类型、标签索引和一个值创建一个联合值。必须使用 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 值。
返回值

映射中的元素数。


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: enum 的类型
  • value: enum 的值
返回值

enum 值,或 nullptr。


duckdb_get_enum_value

返回给定值的 enum 值。

语法
uint64_t duckdb_get_enum_value(
  duckdb_value value
);
参数
  • value: 包含 enum 的 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。
返回值

SQL 字符串表示形式,作为以 null 结尾的字符串。结果必须使用 duckdb_free 释放。