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 查询(类型:布尔值)。 | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT 4 |
指示是否支持 Substrait 查询(类型:布尔值)。 | |
#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" |
可串行化要求仅在事务结束时才释放读锁和写锁。这包括在选择查询使用范围 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 查询(类型:布尔值)。
#define ADBC_INFO_VENDOR_SUBSTRAIT 4 |
指示是否支持 Substrait 查询(类型:布尔值)。
#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 后立即释放。此隔离级别可能发生不可重复读取。
更简单地说,读取已提交是一个隔离级别,它保证读取的任何数据在读取时都已提交。它只是限制读者看到任何中间的、未提交的、“脏”读取。它不保证如果事务重新发出读取,它将找到相同的数据;数据在读取后可以自由更改。
#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" |
可串行化要求仅在事务结束时才释放读锁和写锁。这包括在选择查询使用范围 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" |
用于获取查询进度的选项名称。
该值不一定在任何特定范围内或有任何特定单位。(例如,它可能是百分比、数据字节数、数据行数、工作线程数等。)最大值可以通过 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 |