ADBC
Arrow Database Connectivity
Loading...
Searching...
No Matches
Constants

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.
 

Detailed Description

Macro Definition Documentation

◆ ADBC_CONNECTION_OPTION_AUTOCOMMIT

#define ADBC_CONNECTION_OPTION_AUTOCOMMIT   "adbc.connection.autocommit"

The name of the canonical option for whether autocommit is enabled.

The type is char*.

See also
AdbcConnectionSetOption

◆ ADBC_CONNECTION_OPTION_CURRENT_CATALOG

#define ADBC_CONNECTION_OPTION_CURRENT_CATALOG   "adbc.connection.catalog"

The name of the canonical option for the current catalog.

The type is char*.

See also
AdbcConnectionGetOption
AdbcConnectionSetOption
Since
ADBC API revision 1.1.0

◆ ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA

#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*.

See also
AdbcConnectionGetOption
AdbcConnectionSetOption
Since
ADBC API revision 1.1.0

◆ ADBC_CONNECTION_OPTION_ISOLATION_LEVEL

#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*.

See also
AdbcConnectionSetOption

◆ ADBC_CONNECTION_OPTION_READ_ONLY

#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*.

See also
AdbcConnectionSetOption

◆ ADBC_INFO_DRIVER_ADBC_VERSION

#define ADBC_INFO_DRIVER_ADBC_VERSION   103

The driver ADBC API version (type: int64).

The value should be one of the ADBC_VERSION constants.

Since
ADBC API revision 1.1.0
See also
AdbcConnectionGetInfo
ADBC_VERSION_1_0_0
ADBC_VERSION_1_1_0

◆ ADBC_INFO_DRIVER_ARROW_VERSION

#define ADBC_INFO_DRIVER_ARROW_VERSION   102

The driver Arrow library version (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_DRIVER_NAME

#define ADBC_INFO_DRIVER_NAME   100

The driver name (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_DRIVER_VERSION

#define ADBC_INFO_DRIVER_VERSION   101

The driver version (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_ARROW_VERSION

#define ADBC_INFO_VENDOR_ARROW_VERSION   2

The database vendor/product Arrow library version (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_NAME

#define ADBC_INFO_VENDOR_NAME   0

The database vendor/product name (e.g. the server name). (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_SQL

#define ADBC_INFO_VENDOR_SQL   3

Indicates whether SQL queries are supported (type: bool).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_SUBSTRAIT

#define ADBC_INFO_VENDOR_SUBSTRAIT   4

Indicates whether Substrait queries are supported (type: bool).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION

#define ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION   6

The maximum supported Substrait version, or null if Substrait is not supported (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION

#define ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION   5

The minimum supported Substrait version, or null if Substrait is not supported (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_INFO_VENDOR_VERSION

#define ADBC_INFO_VENDOR_VERSION   1

The database vendor/product version (type: utf8).

See also
AdbcConnectionGetInfo

◆ ADBC_OBJECT_DEPTH_ALL

#define ADBC_OBJECT_DEPTH_ALL   0

Return metadata on catalogs, schemas, tables, and columns.

See also
AdbcConnectionGetObjects

◆ ADBC_OBJECT_DEPTH_CATALOGS

#define ADBC_OBJECT_DEPTH_CATALOGS   1

Return metadata on catalogs only.

See also
AdbcConnectionGetObjects

◆ ADBC_OBJECT_DEPTH_COLUMNS

#define ADBC_OBJECT_DEPTH_COLUMNS   ADBC_OBJECT_DEPTH_ALL

Return metadata on catalogs, schemas, tables, and columns.

See also
AdbcConnectionGetObjects

◆ ADBC_OBJECT_DEPTH_DB_SCHEMAS

#define ADBC_OBJECT_DEPTH_DB_SCHEMAS   2

Return metadata on catalogs and schemas.

See also
AdbcConnectionGetObjects

◆ ADBC_OBJECT_DEPTH_TABLES

#define ADBC_OBJECT_DEPTH_TABLES   3

Return metadata on catalogs, schemas, and tables.

See also
AdbcConnectionGetObjects

◆ ADBC_OPTION_ISOLATION_LEVEL_DEFAULT

#define ADBC_OPTION_ISOLATION_LEVEL_DEFAULT    "adbc.connection.transaction.isolation.default"

Use database or driver default isolation level.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE

#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.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED

#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.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED

#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.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ

#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.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE

#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.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT

#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.

See also
AdbcConnectionSetOption

◆ ADBC_OPTION_PASSWORD

#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*.

Since
ADBC API revision 1.1.0

◆ ADBC_OPTION_URI

#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*.

Since
ADBC API revision 1.1.0

◆ ADBC_OPTION_USERNAME

#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*.

Since
ADBC API revision 1.1.0

◆ ADBC_OPTION_VALUE_DISABLED

#define ADBC_OPTION_VALUE_DISABLED   "false"

Canonical option value for disabling an option.

For use as the value in SetOption calls.

◆ ADBC_OPTION_VALUE_ENABLED

#define ADBC_OPTION_VALUE_ENABLED   "true"

Canonical option value for enabling an option.

For use as the value in SetOption calls.

◆ ADBC_STATEMENT_OPTION_INCREMENTAL

#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*.

See also
AdbcStatementSetOption
Since
ADBC API revision 1.1.0

◆ ADBC_STATEMENT_OPTION_MAX_PROGRESS

#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.

See also
AdbcStatementGetOptionDouble
Since
ADBC API revision 1.1.0

◆ ADBC_STATEMENT_OPTION_PROGRESS

#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.

See also
AdbcStatementGetOptionDouble
Since
ADBC API revision 1.1.0

◆ ADBC_VERSION_1_0_0

#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.

◆ ADBC_VERSION_1_1_0

#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.

Since
ADBC API revision 1.1.0