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 中相同的信息代码范围提供的元数据相同。
[输入] | connection | 要查询的连接。 |
[输入] | info_codes | 要获取的元数据代码列表,如果为 NULL,则获取所有代码。 |
[输入] | info_codes_length | info_codes 参数的长度。 如果 info_codes 为 NULL,则忽略。 |
[输出] | 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 是一个具有以下字段的 Struct
字段名称 | 字段类型 |
---|---|
db_schema_name | utf8 |
db_schema_tables | list<TABLE_SCHEMA> |
TABLE_SCHEMA 是一个具有以下字段的 Struct
字段名称 | 字段类型 |
---|---|
table_name | utf8 not null |
table_type | utf8 not null |
table_columns | list<COLUMN_SCHEMA> |
table_constraints | list<CONSTRAINT_SCHEMA> |
COLUMN_SCHEMA 是一个具有以下字段的 Struct
字段名称 | 字段类型 | 评论 |
---|---|---|
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 是一个具有以下字段的 Struct
字段名称 | 字段类型 | 评论 |
---|---|---|
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 是一个具有以下字段的 Struct
字段名称 | 字段类型 |
---|---|
fk_catalog | utf8 |
fk_db_schema | utf8 |
fk_table | utf8 not null |
fk_column_name | utf8 not null |
此 AdbcConnection 必须比返回的 ArrowArrayStream 存活时间更长。
[输入] | connection | 数据库连接。 |
[输入] | depth | 要显示的嵌套级别。 如果为 0,则显示所有级别。 如果为 1,则仅显示目录(即 catalog_schemas 将为 null)。 如果为 2,则仅显示目录和模式(即 db_schema_tables 将为 null),依此类推。 |
[输入] | catalog | 仅显示给定目录中的表。 如果为 NULL,则不按目录过滤。 如果为空字符串,则仅显示没有目录的表。 可以是搜索模式(请参阅章节文档)。 |
[输入] | db_schema | 仅显示给定数据库模式中的表。 如果为 NULL,则不按数据库模式过滤。 如果为空字符串,则仅显示没有数据库模式的表。 可以是搜索模式(请参阅章节文档)。 |
[输入] | table_name | 仅显示具有给定名称的表。 如果为 NULL,则不按名称过滤。 可以是搜索模式(请参阅章节文档)。 |
[输入] | table_type | 仅显示与给定表类型之一匹配的表。 如果为 NULL,则显示任何类型的表。 有效的表类型可以从 GetTableTypes 获取。 以 NULL 条目终止列表。 |
[输入] | column_name | 仅显示具有给定名称的列。 如果为 NULL,则不按名称过滤。 可以是搜索模式(请参阅章节文档)。 |
[输出] | out | 结果集。 |
[输出] | error | 如果发生错误,则提供错误详细信息。 |
AdbcStatusCode AdbcConnectionGetOption | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
char * | value, | ||
size_t * | length, | ||
struct AdbcError * | error ) |
获取连接的字符串选项。
这必须始终是线程安全的(其他操作不是),但考虑到此处的语义,不建议与自身并发调用 GetOption。
必须提供 length 并且必须是由 value 指向的缓冲区的大小。 如果有足够的空间,驱动程序会将选项值(包括空终止符)复制到缓冲区并将 length 设置为实际值的大小。 如果缓冲区太小,则不会写入任何数据,并且 length 将设置为所需的长度。
换句话说
[输入] | connection | 数据库连接。 |
[输入] | key | 要获取的选项。 |
[输出] | value | 选项值。 |
[输入,输出] | length | value 的长度。 |
[输出] | 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 获取转换后的选项值。 (例如,获取 double 选项的字符串表示形式。)
[输入] | connection | 连接。 |
[输入] | key | 要获取的选项。 |
[输出] | value | 选项值。 |
[输入,输出] | length | 选项值的长度。 |
[输出] | error | 如果需要,可以选择返回错误消息的位置。 |
AdbcStatusCode AdbcConnectionGetOptionDouble | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
double * | value, | ||
struct AdbcError * | error ) |
获取连接的双精度浮点数选项。
这必须始终是线程安全的(其他操作不是)。
对于标准选项,驱动程序必须始终支持通过选项中指定的类型获取选项值(如果他们完全支持获取选项值)。 (例如,通过 SetOptionDouble 设置的选项必须可以通过 GetOptionDouble 检索。)如果需要,驱动程序也可以支持通过其他 getter 获取转换后的选项值。 (例如,获取 double 选项的字符串表示形式。)
[输入] | connection | 数据库连接。 |
[输入] | key | 要获取的选项。 |
[输出] | value | 选项值。 |
[输出] | error | 如果需要,可以选择返回错误消息的位置。 |
AdbcStatusCode AdbcConnectionGetOptionInt | ( | struct AdbcConnection * | connection, |
const char * | key, | ||
int64_t * | value, | ||
struct AdbcError * | error ) |
获取连接的整数选项。
这必须始终是线程安全的(其他操作不是)。
对于标准选项,驱动程序必须始终支持通过选项中指定的类型获取选项值(如果他们完全支持获取选项值)。 (例如,通过 SetOptionDouble 设置的选项必须可以通过 GetOptionDouble 检索。)如果需要,驱动程序也可以支持通过其他 getter 获取转换后的选项值。 (例如,获取 double 选项的字符串表示形式。)
[输入] | connection | 数据库连接。 |
[输入] | key | 要获取的选项。 |
[输出] | value | 选项值。 |
[输出] | error | 如果需要,可以选择返回错误消息的位置。 |
AdbcStatusCode AdbcConnectionGetStatisticNames | ( | struct AdbcConnection * | connection, |
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取此驱动程序特有的统计信息的名称。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
statistic_name | utf8 not null |
statistic_key | int16 not null |
[输入] | connection | 数据库连接。 |
[输出] | out | 结果集。 |
[输出] | 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 ) |
获取有关表数据分布的统计信息。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
catalog_name | utf8 |
catalog_db_schemas | list<DB_SCHEMA_SCHEMA> not null |
DB_SCHEMA_SCHEMA 是一个具有以下字段的 Struct
字段名称 | 字段类型 |
---|---|
db_schema_name | utf8 |
db_schema_statistics | list<STATISTICS_SCHEMA> not null |
STATISTICS_SCHEMA 是一个结构体,具有以下字段
字段名称 | 字段类型 | 评论 |
---|---|---|
table_name | utf8 not null | |
column_name | utf8 | (1) |
statistic_key | int16 not null | (2) |
statistic_value | VALUE_SCHEMA not null | |
statistic_is_approximate | bool not null | (3) |
VALUE_SCHEMA 是一个具有以下成员的密集联合
字段名称 | 字段类型 |
---|---|
int64 | int64 |
uint64 | uint64 |
float64 | float64 |
binary | binary |
此 AdbcConnection 必须比返回的 ArrowArrayStream 存活时间更长。
[输入] | connection | 数据库连接。 |
[输入] | catalog | 目录(或 nullptr)。 可以是搜索模式(请参见章节文档)。 |
[输入] | db_schema | 数据库模式(或 nullptr)。 可以是搜索模式(请参见章节文档)。 |
[输入] | table_name | 表名(或 nullptr)。 可以是搜索模式(请参见章节文档)。 |
[输入] | approximate | 如果为零,则请求统计信息的精确值,否则允许尽力而为、近似或缓存的值。 数据库可能会返回近似值,无论如何,如结果所示。 请求精确值可能代价高昂或不受支持。 |
[输出] | out | 结果集。 |
[输出] | error | 如果发生错误,则提供错误详细信息。 |
AdbcStatusCode AdbcConnectionGetTableSchema | ( | struct AdbcConnection * | connection, |
const char * | catalog, | ||
const char * | db_schema, | ||
const char * | table_name, | ||
struct ArrowSchema * | schema, | ||
struct AdbcError * | error ) |
获取表的 Arrow 模式。
[输入] | connection | 数据库连接。 |
[输入] | catalog | 目录(如果适用,则为 nullptr)。 |
[输入] | db_schema | 数据库模式(如果适用,则为 nullptr)。 |
[输入] | table_name | 表名。 |
[输出] | schema | 表模式。 |
[输出] | error | 如果发生错误,则提供错误详细信息。 |
AdbcStatusCode AdbcConnectionGetTableTypes | ( | struct AdbcConnection * | connection, |
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
获取数据库中表类型的列表。
结果是一个具有以下模式的 Arrow 数据集
字段名称 | 字段类型 |
---|---|
table_type | utf8 not null |
此 AdbcConnection 必须比返回的 ArrowArrayStream 存活时间更长。
[输入] | connection | 数据库连接。 |
[输出] | out | 结果集。 |
[输出] | error | 如果发生错误,则提供错误详细信息。 |