⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Values

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

API Reference Overview

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_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_interval(duckdb_interval input);
duckdb_value duckdb_create_blob(const uint8_t *data, idx_t length);
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);
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_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);
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);
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);

duckdb_destroy_value

销毁该值并释放为该类型分配的所有内存。

Syntax
void duckdb_destroy_value(
  duckdb_value *value
);
Parameters
  • value: 要销毁的值。


duckdb_create_varchar

从以null结尾的字符串创建一个值

Syntax
duckdb_value duckdb_create_varchar(
  const char *text
);
Parameters
  • text: 以空字符结尾的字符串
Return Value

该值。必须使用duckdb_destroy_value销毁。


duckdb_create_varchar_length

从字符串创建一个值

Syntax
duckdb_value duckdb_create_varchar_length(
  const char *text,
  idx_t length
);
Parameters
  • text: 文本
  • length: 文本的长度
Return Value

该值。必须使用duckdb_destroy_value销毁。


duckdb_create_bool

从布尔值创建一个值

Syntax
duckdb_value duckdb_create_bool(
  bool input
);
Parameters
  • input: 布尔值
Return Value

该值。必须使用duckdb_destroy_value销毁。


duckdb_create_int8

从 int8_t(一个 tinyint)创建一个值

Syntax
duckdb_value duckdb_create_int8(
  int8_t input
);
Parameters
  • input: 小整数值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_uint8

从uint8_t(一个utinyint)创建一个值

Syntax
duckdb_value duckdb_create_uint8(
  uint8_t input
);
Parameters
  • input: utinyint 值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_int16

从 int16_t(一个小整数)创建一个值

Syntax
duckdb_value duckdb_create_int16(
  int16_t input
);
Parameters
  • input: 小整数值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_uint16

从 uint16_t(一个 usmallint)创建一个值

Syntax
duckdb_value duckdb_create_uint16(
  uint16_t input
);
Parameters
  • input: usmallint 值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_int32

从 int32_t(一个整数)创建一个值

Syntax
duckdb_value duckdb_create_int32(
  int32_t input
);
Parameters
  • input: 整数值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_uint32

从 uint32_t(一个无符号整数)创建一个值

Syntax
duckdb_value duckdb_create_uint32(
  uint32_t input
);
Parameters
  • input: uinteger 值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_uint64

从 uint64_t(一个 ubigint)创建一个值

Syntax
duckdb_value duckdb_create_uint64(
  uint64_t input
);
Parameters
  • input: ubigint 值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_int64

从int64创建一个值

Return Value

The value. This must be destroyed with duckdb_destroy_value.

Syntax
duckdb_value duckdb_create_int64(
  int64_t val
);


duckdb_create_hugeint

从hugeint创建一个值

Syntax
duckdb_value duckdb_create_hugeint(
  duckdb_hugeint input
);
Parameters
  • input: 巨大的整数值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_uhugeint

从uhugeint创建一个值

Syntax
duckdb_value duckdb_create_uhugeint(
  duckdb_uhugeint input
);
Parameters
  • input: uhugeint 值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_float

从浮点数创建一个值

Syntax
duckdb_value duckdb_create_float(
  float input
);
Parameters
  • input: 浮点数值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_double

从双精度数创建一个值

Syntax
duckdb_value duckdb_create_double(
  double input
);
Parameters
  • input: 双精度值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_date

从日期创建一个值

Syntax
duckdb_value duckdb_create_date(
  duckdb_date input
);
Parameters
  • input: 日期值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_time

从时间创建一个值

Syntax
duckdb_value duckdb_create_time(
  duckdb_time input
);
Parameters
  • input: 时间值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_time_tz_value

从time_tz创建一个值。 不要与duckdb_create_time_tz混淆,后者创建的是duckdb_time_tz_t。

Syntax
duckdb_value duckdb_create_time_tz_value(
  duckdb_time_tz value
);
Parameters
  • value: 时间时区值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_timestamp

从时间戳创建一个值

Syntax
duckdb_value duckdb_create_timestamp(
  duckdb_timestamp input
);
Parameters
  • input: 时间戳值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_interval

从间隔创建值

Syntax
duckdb_value duckdb_create_interval(
  duckdb_interval input
);
Parameters
  • input: 间隔值
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_create_blob

从blob创建一个值

Syntax
duckdb_value duckdb_create_blob(
  const uint8_t *data,
  idx_t length
);
Parameters
  • data: 二进制数据
  • length: blob数据的长度
Return Value

The value. This must be destroyed with duckdb_destroy_value.


duckdb_get_bool

返回给定值的布尔值。

Syntax
bool duckdb_get_bool(
  duckdb_value val
);
Parameters
  • val: 一个包含布尔值的 duckdb_value
Return Value

一个布尔值,如果无法转换则为false


duckdb_get_int8

返回给定值的int8_t值。

Syntax
int8_t duckdb_get_int8(
  duckdb_value val
);
Parameters
  • val: 一个包含 tinyint 的 duckdb_value
Return Value

一个 int8_t,如果值无法转换则为 MinValue


duckdb_get_uint8

返回给定值的uint8_t值。

Syntax
uint8_t duckdb_get_uint8(
  duckdb_value val
);
Parameters
  • val: 一个包含 utinyint 的 duckdb_value
Return Value

一个 uint8_t,如果值无法转换则为 MinValue


duckdb_get_int16

返回给定值的int16_t值。

Syntax
int16_t duckdb_get_int16(
  duckdb_value val
);
Parameters
  • val: 一个包含小整数的 duckdb_value
Return Value

一个 int16_t,如果值无法转换则为 MinValue


duckdb_get_uint16

返回给定值的 uint16_t 值。

Syntax
uint16_t duckdb_get_uint16(
  duckdb_value val
);
Parameters
  • val: 一个包含 usmallint 的 duckdb_value
Return Value

一个 uint16_t,或者如果值无法转换则为 MinValue


duckdb_get_int32

返回给定值的 int32_t 值。

Syntax
int32_t duckdb_get_int32(
  duckdb_value val
);
Parameters
  • val: 一个包含整数的 duckdb_value
Return Value

一个 int32_t,如果值无法转换则为 MinValue


duckdb_get_uint32

返回给定值的uint32_t值。

Syntax
uint32_t duckdb_get_uint32(
  duckdb_value val
);
Parameters
  • val: 包含一个无符号整数的 duckdb_value
Return Value

一个 uint32_t,如果值无法转换则为 MinValue


duckdb_get_int64

返回给定值的int64_t值。

Syntax
int64_t duckdb_get_int64(
  duckdb_value val
);
Parameters
  • val: 一个包含 bigint 的 duckdb_value
Return Value

一个 int64_t,如果值无法转换则为 MinValue


duckdb_get_uint64

返回给定值的 uint64_t 值。

Syntax
uint64_t duckdb_get_uint64(
  duckdb_value val
);
Parameters
  • val: 包含一个 ubigint 的 duckdb_value
Return Value

一个 uint64_t,或者如果值无法转换则为 MinValue


duckdb_get_hugeint

返回给定值的hugeint值。

Syntax
duckdb_hugeint duckdb_get_hugeint(
  duckdb_value val
);
Parameters
  • val: 一个包含hugeint的duckdb_value
Return Value

一个duckdb_hugeint,如果值无法转换则为MinValue


duckdb_get_uhugeint

返回给定值的uhugeint值。

Syntax
duckdb_uhugeint duckdb_get_uhugeint(
  duckdb_value val
);
Parameters
  • val: 一个包含 uhugeint 的 duckdb_value
Return Value

一个duckdb_uhugeint,如果值无法转换则为MinValue


duckdb_get_float

返回给定值的浮点数值。

Syntax
float duckdb_get_float(
  duckdb_value val
);
Parameters
  • val: 一个包含浮点数的 duckdb_value
Return Value

一个浮点数,如果无法转换则为NAN


duckdb_get_double

返回给定值的双精度值。

Syntax
double duckdb_get_double(
  duckdb_value val
);
Parameters
  • val: 一个包含双精度浮点数的 duckdb_value
Return Value

一个双精度浮点数,如果无法转换则为NAN


duckdb_get_date

返回给定值的日期值。

Syntax
duckdb_date duckdb_get_date(
  duckdb_value val
);
Parameters
  • val: 一个包含日期的 duckdb_value
Return Value

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


duckdb_get_time

返回给定值的时间值。

Syntax
duckdb_time duckdb_get_time(
  duckdb_value val
);
Parameters
  • val: 一个包含时间的 duckdb_value
Return Value

一个duckdb_time,如果值无法转换则为MinValue


duckdb_get_time_tz

返回给定值的time_tz值。

Syntax
duckdb_time_tz duckdb_get_time_tz(
  duckdb_value val
);
Parameters
  • val: 一个包含 time_tz 的 duckdb_value
Return Value

一个 duckdb_time_tz,如果值无法转换则为 MinValue


duckdb_get_timestamp

返回给定值的时间戳值。

Syntax
duckdb_timestamp duckdb_get_timestamp(
  duckdb_value val
);
Parameters
  • val: 一个包含时间戳的 duckdb_value
Return Value

一个duckdb_timestamp,如果值无法转换则为MinValue


duckdb_get_interval

返回给定值的间隔值。

Syntax
duckdb_interval duckdb_get_interval(
  duckdb_value val
);
Parameters
  • val: 一个包含间隔的 duckdb_value
Return Value

一个duckdb_interval,如果值无法转换则为MinValue


duckdb_get_value_type

返回给定值的类型。只要值未被销毁,类型就有效。 类型本身不能被销毁。

Syntax
duckdb_logical_type duckdb_get_value_type(
  duckdb_value val
);
Parameters
  • val: 一个 duckdb_value
Return Value

一个duckdb_logical_type。


duckdb_get_blob

返回给定值的blob值。

Syntax
duckdb_blob duckdb_get_blob(
  duckdb_value val
);
Parameters
  • val: 一个包含 blob 的 duckdb_value
Return Value

一个duckdb_blob


duckdb_get_varchar

获取给定值的字符串表示。 结果必须使用duckdb_free销毁。

Syntax
char *duckdb_get_varchar(
  duckdb_value value
);
Parameters
  • value: 值
Return Value

字符串值。必须使用duckdb_free销毁。


duckdb_create_struct_value

从类型和值数组创建一个结构体值。必须使用duckdb_destroy_value销毁。

Syntax
duckdb_value duckdb_create_struct_value(
  duckdb_logical_type type,
  duckdb_value *values
);
Parameters
  • type: 结构体的类型
  • values: 结构体字段的值
Return Value

结构体值,或nullptr,如果任何子类型是DUCKDB_TYPE_ANYDUCKDB_TYPE_INVALID


duckdb_create_list_value

从子(元素)类型和长度为value_count的值数组创建一个列表值。 必须使用duckdb_destroy_value销毁。

Syntax
duckdb_value duckdb_create_list_value(
  duckdb_logical_type type,
  duckdb_value *values,
  idx_t value_count
);
Parameters
  • type: 列表的类型
  • values: 列表的值
  • value_count: 列表中值的数量
Return Value

列表值,如果子类型是DUCKDB_TYPE_ANYDUCKDB_TYPE_INVALID,则为nullptr。


duckdb_create_array_value

从子(元素)类型和长度为value_count的值数组创建一个数组值。 必须使用duckdb_destroy_value销毁。

Syntax
duckdb_value duckdb_create_array_value(
  duckdb_logical_type type,
  duckdb_value *values,
  idx_t value_count
);
Parameters
  • type: 数组的类型
  • values: 数组的值
  • value_count: 数组中的值的数量
Return Value

数组值,或nullptr,如果子类型是DUCKDB_TYPE_ANYDUCKDB_TYPE_INVALID


duckdb_get_map_size

返回MAP值中的元素数量。

Syntax
idx_t duckdb_get_map_size(
  duckdb_value value
);
Parameters
  • value: MAP值。
Return Value

地图中的元素数量。


duckdb_get_map_key

返回索引处的MAP键作为duckdb_value。

Syntax
duckdb_value duckdb_get_map_key(
  duckdb_value value,
  idx_t index
);
Parameters
  • value: MAP 值。
  • index: 键的索引。
Return Value

键作为 duckdb_value。


duckdb_get_map_value

返回索引处的MAP值作为duckdb_value。

Syntax
duckdb_value duckdb_get_map_value(
  duckdb_value value,
  idx_t index
);
Parameters
  • value: MAP 值。
  • index: 值的索引。
Return Value

值作为duckdb_value。