ADBC
Arrow 数据库连接性
|
主题 | |
ADBC 统计类型 | |
批量数据摄取 | |
宏 | |
#define | ADBC_VERSION_1_0_0 1000000 |
ADBC 版本 1.0.0。 | |
#define | ADBC_VERSION_1_1_0 1001000 |
ADBC 版本 1.1.0。 | |
#define | ADBC_OPTION_VALUE_ENABLED "true" |
启用选项的标准选项值。 | |
#define | ADBC_OPTION_VALUE_DISABLED "false" |
禁用选项的标准选项值。 | |
#define | ADBC_OPTION_URI "uri" |
URI 的标准选项名称。 | |
#define | ADBC_OPTION_USERNAME "username" |
用户名的标准选项名称。 | |
#define | ADBC_OPTION_PASSWORD "password" |
密码的标准选项名称。 | |
#define | ADBC_INFO_VENDOR_NAME 0 |
数据库供应商/产品名称(例如,服务器名称)。(类型:utf8)。 | |
#define | ADBC_INFO_VENDOR_VERSION 1 |
数据库供应商/产品版本(类型:utf8)。 | |
#define | ADBC_INFO_VENDOR_ARROW_VERSION 2 |
数据库供应商/产品 Arrow 库版本(类型:utf8)。 | |
#define | ADBC_INFO_VENDOR_SQL 3 |
指示是否支持 SQL 查询(类型:bool)。 | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT 4 |
指示是否支持 Substrait 查询(类型:bool)。 | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION 5 |
支持的最小 Substrait 版本,如果不支持 Substrait,则为 null(类型:utf8)。 | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION 6 |
支持的最大 Substrait 版本,如果不支持 Substrait,则为 null(类型:utf8)。 | |
#define | ADBC_INFO_DRIVER_NAME 100 |
驱动程序名称(类型:utf8)。 | |
#define | ADBC_INFO_DRIVER_VERSION 101 |
驱动程序版本(类型:utf8)。 | |
#define | ADBC_INFO_DRIVER_ARROW_VERSION 102 |
驱动程序 Arrow 库版本(类型:utf8)。 | |
#define | ADBC_INFO_DRIVER_ADBC_VERSION 103 |
驱动程序 ADBC API 版本(类型:int64)。 | |
#define | ADBC_OBJECT_DEPTH_ALL 0 |
返回目录、模式、表和列的元数据。 | |
#define | ADBC_OBJECT_DEPTH_CATALOGS 1 |
仅返回目录的元数据。 | |
#define | ADBC_OBJECT_DEPTH_DB_SCHEMAS 2 |
返回目录和模式的元数据。 | |
#define | ADBC_OBJECT_DEPTH_TABLES 3 |
返回目录、模式和表的元数据。 | |
#define | ADBC_OBJECT_DEPTH_COLUMNS ADBC_OBJECT_DEPTH_ALL |
返回目录、模式、表和列的元数据。 | |
#define | ADBC_CONNECTION_OPTION_AUTOCOMMIT "adbc.connection.autocommit" |
用于指示是否启用自动提交的标准选项的名称。 | |
#define | ADBC_CONNECTION_OPTION_READ_ONLY "adbc.connection.readonly" |
用于指示当前连接是否应限制为只读的标准选项的名称。 | |
#define | ADBC_CONNECTION_OPTION_CURRENT_CATALOG "adbc.connection.catalog" |
当前目录的标准选项名称。 | |
#define | ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA "adbc.connection.db_schema" |
当前模式的标准选项名称。 | |
#define | ADBC_STATEMENT_OPTION_INCREMENTAL "adbc.statement.exec.incremental" |
用于使查询执行变为非阻塞的标准选项名称。 | |
#define | ADBC_STATEMENT_OPTION_PROGRESS "adbc.statement.exec.progress" |
用于获取查询进度的选项名称。 | |
#define | ADBC_STATEMENT_OPTION_MAX_PROGRESS "adbc.statement.exec.max_progress" |
用于获取查询最大进度的选项名称。 | |
#define | ADBC_CONNECTION_OPTION_ISOLATION_LEVEL "adbc.connection.transaction.isolation_level" |
用于设置事务隔离级别的标准选项名称。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_DEFAULT "adbc.connection.transaction.isolation.default" |
使用数据库或驱动程序默认隔离级别。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED "adbc.connection.transaction.isolation.read_uncommitted" |
最低隔离级别。 允许脏读,因此一个事务可能会看到其他事务尚未提交的更改。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED "adbc.connection.transaction.isolation.read_committed" |
基于锁的并发控制将写锁保持到事务结束,但读锁在执行 SELECT 后立即释放。 在此隔离级别可能会发生不可重复的读取。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ "adbc.connection.transaction.isolation.repeatable_read" |
基于锁的并发控制将读取和写入锁(在选择数据时获取)保持到事务结束。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT "adbc.connection.transaction.isolation.snapshot" |
此隔离级别保证事务中的所有读取都将看到数据库的一致快照,并且只有自该快照以来没有与任何并发更新冲突的更新,事务才能成功提交。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE "adbc.connection.transaction.isolation.serializable" |
可序列化性要求仅在事务结束时才释放读取和写入锁。 这包括在 select 查询使用范围 WHERE 子句时获取范围锁,以避免幻读。 | |
#define | ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE "adbc.connection.transaction.isolation.linearizable" |
可序列化性和线性化之间的主要区别在于,可序列化性是一个全局属性; 整个操作和事务历史的属性。 线性化是一个局部属性; 单个操作/事务的属性。 | |
#define ADBC_CONNECTION_OPTION_AUTOCOMMIT "adbc.connection.autocommit" |
#define ADBC_CONNECTION_OPTION_CURRENT_CATALOG "adbc.connection.catalog" |
#define ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA "adbc.connection.db_schema" |
#define ADBC_CONNECTION_OPTION_ISOLATION_LEVEL "adbc.connection.transaction.isolation_level" |
用于设置事务隔离级别的标准选项名称。
应仅在禁用自动提交以及 AdbcConnectionCommit / AdbcConnectionRollback 结合使用。 如果驱动程序不支持所需的隔离级别,则应返回相应的错误。
类型为 char*。
#define ADBC_CONNECTION_OPTION_READ_ONLY "adbc.connection.readonly" |
#define ADBC_INFO_DRIVER_ADBC_VERSION 103 |
驱动程序 ADBC API 版本(类型:int64)。
该值应为 ADBC_VERSION 常量之一。
#define ADBC_INFO_DRIVER_ARROW_VERSION 102 |
驱动程序 Arrow 库版本(类型:utf8)。
#define ADBC_INFO_DRIVER_NAME 100 |
驱动程序名称(类型:utf8)。
#define ADBC_INFO_DRIVER_VERSION 101 |
驱动程序版本(类型:utf8)。
#define ADBC_INFO_VENDOR_ARROW_VERSION 2 |
数据库供应商/产品 Arrow 库版本(类型:utf8)。
#define ADBC_INFO_VENDOR_NAME 0 |
数据库供应商/产品名称(例如,服务器名称)。(类型:utf8)。
#define ADBC_INFO_VENDOR_SQL 3 |
指示是否支持 SQL 查询(类型:bool)。
#define ADBC_INFO_VENDOR_SUBSTRAIT 4 |
指示是否支持 Substrait 查询(类型:bool)。
#define ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION 6 |
支持的最大 Substrait 版本,如果不支持 Substrait,则为 null(类型:utf8)。
#define ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION 5 |
支持的最小 Substrait 版本,如果不支持 Substrait,则为 null(类型:utf8)。
#define ADBC_INFO_VENDOR_VERSION 1 |
数据库供应商/产品版本(类型:utf8)。
#define ADBC_OBJECT_DEPTH_ALL 0 |
返回目录、模式、表和列的元数据。
#define ADBC_OBJECT_DEPTH_CATALOGS 1 |
仅返回目录的元数据。
#define ADBC_OBJECT_DEPTH_COLUMNS ADBC_OBJECT_DEPTH_ALL |
返回目录、模式、表和列的元数据。
#define ADBC_OBJECT_DEPTH_DB_SCHEMAS 2 |
返回目录和模式的元数据。
#define ADBC_OBJECT_DEPTH_TABLES 3 |
返回目录、模式和表的元数据。
#define ADBC_OPTION_ISOLATION_LEVEL_DEFAULT "adbc.connection.transaction.isolation.default" |
使用数据库或驱动程序默认隔离级别。
#define ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE "adbc.connection.transaction.isolation.linearizable" |
可序列化性和线性化之间的主要区别在于,可序列化性是一个全局属性; 整个操作和事务历史的属性。 线性化是一个局部属性; 单个操作/事务的属性。
线性一致性可以被看作是严格可串行化的一种特殊情况,其中事务被限制为仅包含应用于单个对象的单个操作。
#define ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED "adbc.connection.transaction.isolation.read_committed" |
基于锁的并发控制将写锁保持到事务结束,但读锁在执行 SELECT 后立即释放。 在此隔离级别可能会发生不可重复的读取。
更简单地说,Read Committed 是一种隔离级别,它保证读取的任何数据在读取时都是已提交的。 它只是限制读取器看到任何中间的、未提交的“脏”读取。 它不保证如果事务重新发出读取,它会找到相同的数据; 数据在读取后可以自由更改。
#define ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED "adbc.connection.transaction.isolation.read_uncommitted" |
最低隔离级别。 允许脏读,因此一个事务可能会看到其他事务尚未提交的更改。
#define ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ "adbc.connection.transaction.isolation.repeatable_read" |
基于锁的并发控制将读取和写入锁(在选择数据时获取)保持到事务结束。
但是,不管理范围锁,因此可能会发生幻读。 在某些系统中,在此隔离级别上可能存在写倾斜。
#define ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE "adbc.connection.transaction.isolation.serializable" |
可序列化性要求仅在事务结束时才释放读取和写入锁。 这包括在 select 查询使用范围 WHERE 子句时获取范围锁,以避免幻读。
#define ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT "adbc.connection.transaction.isolation.snapshot" |
此隔离级别保证事务中的所有读取都将看到数据库的一致快照,并且只有自该快照以来没有与任何并发更新冲突的更新,事务才能成功提交。
#define ADBC_OPTION_PASSWORD "password" |
密码的标准选项名称。
应用作指定驱动程序身份验证密码的预期选项名称。
类型为 char*。
#define ADBC_OPTION_URI "uri" |
URI 的标准选项名称。
应用作指定任何 ADBC 驱动程序的 URI 的预期选项名称。
类型为 char*。
#define ADBC_OPTION_USERNAME "username" |
用户名的标准选项名称。
应用作指定驱动程序身份验证用户名的预期选项名称。
类型为 char*。
#define ADBC_OPTION_VALUE_DISABLED "false" |
禁用选项的标准选项值。
用于 SetOption 调用中的值。
#define ADBC_OPTION_VALUE_ENABLED "true" |
启用选项的标准选项值。
用于 SetOption 调用中的值。
#define ADBC_STATEMENT_OPTION_INCREMENTAL "adbc.statement.exec.incremental" |
用于使查询执行变为非阻塞的标准选项名称。
启用后,AdbcStatementExecutePartitions 将在分区可用时立即返回分区,而不是在最后全部返回。 当没有更多要返回的分区时,它将返回一个空的分区集。 AdbcStatementExecuteQuery 和 AdbcStatementExecuteSchema 不受影响。
默认值为 ADBC_OPTION_VALUE_DISABLED。
类型为 char*。
#define ADBC_STATEMENT_OPTION_MAX_PROGRESS "adbc.statement.exec.max_progress" |
用于获取查询最大进度的选项名称。
这是已完成查询的 ADBC_STATEMENT_OPTION_PROGRESS 的值。 如果不支持,或者如果该值为非正数,则最大值未知。(例如,查询可能是完全流式的,驱动程序不知道结果集何时结束。)
类型为 double。
#define ADBC_STATEMENT_OPTION_PROGRESS "adbc.statement.exec.progress" |
用于获取查询进度的选项名称。
该值不一定在任何特定范围内或具有任何特定单位。(例如,它可能是一个百分比、数据字节、数据行、worker 数量等。)最大值可以通过 ADBC_STATEMENT_OPTION_MAX_PROGRESS 检索。 这表示执行的进度,而不是消耗的进度(即,它与客户端通过 ArrowArrayStream.get_next() 读取的结果集数量无关)。
类型为 double。
#define ADBC_VERSION_1_0_0 1000000 |
ADBC 版本 1.0.0。
当传递给 AdbcDriverInitFunc() 时,驱动程序参数必须指向 AdbcDriver。
#define ADBC_VERSION_1_1_0 1001000 |