ADBC
Arrow Database Connectivity
|
Topics | |
ADBC Statistic Types | |
Bulk Data Ingestion | |
Macros | |
#define | ADBC_VERSION_1_0_0 1000000 |
ADBC revision 1.0.0. | |
#define | ADBC_VERSION_1_1_0 1001000 |
ADBC revision 1.1.0. | |
#define | ADBC_OPTION_VALUE_ENABLED "true" |
Canonical option value for enabling an option. | |
#define | ADBC_OPTION_VALUE_DISABLED "false" |
Canonical option value for disabling an option. | |
#define | ADBC_OPTION_URI "uri" |
Canonical option name for URIs. | |
#define | ADBC_OPTION_USERNAME "username" |
Canonical option name for usernames. | |
#define | ADBC_OPTION_PASSWORD "password" |
Canonical option name for passwords. | |
#define | ADBC_INFO_VENDOR_NAME 0 |
The database vendor/product name (e.g. the server name). (type: utf8). | |
#define | ADBC_INFO_VENDOR_VERSION 1 |
The database vendor/product version (type: utf8). | |
#define | ADBC_INFO_VENDOR_ARROW_VERSION 2 |
The database vendor/product Arrow library version (type: utf8). | |
#define | ADBC_INFO_VENDOR_SQL 3 |
Indicates whether SQL queries are supported (type: bool). | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT 4 |
Indicates whether Substrait queries are supported (type: bool). | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION 5 |
The minimum supported Substrait version, or null if Substrait is not supported (type: utf8). | |
#define | ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION 6 |
The maximum supported Substrait version, or null if Substrait is not supported (type: utf8). | |
#define | ADBC_INFO_DRIVER_NAME 100 |
The driver name (type: utf8). | |
#define | ADBC_INFO_DRIVER_VERSION 101 |
The driver version (type: utf8). | |
#define | ADBC_INFO_DRIVER_ARROW_VERSION 102 |
The driver Arrow library version (type: utf8). | |
#define | ADBC_INFO_DRIVER_ADBC_VERSION 103 |
The driver ADBC API version (type: int64). | |
#define | ADBC_OBJECT_DEPTH_ALL 0 |
Return metadata on catalogs, schemas, tables, and columns. | |
#define | ADBC_OBJECT_DEPTH_CATALOGS 1 |
Return metadata on catalogs only. | |
#define | ADBC_OBJECT_DEPTH_DB_SCHEMAS 2 |
Return metadata on catalogs and schemas. | |
#define | ADBC_OBJECT_DEPTH_TABLES 3 |
Return metadata on catalogs, schemas, and tables. | |
#define | ADBC_OBJECT_DEPTH_COLUMNS ADBC_OBJECT_DEPTH_ALL |
Return metadata on catalogs, schemas, tables, and columns. | |
#define | ADBC_CONNECTION_OPTION_AUTOCOMMIT "adbc.connection.autocommit" |
The name of the canonical option for whether autocommit is enabled. | |
#define | ADBC_CONNECTION_OPTION_READ_ONLY "adbc.connection.readonly" |
The name of the canonical option for whether the current connection should be restricted to being read-only. | |
#define | ADBC_CONNECTION_OPTION_CURRENT_CATALOG "adbc.connection.catalog" |
The name of the canonical option for the current catalog. | |
#define | ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA "adbc.connection.db_schema" |
The name of the canonical option for the current schema. | |
#define | ADBC_STATEMENT_OPTION_INCREMENTAL "adbc.statement.exec.incremental" |
The name of the canonical option for making query execution nonblocking. | |
#define | ADBC_STATEMENT_OPTION_PROGRESS "adbc.statement.exec.progress" |
The name of the option for getting the progress of a query. | |
#define | ADBC_STATEMENT_OPTION_MAX_PROGRESS "adbc.statement.exec.max_progress" |
The name of the option for getting the maximum progress of a query. | |
#define | ADBC_CONNECTION_OPTION_ISOLATION_LEVEL "adbc.connection.transaction.isolation_level" |
The name of the canonical option for setting the isolation level of a transaction. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_DEFAULT "adbc.connection.transaction.isolation.default" |
Use database or driver default isolation level. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED "adbc.connection.transaction.isolation.read_uncommitted" |
The lowest isolation level. Dirty reads are allowed, so one transaction may see not-yet-committed changes made by others. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED "adbc.connection.transaction.isolation.read_committed" |
Lock-based concurrency control keeps write locks until the end of the transaction, but read locks are released as soon as a SELECT is performed. Non-repeatable reads can occur in this isolation level. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ "adbc.connection.transaction.isolation.repeatable_read" |
Lock-based concurrency control keeps read AND write locks (acquired on selection data) until the end of the transaction. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT "adbc.connection.transaction.isolation.snapshot" |
This isolation guarantees that all reads in the transaction will see a consistent snapshot of the database and the transaction should only successfully commit if no updates conflict with any concurrent updates made since that snapshot. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE "adbc.connection.transaction.isolation.serializable" |
Serializability requires read and write locks to be released only at the end of the transaction. This includes acquiring range- locks when a select query uses a ranged WHERE clause to avoid phantom reads. | |
#define | ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE "adbc.connection.transaction.isolation.linearizable" |
The central distinction between serializability and linearizability is that serializability is a global property; a property of an entire history of operations and transactions. Linearizability is a local property; a property of a single operation/transaction. | |
#define ADBC_CONNECTION_OPTION_AUTOCOMMIT "adbc.connection.autocommit" |
The name of the canonical option for whether autocommit is enabled.
The type is char*.
#define ADBC_CONNECTION_OPTION_CURRENT_CATALOG "adbc.connection.catalog" |
The name of the canonical option for the current catalog.
The type is char*.
#define ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA "adbc.connection.db_schema" |
The name of the canonical option for the current schema.
The type is char*.
#define ADBC_CONNECTION_OPTION_ISOLATION_LEVEL "adbc.connection.transaction.isolation_level" |
The name of the canonical option for setting the isolation level of a transaction.
Should only be used in conjunction with autocommit disabled and AdbcConnectionCommit / AdbcConnectionRollback. If the desired isolation level is not supported by a driver, it should return an appropriate error.
The type is char*.
#define ADBC_CONNECTION_OPTION_READ_ONLY "adbc.connection.readonly" |
The name of the canonical option for whether the current connection should be restricted to being read-only.
The type is char*.
#define ADBC_INFO_DRIVER_ADBC_VERSION 103 |
The driver ADBC API version (type: int64).
The value should be one of the ADBC_VERSION constants.
#define ADBC_INFO_DRIVER_ARROW_VERSION 102 |
The driver Arrow library version (type: utf8).
#define ADBC_INFO_DRIVER_NAME 100 |
The driver name (type: utf8).
#define ADBC_INFO_DRIVER_VERSION 101 |
The driver version (type: utf8).
#define ADBC_INFO_VENDOR_ARROW_VERSION 2 |
The database vendor/product Arrow library version (type: utf8).
#define ADBC_INFO_VENDOR_NAME 0 |
The database vendor/product name (e.g. the server name). (type: utf8).
#define ADBC_INFO_VENDOR_SQL 3 |
Indicates whether SQL queries are supported (type: bool).
#define ADBC_INFO_VENDOR_SUBSTRAIT 4 |
Indicates whether Substrait queries are supported (type: bool).
#define ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION 6 |
The maximum supported Substrait version, or null if Substrait is not supported (type: utf8).
#define ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION 5 |
The minimum supported Substrait version, or null if Substrait is not supported (type: utf8).
#define ADBC_INFO_VENDOR_VERSION 1 |
The database vendor/product version (type: utf8).
#define ADBC_OBJECT_DEPTH_ALL 0 |
Return metadata on catalogs, schemas, tables, and columns.
#define ADBC_OBJECT_DEPTH_CATALOGS 1 |
Return metadata on catalogs only.
#define ADBC_OBJECT_DEPTH_COLUMNS ADBC_OBJECT_DEPTH_ALL |
Return metadata on catalogs, schemas, tables, and columns.
#define ADBC_OBJECT_DEPTH_DB_SCHEMAS 2 |
Return metadata on catalogs and schemas.
#define ADBC_OBJECT_DEPTH_TABLES 3 |
Return metadata on catalogs, schemas, and tables.
#define ADBC_OPTION_ISOLATION_LEVEL_DEFAULT "adbc.connection.transaction.isolation.default" |
Use database or driver default isolation level.
#define ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE "adbc.connection.transaction.isolation.linearizable" |
The central distinction between serializability and linearizability is that serializability is a global property; a property of an entire history of operations and transactions. Linearizability is a local property; a property of a single operation/transaction.
Linearizability can be viewed as a special case of strict serializability where transactions are restricted to consist of a single operation applied to a single object.
#define ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED "adbc.connection.transaction.isolation.read_committed" |
Lock-based concurrency control keeps write locks until the end of the transaction, but read locks are released as soon as a SELECT is performed. Non-repeatable reads can occur in this isolation level.
More simply put, Read Committed is an isolation level that guarantees that any data read is committed at the moment it is read. It simply restricts the reader from seeing any intermediate, uncommitted, 'dirty' reads. It makes no promise whatsoever that if the transaction re-issues the read, it will find the same data; data is free to change after it is read.
#define ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED "adbc.connection.transaction.isolation.read_uncommitted" |
The lowest isolation level. Dirty reads are allowed, so one transaction may see not-yet-committed changes made by others.
#define ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ "adbc.connection.transaction.isolation.repeatable_read" |
Lock-based concurrency control keeps read AND write locks (acquired on selection data) until the end of the transaction.
However, range-locks are not managed, so phantom reads can occur. Write skew is possible at this isolation level in some systems.
#define ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE "adbc.connection.transaction.isolation.serializable" |
Serializability requires read and write locks to be released only at the end of the transaction. This includes acquiring range- locks when a select query uses a ranged WHERE clause to avoid phantom reads.
#define ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT "adbc.connection.transaction.isolation.snapshot" |
This isolation guarantees that all reads in the transaction will see a consistent snapshot of the database and the transaction should only successfully commit if no updates conflict with any concurrent updates made since that snapshot.
#define ADBC_OPTION_PASSWORD "password" |
Canonical option name for passwords.
Should be used as the expected option name to specify a password for authentication to a driver.
The type is char*.
#define ADBC_OPTION_URI "uri" |
Canonical option name for URIs.
Should be used as the expected option name to specify a URI for any ADBC driver.
The type is char*.
#define ADBC_OPTION_USERNAME "username" |
Canonical option name for usernames.
Should be used as the expected option name to specify a username to a driver for authentication.
The type is char*.
#define ADBC_OPTION_VALUE_DISABLED "false" |
Canonical option value for disabling an option.
For use as the value in SetOption calls.
#define ADBC_OPTION_VALUE_ENABLED "true" |
Canonical option value for enabling an option.
For use as the value in SetOption calls.
#define ADBC_STATEMENT_OPTION_INCREMENTAL "adbc.statement.exec.incremental" |
The name of the canonical option for making query execution nonblocking.
When enabled, AdbcStatementExecutePartitions will return partitions as soon as they are available, instead of returning them all at the end. When there are no more to return, it will return an empty set of partitions. AdbcStatementExecuteQuery and AdbcStatementExecuteSchema are not affected.
The default is ADBC_OPTION_VALUE_DISABLED.
The type is char*.
#define ADBC_STATEMENT_OPTION_MAX_PROGRESS "adbc.statement.exec.max_progress" |
The name of the option for getting the maximum progress of a query.
This is the value of ADBC_STATEMENT_OPTION_PROGRESS for a completed query. If not supported, or if the value is nonpositive, then the maximum is not known. (For instance, the query may be fully streaming and the driver does not know when the result set will end.)
The type is double.
#define ADBC_STATEMENT_OPTION_PROGRESS "adbc.statement.exec.progress" |
The name of the option for getting the progress of a query.
The value is not necessarily in any particular range or have any particular units. (For example, it might be a percentage, bytes of data, rows of data, number of workers, etc.) The max value can be retrieved via ADBC_STATEMENT_OPTION_MAX_PROGRESS. This represents the progress of execution, not of consumption (i.e., it is independent of how much of the result set has been read by the client via ArrowArrayStream.get_next().)
The type is double.
#define ADBC_VERSION_1_0_0 1000000 |
ADBC revision 1.0.0.
When passed to an AdbcDriverInitFunc(), the driver parameter must point to an AdbcDriver.
#define ADBC_VERSION_1_1_0 1001000 |
ADBC revision 1.1.0.
When passed to an AdbcDriverInitFunc(), the driver parameter must point to an AdbcDriver.