This is an automated email from the ASF dual-hosted git repository. lidavidm pushed a commit to branch spec-1.2.0 in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
commit 2e3047ecf53df00efc462fd5601955facd7fd22f Author: David Li <[email protected]> AuthorDate: Tue Mar 3 18:14:36 2026 +0900 feat(format): add GetInfo codes for driver features (#4012) Closes #3791. --- c/include/arrow-adbc/adbc.h | 131 ++++++++++++++++++++++++++++++++++++ go/adbc/drivermgr/arrow-adbc/adbc.h | 131 ++++++++++++++++++++++++++++++++++++ 2 files changed, 262 insertions(+) diff --git a/c/include/arrow-adbc/adbc.h b/c/include/arrow-adbc/adbc.h index 5982e3157..3733daad1 100644 --- a/c/include/arrow-adbc/adbc.h +++ b/c/include/arrow-adbc/adbc.h @@ -545,6 +545,137 @@ const struct AdbcError* AdbcErrorFromArrayStream(struct ArrowArrayStream* stream /// \see ADBC_VERSION_1_2_0 #define ADBC_INFO_DRIVER_ADBC_VERSION 103 +/// \brief Whether the driver supports bulk ingest (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +#define ADBC_INFO_FEATURE_INGEST 200 + +/// \brief Supported bulk ingest modes (type: string list). +/// +/// Values are the mode constants themselves. +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +#define ADBC_INFO_FEATURE_INGEST_MODES 201 + +/// \brief Whether the driver supports ingesting into a temporary table (type: +/// bool). +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_INGEST_OPTION_TEMPORARY +#define ADBC_INFO_FEATURE_INGEST_TEMPORARY 202 + +/// \brief Whether the driver supports specifying the catalog of the table to +/// ingest into (type: bool). +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_INGEST_OPTION_TARGET_CATALOG +#define ADBC_INFO_FEATURE_INGEST_TARGET_CATALOG 203 + +/// \brief Whether the driver supports specifying the catalog of the table to +/// ingest into (type: bool). +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_INGEST_OPTION_TARGET_CATALOG +#define ADBC_INFO_FEATURE_INGEST_TARGET_SCHEMA 204 + +/// \brief Whether the driver supports getting catalog metadata (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetObjects +#define ADBC_INFO_FEATURE_OBJECTS 220 + +/// \brief Whether the driver supports getting table schemas (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetObjects +#define ADBC_INFO_FEATURE_TABLE_SCHEMA 221 + +/// \brief Whether the driver supports getting table types (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetObjects +#define ADBC_INFO_FEATURE_TABLE_TYPES 222 + +/// \brief Whether the driver supports transactions (true), or if autocommit +/// is always enabled (false) (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_AUTOCOMMIT +#define ADBC_INFO_FEATURE_TRANSACTIONS 240 + +/// \brief Whether the driver supports setting the isolation level of +/// transactions (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_ISOLATION_LEVEL +#define ADBC_INFO_FEATURE_TRANSACTION_ISOLATION_LEVEL 241 + +/// \brief Whether the driver supports getting statistics (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetStatistics +#define ADBC_INFO_FEATURE_STATISTICS 242 + +/// \brief Whether the driver supports getting/setting the current catalog +/// (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_CURRENT_CATALOG +#define ADBC_INFO_FEATURE_CURRENT_CATALOG 243 + +/// \brief Whether the driver supports getting/setting the current schema +/// (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_CURRENT_CATALOG +#define ADBC_INFO_FEATURE_CURRENT_DB_SCHEMA 244 + +/// \brief Whether the driver supports binding data (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementBind +/// \see AdbcStatementBindStream +#define ADBC_INFO_FEATURE_BIND 245 + +/// \brief Whether the driver supports partitioned execution (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionReadPartition +/// \see AdbcStatementExecutePartitions +#define ADBC_INFO_FEATURE_EXECUTE_PARTITIONS 246 + +/// \brief Whether the driver supports multiple result sets (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementExecuteMulti +#define ADBC_INFO_FEATURE_EXECUTE_MULTI 247 + +/// \brief Whether the driver supports getting result set schemas (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementExecuteSchema +/// \see AdbcStatementExecuteSchemaMulti +#define ADBC_INFO_FEATURE_EXECUTE_SCHEMA 248 + +/// \brief Whether the driver supports getting parameter schemas (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementGetParameterSchema +#define ADBC_INFO_FEATURE_PARAMETER_SCHEMA 249 + +/// \brief Whether the driver supports getting error metadata (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcErrorGetDetailCount +/// \see AdbcErrorGetDetail +/// \see AdbcErrorFromArrayStream +/// \see ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA +#define ADBC_INFO_FEATURE_ERROR_METADATA 250 + /// \brief Return metadata on catalogs, schemas, tables, and columns. /// /// \see AdbcConnectionGetObjects diff --git a/go/adbc/drivermgr/arrow-adbc/adbc.h b/go/adbc/drivermgr/arrow-adbc/adbc.h index 5982e3157..3733daad1 100644 --- a/go/adbc/drivermgr/arrow-adbc/adbc.h +++ b/go/adbc/drivermgr/arrow-adbc/adbc.h @@ -545,6 +545,137 @@ const struct AdbcError* AdbcErrorFromArrayStream(struct ArrowArrayStream* stream /// \see ADBC_VERSION_1_2_0 #define ADBC_INFO_DRIVER_ADBC_VERSION 103 +/// \brief Whether the driver supports bulk ingest (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +#define ADBC_INFO_FEATURE_INGEST 200 + +/// \brief Supported bulk ingest modes (type: string list). +/// +/// Values are the mode constants themselves. +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +#define ADBC_INFO_FEATURE_INGEST_MODES 201 + +/// \brief Whether the driver supports ingesting into a temporary table (type: +/// bool). +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_INGEST_OPTION_TEMPORARY +#define ADBC_INFO_FEATURE_INGEST_TEMPORARY 202 + +/// \brief Whether the driver supports specifying the catalog of the table to +/// ingest into (type: bool). +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_INGEST_OPTION_TARGET_CATALOG +#define ADBC_INFO_FEATURE_INGEST_TARGET_CATALOG 203 + +/// \brief Whether the driver supports specifying the catalog of the table to +/// ingest into (type: bool). +/// +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_INGEST_OPTION_TARGET_CATALOG +#define ADBC_INFO_FEATURE_INGEST_TARGET_SCHEMA 204 + +/// \brief Whether the driver supports getting catalog metadata (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetObjects +#define ADBC_INFO_FEATURE_OBJECTS 220 + +/// \brief Whether the driver supports getting table schemas (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetObjects +#define ADBC_INFO_FEATURE_TABLE_SCHEMA 221 + +/// \brief Whether the driver supports getting table types (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetObjects +#define ADBC_INFO_FEATURE_TABLE_TYPES 222 + +/// \brief Whether the driver supports transactions (true), or if autocommit +/// is always enabled (false) (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_AUTOCOMMIT +#define ADBC_INFO_FEATURE_TRANSACTIONS 240 + +/// \brief Whether the driver supports setting the isolation level of +/// transactions (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_ISOLATION_LEVEL +#define ADBC_INFO_FEATURE_TRANSACTION_ISOLATION_LEVEL 241 + +/// \brief Whether the driver supports getting statistics (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionGetStatistics +#define ADBC_INFO_FEATURE_STATISTICS 242 + +/// \brief Whether the driver supports getting/setting the current catalog +/// (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_CURRENT_CATALOG +#define ADBC_INFO_FEATURE_CURRENT_CATALOG 243 + +/// \brief Whether the driver supports getting/setting the current schema +/// (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see ADBC_CONNECTION_OPTION_CURRENT_CATALOG +#define ADBC_INFO_FEATURE_CURRENT_DB_SCHEMA 244 + +/// \brief Whether the driver supports binding data (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementBind +/// \see AdbcStatementBindStream +#define ADBC_INFO_FEATURE_BIND 245 + +/// \brief Whether the driver supports partitioned execution (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcConnectionReadPartition +/// \see AdbcStatementExecutePartitions +#define ADBC_INFO_FEATURE_EXECUTE_PARTITIONS 246 + +/// \brief Whether the driver supports multiple result sets (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementExecuteMulti +#define ADBC_INFO_FEATURE_EXECUTE_MULTI 247 + +/// \brief Whether the driver supports getting result set schemas (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementExecuteSchema +/// \see AdbcStatementExecuteSchemaMulti +#define ADBC_INFO_FEATURE_EXECUTE_SCHEMA 248 + +/// \brief Whether the driver supports getting parameter schemas (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcStatementGetParameterSchema +#define ADBC_INFO_FEATURE_PARAMETER_SCHEMA 249 + +/// \brief Whether the driver supports getting error metadata (type: bool). +/// \since ADBC API revision 1.2.0 +/// \see AdbcConnectionGetInfo +/// \see AdbcErrorGetDetailCount +/// \see AdbcErrorGetDetail +/// \see AdbcErrorFromArrayStream +/// \see ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA +#define ADBC_INFO_FEATURE_ERROR_METADATA 250 + /// \brief Return metadata on catalogs, schemas, tables, and columns. /// /// \see AdbcConnectionGetObjects
