ADBC
Arrow Database Connectivity
Loading...
Searching...
No Matches
Bulk Data Ingestion

Macros

#define ADBC_INGEST_OPTION_TARGET_TABLE   "adbc.ingest.target_table"
 The name of the target table for a bulk insert.
 
#define ADBC_INGEST_OPTION_MODE   "adbc.ingest.mode"
 Whether to create (the default) or append.
 
#define ADBC_INGEST_OPTION_MODE_CREATE   "adbc.ingest.mode.create"
 Create the table and insert data; error if the table exists.
 
#define ADBC_INGEST_OPTION_MODE_APPEND   "adbc.ingest.mode.append"
 Do not create the table, and insert data; error if the table does not exist (ADBC_STATUS_NOT_FOUND) or does not match the schema of the data to append (ADBC_STATUS_ALREADY_EXISTS).
 
#define ADBC_INGEST_OPTION_MODE_REPLACE   "adbc.ingest.mode.replace"
 Create the table and insert data; drop the original table if it already exists.
 
#define ADBC_INGEST_OPTION_MODE_CREATE_APPEND   "adbc.ingest.mode.create_append"
 Insert data; create the table if it does not exist, or error if the table exists, but the schema does not match the schema of the data to append (ADBC_STATUS_ALREADY_EXISTS).
 
#define ADBC_INGEST_OPTION_TARGET_CATALOG   "adbc.ingest.target_catalog"
 The catalog of the table for bulk insert.
 
#define ADBC_INGEST_OPTION_TARGET_DB_SCHEMA   "adbc.ingest.target_db_schema"
 The schema of the table for bulk insert.
 
#define ADBC_INGEST_OPTION_TEMPORARY   "adbc.ingest.temporary"
 Use a temporary table for ingestion.
 

Detailed Description

While it is possible to insert data via prepared statements, it can be more efficient to explicitly perform a bulk insert. For compatible drivers, this can be accomplished by setting up and executing a statement. Instead of setting a SQL query or Substrait plan, bind the source data via AdbcStatementBind, and set the name of the table to be created via AdbcStatementSetOption and the options below. Then, call AdbcStatementExecute with a NULL for the out parameter (to indicate you do not expect a result set).

Macro Definition Documentation

◆ ADBC_INGEST_OPTION_MODE

#define ADBC_INGEST_OPTION_MODE   "adbc.ingest.mode"

Whether to create (the default) or append.

The type is char*.

◆ ADBC_INGEST_OPTION_MODE_APPEND

#define ADBC_INGEST_OPTION_MODE_APPEND   "adbc.ingest.mode.append"

Do not create the table, and insert data; error if the table does not exist (ADBC_STATUS_NOT_FOUND) or does not match the schema of the data to append (ADBC_STATUS_ALREADY_EXISTS).

◆ ADBC_INGEST_OPTION_MODE_CREATE

#define ADBC_INGEST_OPTION_MODE_CREATE   "adbc.ingest.mode.create"

Create the table and insert data; error if the table exists.

◆ ADBC_INGEST_OPTION_MODE_CREATE_APPEND

#define ADBC_INGEST_OPTION_MODE_CREATE_APPEND   "adbc.ingest.mode.create_append"

Insert data; create the table if it does not exist, or error if the table exists, but the schema does not match the schema of the data to append (ADBC_STATUS_ALREADY_EXISTS).

Since
ADBC API revision 1.1.0

◆ ADBC_INGEST_OPTION_MODE_REPLACE

#define ADBC_INGEST_OPTION_MODE_REPLACE   "adbc.ingest.mode.replace"

Create the table and insert data; drop the original table if it already exists.

Since
ADBC API revision 1.1.0

◆ ADBC_INGEST_OPTION_TARGET_CATALOG

#define ADBC_INGEST_OPTION_TARGET_CATALOG   "adbc.ingest.target_catalog"

The catalog of the table for bulk insert.

The type is char*.

◆ ADBC_INGEST_OPTION_TARGET_DB_SCHEMA

#define ADBC_INGEST_OPTION_TARGET_DB_SCHEMA   "adbc.ingest.target_db_schema"

The schema of the table for bulk insert.

The type is char*.

◆ ADBC_INGEST_OPTION_TARGET_TABLE

#define ADBC_INGEST_OPTION_TARGET_TABLE   "adbc.ingest.target_table"

The name of the target table for a bulk insert.

The driver should attempt to create the table if it does not exist. If the table exists but has a different schema, ADBC_STATUS_ALREADY_EXISTS should be raised. Else, data should be appended to the target table.

The type is char*.

◆ ADBC_INGEST_OPTION_TEMPORARY

#define ADBC_INGEST_OPTION_TEMPORARY   "adbc.ingest.temporary"

Use a temporary table for ingestion.

The value should be ADBC_OPTION_VALUE_ENABLED or ADBC_OPTION_VALUE_DISABLED (the default).

This is not supported with ADBC_INGEST_OPTION_TARGET_CATALOG and ADBC_INGEST_OPTION_TARGET_DB_SCHEMA.

The type is char*.