ADBC
Arrow 数据库连接
|
函数 | |
AdbcStatusCode | AdbcConnectionGetInfo (struct AdbcConnection *connection, const uint32_t *info_codes, size_t info_codes_length, struct ArrowArrayStream *out, struct AdbcError *error) |
获取关于数据库/驱动程序的元数据。 | |
AdbcStatusCode | AdbcConnectionGetObjects (struct AdbcConnection *connection, int depth, const char *catalog, const char *db_schema, const char *table_name, const char **table_type, const char *column_name, struct ArrowArrayStream *out, struct AdbcError *error) |
获取所有目录、数据库模式、表和列的层次结构视图。 | |
AdbcStatusCode | AdbcConnectionGetOption (struct AdbcConnection *connection, const char *key, char *value, size_t *length, struct AdbcError *error) |
获取连接的字符串选项。 | |
AdbcStatusCode | AdbcConnectionGetOptionBytes (struct AdbcConnection *connection, const char *key, uint8_t *value, size_t *length, struct AdbcError *error) |
获取连接的字节串选项。 | |
AdbcStatusCode | AdbcConnectionGetOptionInt (struct AdbcConnection *connection, const char *key, int64_t *value, struct AdbcError *error) |
获取连接的整数选项。 | |
AdbcStatusCode | AdbcConnectionGetOptionDouble (struct AdbcConnection *connection, const char *key, double *value, struct AdbcError *error) |
获取连接的双精度选项。 | |
AdbcStatusCode | AdbcConnectionGetStatistics (struct AdbcConnection *connection, const char *catalog, const char *db_schema, const char *table_name, char approximate, struct ArrowArrayStream *out, struct AdbcError *error) |
获取关于表的数据分布的统计信息。 | |
AdbcStatusCode | AdbcConnectionGetStatisticNames (struct AdbcConnection *connection, struct ArrowArrayStream *out, struct AdbcError *error) |
获取此驱动程序特有的统计信息名称。 | |
AdbcStatusCode | AdbcConnectionGetTableSchema (struct AdbcConnection *connection, const char *catalog, const char *db_schema, const char *table_name, struct ArrowSchema *schema, struct AdbcError *error) |
获取表的 Arrow 模式。 | |
AdbcStatusCode | AdbcConnectionGetTableTypes (struct AdbcConnection *connection, struct ArrowArrayStream *out, struct AdbcError *error) |
获取数据库中表类型的列表。 | |
用于检索有关数据库的元数据的函数。
通常,这些函数返回一个 ArrowArrayStream,可以使用它来获取 Arrow 数据形式的元数据。返回的元数据具有函数文档字符串中给出的预期模式。除非另有说明,否则模式字段可以为空。虽然这些函数中未使用 AdbcStatement,但为了并发管理的目的,结果集可能计为驱动程序的活动语句(例如,如果驱动程序对并发活动语句有限制,并且它必须在内部执行 SQL 查询才能实现元数据函数)。
此 AdbcConnection 必须比返回的 ArrowArrayStream 的生命周期长。
某些函数接受“搜索模式”参数,这些参数是可以包含特殊字符“%”以匹配零个或多个字符,或“_”以匹配一个字符的字符串。(请参阅 JDBC 中 DatabaseMetaData 的文档或 ODBC 文档中的“模式值参数”。)当前不支持转义。
AdbcStatusCode AdbcConnectionGetInfo | ( | struct AdbcConnection * | connection, |
const uint32_t * | info_codes, | ||
size_t | info_codes_length, | ||
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取关于数据库/驱动程序的元数据。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
info_name | uint32 not null |
info_value | INFO_SCHEMA |
INFO_SCHEMA 是一个密集的联合,其成员为
字段名称(类型代码) | 字段类型 |
---|---|
string_value (0) | utf8 |
bool_value (1) | bool |
int64_value (2) | int64 |
int32_bitmask (3) | int32 |
string_list (4) | list<utf8> |
int32_to_int32_list_map (5) | map<int32, list<int32>> |
每个元数据都由一个整数代码标识。识别的代码定义为常量。代码 [0, 10_000) 保留供 ADBC 使用。驱动程序/供应商将忽略对无法识别代码的请求(该行将从结果中省略)。
自 ADBC 1.1.0 起:范围 [500, 1_000) 保留用于“XDBC”信息,这与 Arrow Flight SQL GetSqlInfo RPC 中相同信息代码范围提供的元数据相同。
[in] | connection | 要查询的连接。 |
[in] | info_codes | 要获取的元数据代码列表,如果要获取所有代码,则为 NULL。 |
[in] | info_codes_length | info_codes 参数的长度。如果 info_codes 为 NULL,则忽略。 |
[out] | out | 结果集。 |
[out] | error | 如果发生错误,则为错误详细信息。 |
AdbcStatusCode AdbcConnectionGetObjects | ( | struct AdbcConnection * | connection, |
int | depth, | ||
const char * | catalog, | ||
const char * | db_schema, | ||
const char * | table_name, | ||
const char ** | table_type, | ||
const char * | column_name, | ||
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取所有目录、数据库模式、表和列的层次结构视图。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
catalog_name | utf8 |
catalog_db_schemas | list<DB_SCHEMA_SCHEMA> |
DB_SCHEMA_SCHEMA 是一个具有以下字段的结构体
字段名称 | 字段类型 |
---|---|
db_schema_name | utf8 |
db_schema_tables | list<TABLE_SCHEMA> |
TABLE_SCHEMA 是一个具有以下字段的结构体
字段名称 | 字段类型 |
---|---|
table_name | utf8 not null |
table_type | utf8 not null |
table_columns | list<COLUMN_SCHEMA> |
table_constraints | list<CONSTRAINT_SCHEMA> |
COLUMN_SCHEMA 是一个具有以下字段的结构体
字段名称 | 字段类型 | 注释 |
---|---|---|
column_name | utf8 not null | |
ordinal_position | int32 | (1) |
remarks | utf8 | (2) |
xdbc_data_type | int16 | (3) |
xdbc_type_name | utf8 | (3) |
xdbc_column_size | int32 | (3) |
xdbc_decimal_digits | int16 | (3) |
xdbc_num_prec_radix | int16 | (3) |
xdbc_nullable | int16 | (3) |
xdbc_column_def | utf8 | (3) |
xdbc_sql_data_type | int16 | (3) |
xdbc_datetime_sub | int16 | (3) |
xdbc_char_octet_length | int32 | (3) |
xdbc_is_nullable | utf8 | (3) |
xdbc_scope_catalog | utf8 | (3) |
xdbc_scope_schema | utf8 | (3) |
xdbc_scope_table | utf8 | (3) |
xdbc_is_autoincrement | bool | (3) |
xdbc_is_generatedcolumn | bool | (3) |
CONSTRAINT_SCHEMA 是一个具有以下字段的结构体
字段名称 | 字段类型 | 注释 |
---|---|---|
constraint_name | utf8 | |
constraint_type | utf8 not null | (1) |
constraint_column_names | list<utf8> not null | (2) |
constraint_column_usage | list<USAGE_SCHEMA> | (3) |
USAGE_SCHEMA是一个具有以下字段的结构体
字段名称 | 字段类型 |
---|---|
fk_catalog | utf8 |
fk_db_schema | utf8 |
fk_table | utf8 not null |
fk_column_name | utf8 not null |
此 AdbcConnection 必须比返回的 ArrowArrayStream 的生命周期长。
[in] | connection | 数据库连接。 |
[in] | depth | 要显示的嵌套级别。如果为 0,则显示所有级别。如果为 1,则仅显示目录(即 catalog_schemas 将为空)。如果为 2,则仅显示目录和模式(即 db_schema_tables 将为空),依此类推。 |
[in] | catalog | 仅显示给定目录中的表。如果为 NULL,则不按目录过滤。如果为空字符串,则仅显示没有目录的表。可以是搜索模式(请参阅章节文档)。 |
[in] | db_schema | 仅显示给定数据库模式中的表。如果为 NULL,则不按数据库模式过滤。如果为空字符串,则仅显示没有数据库模式的表。可以是搜索模式(请参阅章节文档)。 |
[in] | table_name | 仅显示具有给定名称的表。如果为 NULL,则不按名称过滤。可以是搜索模式(请参阅章节文档)。 |
[in] | table_type | 仅显示与给定表类型之一匹配的表。如果为 NULL,则显示任何类型的表。有效的表类型可以从 GetTableTypes 获取。使用 NULL 条目终止列表。 |
[in] | column_name | 仅显示具有给定名称的列。如果为 NULL,则不按名称过滤。可以是搜索模式(请参阅章节文档)。 |
[out] | out | 结果集。 |
[out] | error | 如果发生错误,则为错误详细信息。 |
AdbcStatusCode AdbcConnectionGetOption | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
char * | value, | ||
size_t * | length, | ||
struct AdbcError * | error ) |
获取连接的字符串选项。
这必须始终是线程安全的(其他操作不是),但考虑到这里的语义,不建议将 GetOption 与自身并发调用。
必须提供 length,并且它必须是指向 value 的缓冲区的大小。如果有足够的空间,驱动程序会将选项值(包括空终止符)复制到缓冲区并将 length 设置为实际值的大小。如果缓冲区太小,则不会写入任何数据,并且 length 将设置为所需的长度。
换句话说
[in] | connection | 数据库连接。 |
[in] | key | 要获取的选项。 |
[out] | value | 选项值。 |
[in,out] | length | value 的长度。 |
[out] | error | 如有必要,返回错误消息的可选位置。 |
AdbcStatusCode AdbcConnectionGetOptionBytes | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
uint8_t * | value, | ||
size_t * | length, | ||
struct AdbcError * | error ) |
获取连接的字节串选项。
这必须始终是线程安全的(其他操作不是),但考虑到这里的语义,不建议将 GetOptionBytes 与自身并发调用。
必须提供 length,并且它必须是指向 value 的缓冲区的大小。如果有足够的空间,驱动程序会将选项值复制到缓冲区并将 length 设置为实际值的大小。如果缓冲区太小,则不会写入任何数据,并且 length 将设置为所需的长度。
换句话说
对于标准选项,驱动程序必须始终支持通过选项中指定的类型获取选项值(如果它们支持获取选项值)。(例如,通过 SetOptionDouble 设置的选项必须可以通过 GetOptionDouble 检索。)如果需要,驱动程序还可以支持通过其他 getter 获取转换后的选项值。(例如,获取双精度选项的字符串表示形式。)
[in] | connection | 连接。 |
[in] | key | 要获取的选项。 |
[out] | value | 选项值。 |
[in,out] | length | 选项值的长度。 |
[out] | error | 如有必要,返回错误消息的可选位置。 |
AdbcStatusCode AdbcConnectionGetOptionDouble | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
double * | value, | ||
struct AdbcError * | error ) |
获取连接的双精度选项。
此操作必须始终是线程安全的(其他操作则不是)。
对于标准选项,驱动程序必须始终支持通过选项中指定的类型获取选项值(如果它们支持获取选项值)。(例如,通过 SetOptionDouble 设置的选项必须可以通过 GetOptionDouble 检索。)如果需要,驱动程序还可以支持通过其他 getter 获取转换后的选项值。(例如,获取双精度选项的字符串表示形式。)
[in] | connection | 数据库连接。 |
[in] | key | 要获取的选项。 |
[out] | value | 选项值。 |
[out] | error | 如有必要,返回错误消息的可选位置。 |
AdbcStatusCode AdbcConnectionGetOptionInt | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
int64_t * | value, | ||
struct AdbcError * | error ) |
获取连接的整数选项。
此操作必须始终是线程安全的(其他操作则不是)。
对于标准选项,驱动程序必须始终支持通过选项中指定的类型获取选项值(如果它们支持获取选项值)。(例如,通过 SetOptionDouble 设置的选项必须可以通过 GetOptionDouble 检索。)如果需要,驱动程序还可以支持通过其他 getter 获取转换后的选项值。(例如,获取双精度选项的字符串表示形式。)
[in] | connection | 数据库连接。 |
[in] | key | 要获取的选项。 |
[out] | value | 选项值。 |
[out] | error | 如有必要,返回错误消息的可选位置。 |
AdbcStatusCode AdbcConnectionGetStatisticNames | ( | struct AdbcConnection * | connection, |
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取此驱动程序特有的统计信息名称。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
统计信息名称 | utf8 not null |
统计信息键 | int16 非空 |
[in] | connection | 数据库连接。 |
[out] | out | 结果集。 |
[out] | error | 如果发生错误,则为错误详细信息。 |
AdbcStatusCode AdbcConnectionGetStatistics | ( | struct AdbcConnection * | connection, |
const char * | catalog, | ||
const char * | db_schema, | ||
const char * | table_name, | ||
char | 近似值, | ||
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取关于表的数据分布的统计信息。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
catalog_name | utf8 |
catalog_db_schemas | list<DB_SCHEMA_SCHEMA> 非空 |
DB_SCHEMA_SCHEMA 是一个具有以下字段的结构体
字段名称 | 字段类型 |
---|---|
db_schema_name | utf8 |
数据库模式统计信息 | list<STATISTICS_SCHEMA> 非空 |
STATISTICS_SCHEMA 是一个包含以下字段的结构体
字段名称 | 字段类型 | 注释 |
---|---|---|
table_name | utf8 not null | |
column_name | utf8 | (1) |
统计信息键 | int16 非空 | (2) |
统计信息值 | VALUE_SCHEMA 非空 | |
统计信息是否近似 | bool 非空 | (3) |
VALUE_SCHEMA 是一个密集联合体,其成员为
字段名称 | 字段类型 |
---|---|
int64 | int64 |
uint64 | uint64 |
float64 | float64 |
binary | binary |
此 AdbcConnection 必须比返回的 ArrowArrayStream 的生命周期长。
[in] | connection | 数据库连接。 |
[in] | catalog | 目录(或 nullptr)。可以是搜索模式(请参阅章节文档)。 |
[in] | db_schema | 数据库模式(或 nullptr)。可以是搜索模式(请参阅章节文档)。 |
[in] | table_name | 表名(或 nullptr)。可以是搜索模式(请参阅章节文档)。 |
[in] | 近似值 | 如果为零,则请求统计信息的精确值,否则允许使用尽力而为、近似或缓存的值。数据库可能会返回近似值,如结果所示。请求精确值可能代价高昂或不受支持。 |
[out] | out | 结果集。 |
[out] | error | 如果发生错误,则为错误详细信息。 |
AdbcStatusCode AdbcConnectionGetTableSchema | ( | struct AdbcConnection * | connection, |
const char * | catalog, | ||
const char * | db_schema, | ||
const char * | table_name, | ||
struct ArrowSchema * | 模式, | ||
struct AdbcError * | error ) |
获取表的 Arrow 模式。
[in] | connection | 数据库连接。 |
[in] | catalog | 目录(如果不适用,则为 nullptr)。 |
[in] | db_schema | 数据库模式(如果不适用,则为 nullptr)。 |
[in] | table_name | 表名。 |
[out] | 模式 | 表模式。 |
[out] | error | 如果发生错误,则为错误详细信息。 |
AdbcStatusCode AdbcConnectionGetTableTypes | ( | struct AdbcConnection * | connection, |
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取数据库中表类型的列表。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
table_type | utf8 not null |
此 AdbcConnection 必须比返回的 ArrowArrayStream 的生命周期长。
[in] | connection | 数据库连接。 |
[out] | out | 结果集。 |
[out] | error | 如果发生错误,则为错误详细信息。 |