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
The following commit(s) were added to refs/heads/spec-1.2.0 by this push:
new d593a6872 feat(format): add GetInfo codes for driver features (#4012)
d593a6872 is described below
commit d593a6872c6c1176410f43de1a8a52a0c4eb0b4c
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