Arrow Flight SQL#

Note

Flight SQL is currently experimental and APIs are subject to change.

Common Types#

group flight-sql-common-types

Typedefs

using SqlInfoResult = std::variant<std::string, bool, int64_t, int32_t, std::vector<std::string>, std::unordered_map<int32_t, std::vector<int32_t>>>#

Variant supporting all possible types on SQL info.

using SqlInfoResultMap = std::unordered_map<int32_t, SqlInfoResult>#

Map SQL info identifier to its value.

Enums

enum class CancelResult : int8_t#

The result of cancelling a query.

Values:

enumerator kUnspecified#
enumerator kCancelled#
enumerator kCancelling#
enumerator kNotCancellable#

Functions

std::ostream &operator<<(std::ostream &os, CancelResult result)#
struct SqlInfoOptions#
#include <arrow/flight/sql/types.h>

Options to be set in the SqlInfo.

Public Types

enum SqlInfo#

Predefined info values for GetSqlInfo.

Values:

enumerator FLIGHT_SQL_SERVER_NAME#

Retrieves a UTF-8 string with the name of the Flight SQL Server.

enumerator FLIGHT_SQL_SERVER_VERSION#

Retrieves a UTF-8 string with the native version of the Flight SQL Server.

enumerator FLIGHT_SQL_SERVER_ARROW_VERSION#

Retrieves a UTF-8 string with the Arrow format version of the Flight SQL Server.

enumerator FLIGHT_SQL_SERVER_READ_ONLY#

Retrieves a boolean value indicating whether the Flight SQL Server is read only.

Returns:

  • false: if read-write

  • true: if read only

enumerator FLIGHT_SQL_SERVER_SQL#

Retrieves a boolean value indicating whether the Flight SQL Server supports executing SQL queries.

Note that the absence of this info (as opposed to a false value) does not necessarily mean that SQL is not supported, as this property was not originally defined.

enumerator FLIGHT_SQL_SERVER_SUBSTRAIT#

Retrieves a boolean value indicating whether the Flight SQL Server supports executing Substrait plans.

enumerator FLIGHT_SQL_SERVER_SUBSTRAIT_MIN_VERSION#

Retrieves a string value indicating the minimum supported Substrait version, or null if Substrait is not supported.

enumerator FLIGHT_SQL_SERVER_SUBSTRAIT_MAX_VERSION#

Retrieves a string value indicating the maximum supported Substrait version, or null if Substrait is not supported.

enumerator FLIGHT_SQL_SERVER_TRANSACTION#

Retrieves an int32 indicating whether the Flight SQL Server supports the BeginTransaction, EndTransaction, BeginSavepoint, and EndSavepoint actions.

Even if this is not supported, the database may still support explicit “BEGIN TRANSACTION”/”COMMIT” SQL statements (see SQL_TRANSACTIONS_SUPPORTED); this property is only about whether the server implements the Flight SQL API endpoints.

The possible values are listed in SqlSupportedTransaction.

enumerator FLIGHT_SQL_SERVER_CANCEL#

Retrieves a boolean value indicating whether the Flight SQL Server supports explicit query cancellation (the CancelQuery action).

enumerator FLIGHT_SQL_SERVER_STATEMENT_TIMEOUT#

Retrieves an int32 value indicating the timeout (in milliseconds) for prepared statement handles.

If 0, there is no timeout.

enumerator FLIGHT_SQL_SERVER_TRANSACTION_TIMEOUT#

Retrieves an int32 value indicating the timeout (in milliseconds) for transactions, since transactions are not tied to a connection.

If 0, there is no timeout.

enumerator SQL_DDL_CATALOG#

Retrieves a boolean value indicating whether the Flight SQL Server supports CREATE and DROP of catalogs.

Returns:

  • false: if it doesn’t support CREATE and DROP of catalogs.

  • true: if it supports CREATE and DROP of catalogs.

enumerator SQL_DDL_SCHEMA#

Retrieves a boolean value indicating whether the Flight SQL Server supports CREATE and DROP of schemas.

Returns:

  • false: if it doesn’t support CREATE and DROP of schemas.

  • true: if it supports CREATE and DROP of schemas.

enumerator SQL_DDL_TABLE#

Indicates whether the Flight SQL Server supports CREATE and DROP of tables.

Returns:

  • false: if it doesn’t support CREATE and DROP of tables.

  • true: if it supports CREATE and DROP of tables.

enumerator SQL_IDENTIFIER_CASE#

Retrieves a int32 value representing the enum ordinal for the case sensitivity of catalog, table and schema names.

The possible values are listed in arrow.flight.protocol.sql.SqlSupportedCaseSensitivity.

enumerator SQL_IDENTIFIER_QUOTE_CHAR#

Retrieves a UTF-8 string with the supported character(s) used to surround a delimited identifier.

enumerator SQL_QUOTED_IDENTIFIER_CASE#

Retrieves a int32 value representing the enum ordinal for the case sensitivity of quoted identifiers.

The possible values are listed in arrow.flight.protocol.sql.SqlSupportedCaseSensitivity.

enumerator SQL_ALL_TABLES_ARE_SELECTABLE#

Retrieves a boolean value indicating whether all tables are selectable.

Returns:

  • false: if not all tables are selectable or if none are;

  • true: if all tables are selectable.

enumerator SQL_NULL_ORDERING#

Retrieves the null ordering used by the database as a int32 ordinal value.

Returns a int32 ordinal for the null ordering being used, as described in arrow.flight.protocol.sql.SqlNullOrdering.

enumerator SQL_KEYWORDS#

Retrieves a UTF-8 string list with values of the supported keywords.

enumerator SQL_NUMERIC_FUNCTIONS#

Retrieves a UTF-8 string list with values of the supported numeric functions.

enumerator SQL_STRING_FUNCTIONS#

Retrieves a UTF-8 string list with values of the supported string functions.

enumerator SQL_SYSTEM_FUNCTIONS#

Retrieves a UTF-8 string list with values of the supported system functions.

enumerator SQL_DATETIME_FUNCTIONS#

Retrieves a UTF-8 string list with values of the supported datetime functions.

enumerator SQL_SEARCH_STRING_ESCAPE#

Retrieves the UTF-8 string that can be used to escape wildcard characters.

This is the string that can be used to escape ‘_’ or ‘’ in the catalog search parameters that are a pattern (and therefore use one of the wildcard characters). The ‘_’ character represents any single character; the ‘’ character represents any sequence of zero or more characters.

enumerator SQL_EXTRA_NAME_CHARACTERS#

Retrieves a UTF-8 string with all the “extra” characters that can be used in unquoted identifier names (those beyond a-z, A-Z, 0-9 and _).

enumerator SQL_SUPPORTS_COLUMN_ALIASING#

Retrieves a boolean value indicating whether column aliasing is supported.

If so, the SQL AS clause can be used to provide names for computed columns or to provide alias names for columns as required.

Returns:

  • false: if column aliasing is unsupported;

  • true: if column aliasing is supported.

enumerator SQL_NULL_PLUS_NULL_IS_NULL#

Retrieves a boolean value indicating whether concatenations between null and non-null values being null are supported.

  • Returns:

  • false: if concatenations between null and non-null values being null are unsupported;

  • true: if concatenations between null and non-null values being null are supported.

enumerator SQL_SUPPORTS_CONVERT#

Retrieves a map where the key is the type to convert from and the value is a list with the types to convert to, indicating the supported conversions.

Each key and each item on the list value is a value to a predefined type on SqlSupportsConvert enum. The returned map will be: map<int32, list<int32>>

enumerator SQL_SUPPORTS_TABLE_CORRELATION_NAMES#

Retrieves a boolean value indicating whether, when table correlation names are supported, they are restricted to being different from the names of the tables.

Returns:

  • false: if table correlation names are unsupported;

  • true: if table correlation names are supported.

enumerator SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES#

Retrieves a boolean value indicating whether, when table correlation names are supported, they are restricted to being different from the names of the tables.

Returns:

  • false: if different table correlation names are unsupported;

  • true: if different table correlation names are supported

enumerator SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY#

Retrieves a boolean value indicating whether expressions in ORDER BY lists are supported.

Returns:

  • false: if expressions in ORDER BY are unsupported;

  • true: if expressions in ORDER BY are supported;

enumerator SQL_SUPPORTS_ORDER_BY_UNRELATED#

Retrieves a boolean value indicating whether using a column that is not in the SELECT statement in a GROUP BY clause is supported.

Returns:

  • false: if using a column that is not in the SELECT statement in a GROUP BY clause is unsupported;

  • true: if using a column that is not in the SELECT statement in a GROUP BY clause is supported.

enumerator SQL_SUPPORTED_GROUP_BY#

Retrieves the supported GROUP BY commands as an int32 bitmask.

The returned bitmask should be parsed in order to retrieve the supported commands.

  • return 0 (0b0) => [] (GROUP BY is unsupported);

  • return 1 (0b1) => [SQL_GROUP_BY_UNRELATED];

  • return 2 (0b10) => [SQL_GROUP_BY_BEYOND_SELECT];

  • return 3 (0b11) => [SQL_GROUP_BY_UNRELATED, SQL_GROUP_BY_BEYOND_SELECT].

Valid GROUP BY types are described under arrow.flight.protocol.sql.SqlSupportedGroupBy.

enumerator SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE#

Retrieves a boolean value indicating whether specifying a LIKE escape clause is supported.

Returns:

  • false: if specifying a LIKE escape clause is unsupported;

  • true: if specifying a LIKE escape clause is supported.

enumerator SQL_SUPPORTS_NON_NULLABLE_COLUMNS#

Retrieves a boolean value indicating whether columns may be defined as non-nullable.

Returns:

  • false: if columns cannot be defined as non-nullable;

  • true: if columns may be defined as non-nullable.

enumerator SQL_SUPPORTED_GRAMMAR#

Retrieves the supported SQL grammar level as per the ODBC specification.

Returns an int32 bitmask value representing the supported SQL grammar level. The returned bitmask should be parsed in order to retrieve the supported grammar levels.

For instance:

  • return 0 (0b0) => [] (SQL grammar is unsupported);

  • return 1 (0b1) => [SQL_MINIMUM_GRAMMAR];

  • return 2 (0b10) => [SQL_CORE_GRAMMAR];

  • return 3 (0b11) => [SQL_MINIMUM_GRAMMAR, SQL_CORE_GRAMMAR];

  • return 4 (0b100) => [SQL_EXTENDED_GRAMMAR];

  • return 5 (0b101) => [SQL_MINIMUM_GRAMMAR, SQL_EXTENDED_GRAMMAR];

  • return 6 (0b110) => [SQL_CORE_GRAMMAR, SQL_EXTENDED_GRAMMAR];

  • return 7 (0b111) => [SQL_MINIMUM_GRAMMAR, SQL_CORE_GRAMMAR, SQL_EXTENDED_GRAMMAR].

Valid SQL grammar levels are described under arrow.flight.protocol.sql.SupportedSqlGrammar.

enumerator SQL_ANSI92_SUPPORTED_LEVEL#

Retrieves the supported ANSI92 SQL grammar level as per the ODBC specification.

Returns an int32 bitmask value representing the supported ANSI92 SQL grammar level. The returned bitmask should be parsed in order to retrieve the supported grammar levels.

For instance:

  • return 0 (0b0) => [] (ANSI92 SQL grammar is unsupported);

  • return 1 (0b1) => [ANSI92_ENTRY_SQL];

  • return 2 (0b10) => [ANSI92_INTERMEDIATE_SQL];

  • return 3 (0b11) => [ANSI92_ENTRY_SQL, ANSI92_INTERMEDIATE_SQL];

  • return 4 (0b100) => [ANSI92_FULL_SQL];

  • return 5 (0b101) => [ANSI92_ENTRY_SQL, ANSI92_FULL_SQL];

  • return 6 (0b110) => [ANSI92_INTERMEDIATE_SQL, ANSI92_FULL_SQL];

  • return 7 (0b111) => [ANSI92_ENTRY_SQL, ANSI92_INTERMEDIATE_SQL, ANSI92_FULL_SQL].

Valid ANSI92 SQL grammar levels are described under arrow.flight.protocol.sql.SupportedAnsi92SqlGrammarLevel.

enumerator SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY#

Retrieves a boolean value indicating whether the SQL Integrity Enhancement Facility is supported.

Returns:

  • false: if the SQL Integrity Enhancement Facility is supported;

  • true: if the SQL Integrity Enhancement Facility is supported.

enumerator SQL_OUTER_JOINS_SUPPORT_LEVEL#

Retrieves the support level for SQL OUTER JOINs as an int32 ordinal, as described in arrow.flight.protocol.sql.SqlOuterJoinsSupportLevel.

enumerator SQL_SCHEMA_TERM#

Retrieves a UTF-8 string with the preferred term for “schema”.

enumerator SQL_PROCEDURE_TERM#

Retrieves a UTF-8 string with the preferred term for “procedure”.

enumerator SQL_CATALOG_TERM#

Retrieves a UTF-8 string with the preferred term for “catalog”.

enumerator SQL_CATALOG_AT_START#

Retrieves a boolean value indicating whether a catalog appears at the start of a fully qualified table name.

  • false: if a catalog does not appear at the start of a fully qualified table name;

  • true: if a catalog appears at the start of a fully qualified table name.

enumerator SQL_SCHEMAS_SUPPORTED_ACTIONS#

Retrieves the supported actions for a SQL database schema as an int32 bitmask value.

Returns an int32 bitmask value representing the supported actions for a SQL schema. The returned bitmask should be parsed in order to retrieve the supported actions for a SQL schema.

For instance:

  • return 0 (0b0) => [] (no supported actions for SQL schema);

  • return 1 (0b1) => [SQL_ELEMENT_IN_PROCEDURE_CALLS];

  • return 2 (0b10) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS];

  • return 3 (0b11) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS];

  • return 4 (0b100) => [SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS];

  • return 5 (0b101) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS];

  • return 6 (0b110) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS];

  • return 7 (0b111) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS].

Valid actions for a SQL schema described under arrow.flight.protocol.sql.SqlSupportedElementActions.

enumerator SQL_CATALOGS_SUPPORTED_ACTIONS#

Retrieves the supported actions for a SQL catalog as an int32 bitmask value.

Returns an int32 bitmask value representing the supported actions for a SQL catalog. The returned bitmask should be parsed in order to retrieve the supported actions for a SQL catalog.

For instance:

  • return 0 (0b0) => [] (no supported actions for SQL catalog);

  • return 1 (0b1) => [SQL_ELEMENT_IN_PROCEDURE_CALLS];

  • return 2 (0b10) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS];

  • return 3 (0b11) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS];

  • return 4 (0b100) => [SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS];

  • return 5 (0b101) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS];

  • return 6 (0b110) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS];

  • return 7 (0b111) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS].

Valid actions for a SQL catalog are described under arrow.flight.protocol.sql.SqlSupportedElementActions.

enumerator SQL_SUPPORTED_POSITIONED_COMMANDS#

Retrieves the supported SQL positioned commands as an int32 bitmask value.

Returns an int32 bitmask value representing the supported SQL positioned commands. The returned bitmask should be parsed in order to retrieve the supported SQL positioned commands.

For instance:

  • return 0 (0b0) => [] (no supported SQL positioned commands);

  • return 1 (0b1) => [SQL_POSITIONED_DELETE];

  • return 2 (0b10) => [SQL_POSITIONED_UPDATE];

  • return 3 (0b11) => [SQL_POSITIONED_DELETE, SQL_POSITIONED_UPDATE].

Valid SQL positioned commands are described under arrow.flight.protocol.sql.SqlSupportedPositionedCommands.

enumerator SQL_SELECT_FOR_UPDATE_SUPPORTED#

Retrieves a boolean value indicating whether SELECT FOR UPDATE statements are supported.

Returns:

  • false: if SELECT FOR UPDATE statements are unsupported;

  • true: if SELECT FOR UPDATE statements are supported.

enumerator SQL_STORED_PROCEDURES_SUPPORTED#

Retrieves a boolean value indicating whether stored procedure calls that use the stored procedure escape syntax are supported.

Returns:

  • false: if stored procedure calls that use the stored procedure escape syntax are unsupported;

  • true: if stored procedure calls that use the stored procedure escape syntax are supported.

enumerator SQL_SUPPORTED_SUBQUERIES#

Retrieves the types of supported SQL subqueries as an int32 bitmask value.

Returns an int32 bitmask value representing the supported SQL subqueries. The returned bitmask should be parsed in order to retrieve the supported SQL subqueries.

For instance:

  • return 0 (0b0) => [] (no supported SQL subqueries);

  • return 1 (0b1) => [SQL_SUBQUERIES_IN_COMPARISONS];

  • return 2 (0b10) => [SQL_SUBQUERIES_IN_EXISTS];

  • return 3 (0b11) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS];

  • return 4 (0b100) => [SQL_SUBQUERIES_IN_INS];

  • return 5 (0b101) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_INS];

  • return 6 (0b110) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS];

  • return 7 (0b111) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS];

  • return 8 (0b1000) => [SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 9 (0b1001) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 10 (0b1010) => [SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 11 (0b1011) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 12 (0b1100) => [SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 13 (0b1101) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 14 (0b1110) => [SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

  • return 15 (0b1111) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS];

Valid SQL subqueries are described under arrow.flight.protocol.sql.SqlSupportedSubqueries.

enumerator SQL_CORRELATED_SUBQUERIES_SUPPORTED#

Retrieves a boolean value indicating whether correlated subqueries are supported.

Returns:

  • false: if correlated subqueries are unsupported;

  • true: if correlated subqueries are supported.

enumerator SQL_SUPPORTED_UNIONS#

Retrieves the supported SQL UNION features as an int32 bitmask value.

Returns an int32 bitmask value representing the supported SQL UNIONs. The returned bitmask should be parsed in order to retrieve the supported SQL UNIONs.

For instance:

  • return 0 (0b0) => [] (no supported SQL positioned commands);

  • return 1 (0b1) => [SQL_UNION];

  • return 2 (0b10) => [SQL_UNION_ALL];

  • return 3 (0b11) => [SQL_UNION, SQL_UNION_ALL].

Valid SQL union operators are described under arrow.flight.protocol.sql.SqlSupportedUnions.

enumerator SQL_MAX_BINARY_LITERAL_LENGTH#

Retrieves a int64 value representing the maximum number of hex characters allowed in an inline binary literal.

enumerator SQL_MAX_CHAR_LITERAL_LENGTH#

Retrieves a int64 value representing the maximum number of characters allowed for a character literal.

enumerator SQL_MAX_COLUMN_NAME_LENGTH#

Retrieves a int64 value representing the maximum number of characters allowed for a column name.

enumerator SQL_MAX_COLUMNS_IN_GROUP_BY#

Retrieves a int64 value representing the maximum number of columns allowed in a GROUP BY clause.

enumerator SQL_MAX_COLUMNS_IN_INDEX#

Retrieves a int64 value representing the maximum number of columns allowed in an index.

enumerator SQL_MAX_COLUMNS_IN_ORDER_BY#

Retrieves a int64 value representing the maximum number of columns allowed in an ORDER BY clause.

enumerator SQL_MAX_COLUMNS_IN_SELECT#

Retrieves a int64 value representing the maximum number of columns allowed in a SELECT list.

enumerator SQL_MAX_COLUMNS_IN_TABLE#

Retrieves a int64 value representing the maximum number of columns allowed in a table.

enumerator SQL_MAX_CONNECTIONS#

Retrieves a int64 value representing the maximum number of concurrent connections possible.

enumerator SQL_MAX_CURSOR_NAME_LENGTH#

Retrieves a int64 value the maximum number of characters allowed in a cursor name.

enumerator SQL_MAX_INDEX_LENGTH#

Retrieves a int64 value representing the maximum number of bytes allowed for an index, including all of the parts of the index.

enumerator SQL_SCHEMA_NAME_LENGTH#

Retrieves a int64 value representing the maximum number of characters allowed in a procedure name.

enumerator SQL_MAX_PROCEDURE_NAME_LENGTH#

Retrieves a int64 value representing the maximum number of bytes allowed in a single row.

enumerator SQL_MAX_CATALOG_NAME_LENGTH#

Retrieves a int64 value representing the maximum number of characters allowed in a catalog name.

enumerator SQL_MAX_ROW_SIZE#

Retrieves a int64 value representing the maximum number of bytes allowed in a single row.

enumerator SQL_MAX_ROW_SIZE_INCLUDES_BLOBS#

Retrieves a boolean indicating whether the return value for the JDBC method getMaxRowSize includes the SQL data types LONGVARCHAR and LONGVARBINARY.

Returns:

  • false: if return value for the JDBC method getMaxRowSize does not include the SQL data types LONGVARCHAR and LONGVARBINARY;

  • true: if return value for the JDBC method getMaxRowSize includes the SQL data types LONGVARCHAR and LONGVARBINARY.

enumerator SQL_MAX_STATEMENT_LENGTH#

Retrieves a int32 value representing the maximum number of characters allowed for an SQL statement; a result of 0 (zero) means that there is no limit or the limit is not known.

enumerator SQL_MAX_STATEMENTS#

Retrieves a int32 value representing the maximum number of active statements that can be open at the same time.

enumerator SQL_MAX_TABLE_NAME_LENGTH#

Retrieves a int32 value representing the maximum number of characters allowed in a table name.

enumerator SQL_MAX_TABLES_IN_SELECT#

Retrieves a int32 value representing the maximum number of tables allowed in a SELECT statement.

enumerator SQL_MAX_USERNAME_LENGTH#

Retrieves a int32 value representing the maximum number of characters allowed in a user name.

enumerator SQL_DEFAULT_TRANSACTION_ISOLATION#

Retrieves this database’s default transaction isolation level as described in arrow.flight.protocol.sql.SqlTransactionIsolationLevel.

Returns a int32 ordinal for the SQL transaction isolation level.

enumerator SQL_TRANSACTIONS_SUPPORTED#

Retrieves a boolean value indicating whether transactions are supported.

If not, invoking the method commit is a noop, and the isolation level is arrow.flight.protocol.sql.SqlTransactionIsolationLevel.TRANSACTION_NONE.

Returns:

  • false: if transactions are unsupported;

  • true: if transactions are supported.

enumerator SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS#

Retrieves the supported transactions isolation levels, if transactions are supported.

Returns an int32 bitmask value representing the supported transactions isolation levels. The returned bitmask should be parsed in order to retrieve the supported transactions isolation levels.

For instance:

  • return 0 (0b0) => [] (no supported SQL transactions isolation levels);

  • return 1 (0b1) => [SQL_TRANSACTION_NONE];

  • return 2 (0b10) => [SQL_TRANSACTION_READ_UNCOMMITTED];

  • return 3 (0b11) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED];

  • return 4 (0b100) => [SQL_TRANSACTION_REPEATABLE_READ];

  • return 5 (0b101) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ];

  • return 6 (0b110) => [SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ];

  • return 7 (0b111) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ];

  • return 8 (0b1000) => [SQL_TRANSACTION_REPEATABLE_READ];

  • return 9 (0b1001) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ];

  • return 10 (0b1010) => [SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ];

  • return 11 (0b1011) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ];

  • return 12 (0b1100) => [SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ];

  • return 13 (0b1101) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ];

  • return 14 (0b1110) => [SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ];

  • return 15 (0b1111) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ];

  • return 16 (0b10000) => [SQL_TRANSACTION_SERIALIZABLE];

Valid SQL positioned commands are described under arrow.flight.protocol.sql.SqlTransactionIsolationLevel.

enumerator SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT#

Retrieves a boolean value indicating whether a data definition statement within a transaction forces the transaction to commit.

Returns:

  • false: if a data definition statement within a transaction does not force the transaction to commit;

  • true: if a data definition statement within a transaction forces the transaction to commit.

enumerator SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED#

Retrieves a boolean value indicating whether a data definition statement within a transaction is ignored.

Returns:

  • false: if a data definition statement within a transaction is taken into account;

  • true: a data definition statement within a transaction is ignored.

enumerator SQL_SUPPORTED_RESULT_SET_TYPES#

Retrieves an int32 bitmask value representing the supported result set types.

The returned bitmask should be parsed in order to retrieve the supported result set types.

For instance:

  • return 0 (0b0) => [] (no supported result set types);

  • return 1 (0b1) => [SQL_RESULT_SET_TYPE_UNSPECIFIED];

  • return 2 (0b10) => [SQL_RESULT_SET_TYPE_FORWARD_ONLY];

  • return 3 (0b11) => [SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_FORWARD_ONLY];

  • return 4 (0b100) => [SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE];

  • return 5 (0b101) => [SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE];

  • return 6 (0b110) => [SQL_RESULT_SET_TYPE_FORWARD_ONLY, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE];

  • return 7 (0b111) => [SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_FORWARD_ONLY, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE];

  • return 8 (0b1000) => [SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE];

Valid result set types are described under arrow.flight.protocol.sql.SqlSupportedResultSetType.

enumerator SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED#

Returns an int32 bitmask value representing the concurrency types supported by the server for SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_UNSPECIFIED.

For instance:

  • return 0 (0b0) => [] (no supported concurrency types for this result set type)

  • return 1 (0b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED]

  • return 2 (0b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 3 (0b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 4 (0b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 5 (0b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 6 (0b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 7 (0b111) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

Valid result set types are described under arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency.

enumerator SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY#

Returns an int32 bitmask value representing the concurrency types supported by the server for SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_FORWARD_ONLY.

For instance:

  • return 0 (0b0) => [] (no supported concurrency types for this result set type)

  • return 1 (0b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED]

  • return 2 (0b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 3 (0b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 4 (0b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 5 (0b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 6 (0b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 7 (0b111) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

Valid result set types are described under arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency.

enumerator SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE#

Returns an int32 bitmask value representing the concurrency types supported by the server for SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE.

For instance:

  • return 0 (0b0) => [] (no supported concurrency types for this result set type)

  • return 1 (0b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED]

  • return 2 (0b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 3 (0b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 4 (0b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 5 (0b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 6 (0b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 7 (0b111) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

Valid result set types are described under arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency.

enumerator SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE#

Returns an int32 bitmask value representing concurrency types supported by the server for SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE.

For instance:

  • return 0 (0b0) => [] (no supported concurrency types for this result set type)

  • return 1 (0b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED]

  • return 2 (0b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 3 (0b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY]

  • return 4 (0b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 5 (0b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 6 (0b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

  • return 7 (0b111) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE]

Valid result set types are described under arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency.

enumerator SQL_BATCH_UPDATES_SUPPORTED#

Retrieves a boolean value indicating whether this database supports batch updates.

- false: if this database does not support batch updates;
- true: if this database supports batch updates.
enumerator SQL_SAVEPOINTS_SUPPORTED#

Retrieves a boolean value indicating whether this database supports savepoints.

Returns:
- false: if this database does not support savepoints;
- true: if this database supports savepoints.
enumerator SQL_NAMED_PARAMETERS_SUPPORTED#

Retrieves a boolean value indicating whether named parameters are supported in callable statements.

Returns:

  • false: if named parameters in callable statements are unsupported;

  • true: if named parameters in callable statements are supported.

enumerator SQL_LOCATORS_UPDATE_COPY#

Retrieves a boolean value indicating whether updates made to a LOB are made on a copy or directly to the LOB.

Returns:

  • false: if updates made to a LOB are made directly to the LOB;

  • true: if updates made to a LOB are made on a copy.

enumerator SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED#

Retrieves a boolean value indicating whether invoking user-defined or vendor functions using the stored procedure escape syntax is supported.

Returns:

  • false: if invoking user-defined or vendor functions using the stored procedure escape syntax is unsupported;

  • true: if invoking user-defined or vendor functions using the stored procedure escape syntax is supported.

enum SqlSupportedTransaction#

The level of support for Flight SQL transaction RPCs.

Values:

enumerator SQL_SUPPORTED_TRANSACTION_NONE#

Unknown/not indicated/no support.

enumerator SQL_SUPPORTED_TRANSACTION_TRANSACTION#

Transactions, but not savepoints.

enumerator SQL_SUPPORTED_TRANSACTION_SAVEPOINT#

Transactions and savepoints.

enum SqlSupportedCaseSensitivity#

Indicate whether something (e.g. an identifier) is case-sensitive.

Values:

enumerator SQL_CASE_SENSITIVITY_UNKNOWN#
enumerator SQL_CASE_SENSITIVITY_CASE_INSENSITIVE#
enumerator SQL_CASE_SENSITIVITY_UPPERCASE#
enum SqlNullOrdering#

Indicate how nulls are sorted.

Values:

enumerator SQL_NULLS_SORTED_HIGH#
enumerator SQL_NULLS_SORTED_LOW#
enumerator SQL_NULLS_SORTED_AT_START#
enumerator SQL_NULLS_SORTED_AT_END#
enum SqlSupportsConvert#

Type identifiers used to indicate support for converting between types.

Values:

enumerator SQL_CONVERT_BIGINT#
enumerator SQL_CONVERT_BINARY#
enumerator SQL_CONVERT_BIT#
enumerator SQL_CONVERT_CHAR#
enumerator SQL_CONVERT_DATE#
enumerator SQL_CONVERT_DECIMAL#
enumerator SQL_CONVERT_FLOAT#
enumerator SQL_CONVERT_INTEGER#
enumerator SQL_CONVERT_INTERVAL_DAY_TIME#
enumerator SQL_CONVERT_INTERVAL_YEAR_MONTH#
enumerator SQL_CONVERT_LONGVARBINARY#
enumerator SQL_CONVERT_LONGVARCHAR#
enumerator SQL_CONVERT_NUMERIC#
enumerator SQL_CONVERT_REAL#
enumerator SQL_CONVERT_SMALLINT#
enumerator SQL_CONVERT_TIME#
enumerator SQL_CONVERT_TIMESTAMP#
enumerator SQL_CONVERT_TINYINT#
enumerator SQL_CONVERT_VARBINARY#
enumerator SQL_CONVERT_VARCHAR#
struct TableRef#
#include <arrow/flight/sql/types.h>

A SQL table reference, optionally containing table’s catalog and db_schema.

Public Members

std::optional<std::string> catalog#

The table’s catalog.

std::optional<std::string> db_schema#

The table’s database schema.

std::string table#

The table name.

struct SubstraitPlan#
#include <arrow/flight/sql/types.h>

A Substrait plan to be executed, along with associated metadata.

Public Members

std::string plan#

The serialized plan.

std::string version#

The Substrait release, e.g. “0.12.0”.

Client#

class FlightSqlClient#

Flight client with Flight SQL semantics.

Wraps a Flight client to provide the Flight SQL RPC calls.

Public Functions

arrow::Result<std::unique_ptr<FlightInfo>> Execute(const FlightCallOptions &options, const std::string &query, const Transaction &transaction = no_transaction())#

Execute a SQL query on the server.

Parameters:
  • options[in] RPC-layer hints for this call.

  • query[in] The UTF8-encoded SQL query to be executed.

  • transaction[in] A transaction to associate this query with.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<FlightInfo>> ExecuteSubstrait(const FlightCallOptions &options, const SubstraitPlan &plan, const Transaction &transaction = no_transaction())#

Execute a Substrait plan that returns a result set on the server.

Parameters:
  • options[in] RPC-layer hints for this call.

  • plan[in] The plan to be executed.

  • transaction[in] A transaction to associate this query with.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetExecuteSchema(const FlightCallOptions &options, const std::string &query, const Transaction &transaction = no_transaction())#

Get the result set schema from the server.

arrow::Result<std::unique_ptr<SchemaResult>> GetExecuteSubstraitSchema(const FlightCallOptions &options, const SubstraitPlan &plan, const Transaction &transaction = no_transaction())#

Get the result set schema from the server.

arrow::Result<int64_t> ExecuteUpdate(const FlightCallOptions &options, const std::string &query, const Transaction &transaction = no_transaction())#

Execute an update query on the server.

Parameters:
  • options[in] RPC-layer hints for this call.

  • query[in] The UTF8-encoded SQL query to be executed.

  • transaction[in] A transaction to associate this query with.

Returns:

The quantity of rows affected by the operation.

arrow::Result<int64_t> ExecuteSubstraitUpdate(const FlightCallOptions &options, const SubstraitPlan &plan, const Transaction &transaction = no_transaction())#

Execute a Substrait plan that does not return a result set on the server.

Parameters:
  • options[in] RPC-layer hints for this call.

  • plan[in] The plan to be executed.

  • transaction[in] A transaction to associate this query with.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<FlightInfo>> GetCatalogs(const FlightCallOptions &options)#

Request a list of catalogs.

Parameters:

options[in] RPC-layer hints for this call.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetCatalogsSchema(const FlightCallOptions &options)#

Get the catalogs schema from the server (should be identical to SqlSchema::GetCatalogsSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetDbSchemas(const FlightCallOptions &options, const std::string *catalog, const std::string *db_schema_filter_pattern)#

Request a list of database schemas.

Parameters:
  • options[in] RPC-layer hints for this call.

  • catalog[in] The catalog.

  • db_schema_filter_pattern[in] The schema filter pattern.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetDbSchemasSchema(const FlightCallOptions &options)#

Get the database schemas schema from the server (should be identical to SqlSchema::GetDbSchemasSchema).

virtual arrow::Result<std::unique_ptr<FlightStreamReader>> DoGet(const FlightCallOptions &options, const Ticket &ticket)#

Given a flight ticket and schema, request to be sent the stream.

Returns record batch stream reader

Parameters:
  • options[in] Per-RPC options

  • ticket[in] The flight ticket to use

Returns:

The returned RecordBatchReader

arrow::Result<std::unique_ptr<FlightInfo>> GetTables(const FlightCallOptions &options, const std::string *catalog, const std::string *db_schema_filter_pattern, const std::string *table_filter_pattern, bool include_schema, const std::vector<std::string> *table_types)#

Request a list of tables.

Parameters:
  • options[in] RPC-layer hints for this call.

  • catalog[in] The catalog.

  • db_schema_filter_pattern[in] The schema filter pattern.

  • table_filter_pattern[in] The table filter pattern.

  • include_schema[in] True to include the schema upon return, false to not include the schema.

  • table_types[in] The table types to include.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetTablesSchema(const FlightCallOptions &options, bool include_schema)#

Get the tables schema from the server (should be identical to SqlSchema::GetTablesSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetPrimaryKeys(const FlightCallOptions &options, const TableRef &table_ref)#

Request the primary keys for a table.

Parameters:
  • options[in] RPC-layer hints for this call.

  • table_ref[in] The table reference.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetPrimaryKeysSchema(const FlightCallOptions &options)#

Get the primary keys schema from the server (should be identical to SqlSchema::GetPrimaryKeysSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetExportedKeys(const FlightCallOptions &options, const TableRef &table_ref)#

Retrieves a description about the foreign key columns that reference the primary key columns of the given table.

Parameters:
  • options[in] RPC-layer hints for this call.

  • table_ref[in] The table reference.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetExportedKeysSchema(const FlightCallOptions &options)#

Get the exported keys schema from the server (should be identical to SqlSchema::GetExportedKeysSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetImportedKeys(const FlightCallOptions &options, const TableRef &table_ref)#

Retrieves the foreign key columns for the given table.

Parameters:
  • options[in] RPC-layer hints for this call.

  • table_ref[in] The table reference.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetImportedKeysSchema(const FlightCallOptions &options)#

Get the imported keys schema from the server (should be identical to SqlSchema::GetImportedKeysSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetCrossReference(const FlightCallOptions &options, const TableRef &pk_table_ref, const TableRef &fk_table_ref)#

Retrieves a description of the foreign key columns in the given foreign key table that reference the primary key or the columns representing a unique constraint of the parent table (could be the same or a different table).

Parameters:
  • options[in] RPC-layer hints for this call.

  • pk_table_ref[in] The table reference that exports the key.

  • fk_table_ref[in] The table reference that imports the key.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetCrossReferenceSchema(const FlightCallOptions &options)#

Get the cross reference schema from the server (should be identical to SqlSchema::GetCrossReferenceSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetTableTypes(const FlightCallOptions &options)#

Request a list of table types.

Parameters:

options[in] RPC-layer hints for this call.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetTableTypesSchema(const FlightCallOptions &options)#

Get the table types schema from the server (should be identical to SqlSchema::GetTableTypesSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetXdbcTypeInfo(const FlightCallOptions &options)#

Request the information about all the data types supported.

Parameters:

options[in] RPC-layer hints for this call.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<FlightInfo>> GetXdbcTypeInfo(const FlightCallOptions &options, int data_type)#

Request the information about all the data types supported.

Parameters:
  • options[in] RPC-layer hints for this call.

  • data_type[in] The data type to search for as filtering.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetXdbcTypeInfoSchema(const FlightCallOptions &options)#

Get the type info schema from the server (should be identical to SqlSchema::GetXdbcTypeInfoSchema).

arrow::Result<std::unique_ptr<FlightInfo>> GetSqlInfo(const FlightCallOptions &options, const std::vector<int> &sql_info)#

Request a list of SQL information.

Parameters:
  • options[in] RPC-layer hints for this call.

  • sql_info[in] the SQL info required.

Returns:

The FlightInfo describing where to access the dataset.

arrow::Result<std::unique_ptr<SchemaResult>> GetSqlInfoSchema(const FlightCallOptions &options)#

Get the SQL information schema from the server (should be identical to SqlSchema::GetSqlInfoSchema).

arrow::Result<std::shared_ptr<PreparedStatement>> Prepare(const FlightCallOptions &options, const std::string &query, const Transaction &transaction = no_transaction())#

Create a prepared statement object.

Parameters:
  • options[in] RPC-layer hints for this call.

  • query[in] The query that will be executed.

  • transaction[in] A transaction to associate this query with.

Returns:

The created prepared statement.

arrow::Result<std::shared_ptr<PreparedStatement>> PrepareSubstrait(const FlightCallOptions &options, const SubstraitPlan &plan, const Transaction &transaction = no_transaction())#

Create a prepared statement object.

Parameters:
  • options[in] RPC-layer hints for this call.

  • plan[in] The Substrait plan that will be executed.

  • transaction[in] A transaction to associate this query with.

Returns:

The created prepared statement.

inline virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfo(const FlightCallOptions &options, const FlightDescriptor &descriptor)#

Call the underlying Flight client’s GetFlightInfo.

inline virtual arrow::Result<std::unique_ptr<SchemaResult>> GetSchema(const FlightCallOptions &options, const FlightDescriptor &descriptor)#

Call the underlying Flight client’s GetSchema.

::arrow::Result<Transaction> BeginTransaction(const FlightCallOptions &options)#

Begin a new transaction.

::arrow::Result<Savepoint> BeginSavepoint(const FlightCallOptions &options, const Transaction &transaction, const std::string &name)#

Create a new savepoint within a transaction.

Parameters:
  • options[in] RPC-layer hints for this call.

  • transaction[in] The parent transaction.

  • name[in] A friendly name for the savepoint.

Status Commit(const FlightCallOptions &options, const Transaction &transaction)#

Commit a transaction.

After this, the transaction and all associated savepoints will be invalidated.

Parameters:
  • options[in] RPC-layer hints for this call.

  • transaction[in] The transaction.

Status Release(const FlightCallOptions &options, const Savepoint &savepoint)#

Release a savepoint.

After this, the savepoint (and all savepoints created after it) will be invalidated.

Parameters:
  • options[in] RPC-layer hints for this call.

  • savepoint[in] The savepoint.

Status Rollback(const FlightCallOptions &options, const Transaction &transaction)#

Rollback a transaction.

After this, the transaction and all associated savepoints will be invalidated.

Parameters:
  • options[in] RPC-layer hints for this call.

  • transaction[in] The transaction.

Status Rollback(const FlightCallOptions &options, const Savepoint &savepoint)#

Rollback a savepoint.

After this, the savepoint will still be valid, but all savepoints created after it will be invalidated.

Parameters:
  • options[in] RPC-layer hints for this call.

  • savepoint[in] The savepoint.

inline ::arrow::Result<CancelFlightInfoResult> CancelFlightInfo(const FlightCallOptions &options, const CancelFlightInfoRequest &request)#

Explicitly cancel a FlightInfo.

Parameters:
  • options[in] RPC-layer hints for this call.

  • request[in] The CancelFlightInfoRequest.

Returns:

Arrow result with a canceled result.

::arrow::Result<CancelResult> CancelQuery(const FlightCallOptions &options, const FlightInfo &info)#

Explicitly cancel a query.

Deprecated:

Deprecated since 13.0.0. Use CancelFlightInfo() instead. If you can assume that a server requires 13.0.0 or later, you can always use CancelFlightInfo(). Otherwise, you may need to use CancelQuery() and/or CancelFlightInfo().

Parameters:
  • options[in] RPC-layer hints for this call.

  • info[in] The FlightInfo of the query to cancel.

inline ::arrow::Result<FlightEndpoint> RenewFlightEndpoint(const FlightCallOptions &options, const RenewFlightEndpointRequest &request)#

Extends the expiration of a FlightEndpoint.

Parameters:
  • options[in] RPC-layer hints for this call.

  • request[in] The RenewFlightEndpointRequest.

Returns:

Arrow result with a renewed FlightEndpoint

Status Close()#

Explicitly shut down and clean up the client.

class PreparedStatement#

A prepared statement that can be executed.

Public Functions

PreparedStatement(FlightSqlClient *client, std::string handle, std::shared_ptr<Schema> dataset_schema, std::shared_ptr<Schema> parameter_schema)#

Create a new prepared statement.

However, applications should generally use FlightSqlClient::Prepare.

Parameters:
  • client[in] Client object used to make the RPC requests.

  • handle[in] Handle for this prepared statement.

  • dataset_schema[in] Schema of the resulting dataset.

  • parameter_schema[in] Schema of the parameters (if any).

~PreparedStatement()#

Default destructor for the PreparedStatement class.

The destructor will call the Close method from the class in order, to send a request to close the PreparedStatement. NOTE: It is best to explicitly close the PreparedStatement, otherwise errors can’t be caught.

arrow::Result<std::unique_ptr<FlightInfo>> Execute(const FlightCallOptions &options = {})#

Executes the prepared statement query on the server.

Returns:

A FlightInfo object representing the stream(s) to fetch.

arrow::Result<int64_t> ExecuteUpdate(const FlightCallOptions &options = {})#

Executes the prepared statement update query on the server.

Returns:

The number of rows affected.

const std::shared_ptr<Schema> &parameter_schema() const#

Retrieve the parameter schema from the query.

Returns:

The parameter schema from the query.

const std::shared_ptr<Schema> &dataset_schema() const#

Retrieve the ResultSet schema from the query.

Returns:

The ResultSet schema from the query.

Status SetParameters(std::shared_ptr<RecordBatch> parameter_binding)#

Set a RecordBatch that contains the parameters that will be bound.

Status SetParameters(std::shared_ptr<RecordBatchReader> parameter_binding)#

Set a RecordBatchReader that contains the parameters that will be bound.

arrow::Result<std::unique_ptr<SchemaResult>> GetSchema(const FlightCallOptions &options = {})#

Re-request the result set schema from the server (should be identical to dataset_schema).

Status Close(const FlightCallOptions &options = {})#

Close the prepared statement so the server can free up any resources.

After this, the prepared statement may not be used anymore.

bool IsClosed() const#

Check if the prepared statement is closed.

Returns:

The state of the prepared statement.

Public Static Functions

static arrow::Result<std::shared_ptr<PreparedStatement>> ParseResponse(FlightSqlClient *client, std::unique_ptr<ResultStream> results)#

Create a PreparedStatement by parsing the server response.

Server#

class FlightSqlServerBase : public arrow::flight::FlightServerBase#

The base class for Flight SQL servers.

Applications should subclass this class and override the virtual methods declared on this class.

Subclassed by arrow::flight::sql::example::SQLiteFlightSqlServer

Flight RPC handlers

Applications should not override these methods; they implement the Flight SQL protocol.

virtual Status GetFlightInfo(const ServerCallContext &context, const FlightDescriptor &request, std::unique_ptr<FlightInfo> *info) final#

Retrieve the schema and an access plan for the indicated descriptor.

Parameters:
  • context[in] The call context.

  • request[in] the dataset request, whether a named dataset or command

  • info[out] the returned flight info provider

Returns:

Status

virtual Status GetSchema(const ServerCallContext &context, const FlightDescriptor &request, std::unique_ptr<SchemaResult> *schema) override#

Retrieve the schema for the indicated descriptor.

Parameters:
  • context[in] The call context.

  • request[in] the dataset request, whether a named dataset or command

  • schema[out] the returned flight schema provider

Returns:

Status

virtual Status DoGet(const ServerCallContext &context, const Ticket &request, std::unique_ptr<FlightDataStream> *stream) final#

Get a stream of IPC payloads to put on the wire.

Parameters:
  • context[in] The call context.

  • request[in] an opaque ticket

  • stream[out] the returned stream provider

Returns:

Status

virtual Status DoPut(const ServerCallContext &context, std::unique_ptr<FlightMessageReader> reader, std::unique_ptr<FlightMetadataWriter> writer) final#

Process a stream of IPC payloads sent from a client.

Parameters:
  • context[in] The call context.

  • reader[in] a sequence of uploaded record batches

  • writer[in] send metadata back to the client

Returns:

Status

virtual Status ListActions(const ServerCallContext &context, std::vector<ActionType> *actions) final#

Retrieve the list of available actions.

Parameters:
  • context[in] The call context.

  • actions[out] a vector of available action types

Returns:

Status

virtual Status DoAction(const ServerCallContext &context, const Action &action, std::unique_ptr<ResultStream> *result) final#

Execute an action, return stream of zero or more results.

Parameters:
  • context[in] The call context.

  • action[in] the action to execute, with type and body

  • result[out] the result iterator

Returns:

Status

Flight SQL methods

Applications should override these methods to implement the Flight SQL endpoints.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoStatement(const ServerCallContext &context, const StatementQuery &command, const FlightDescriptor &descriptor)#

Get a FlightInfo for executing a SQL query.

Parameters:
  • context[in] Per-call context.

  • command[in] The StatementQuery object containing the SQL statement.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoSubstraitPlan(const ServerCallContext &context, const StatementSubstraitPlan &command, const FlightDescriptor &descriptor)#

Get a FlightInfo for executing a Substrait plan.

Parameters:
  • context[in] Per-call context.

  • command[in] The StatementSubstraitPlan object containing the plan.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetStatement(const ServerCallContext &context, const StatementQueryTicket &command)#

Get a FlightDataStream containing the query results.

Parameters:
  • context[in] Per-call context.

  • command[in] The StatementQueryTicket containing the statement handle.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoPreparedStatement(const ServerCallContext &context, const PreparedStatementQuery &command, const FlightDescriptor &descriptor)#

Get a FlightInfo for executing an already created prepared statement.

Parameters:
  • context[in] Per-call context.

  • command[in] The PreparedStatementQuery object containing the prepared statement handle.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetPreparedStatement(const ServerCallContext &context, const PreparedStatementQuery &command)#

Get a FlightDataStream containing the prepared statement query results.

Parameters:
  • context[in] Per-call context.

  • command[in] The PreparedStatementQuery object containing the prepared statement handle.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoCatalogs(const ServerCallContext &context, const FlightDescriptor &descriptor)#

Get a FlightInfo for listing catalogs.

Parameters:
  • context[in] Per-call context.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<SchemaResult>> GetSchemaStatement(const ServerCallContext &context, const StatementQuery &command, const FlightDescriptor &descriptor)#

Get the schema of the result set of a query.

Parameters:
  • context[in] Per-call context.

  • command[in] The StatementQuery containing the SQL query.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The schema of the result set.

virtual arrow::Result<std::unique_ptr<SchemaResult>> GetSchemaSubstraitPlan(const ServerCallContext &context, const StatementSubstraitPlan &command, const FlightDescriptor &descriptor)#

Get the schema of the result set of a Substrait plan.

Parameters:
  • context[in] Per-call context.

  • command[in] The StatementQuery containing the plan.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The schema of the result set.

virtual arrow::Result<std::unique_ptr<SchemaResult>> GetSchemaPreparedStatement(const ServerCallContext &context, const PreparedStatementQuery &command, const FlightDescriptor &descriptor)#

Get the schema of the result set of a prepared statement.

Parameters:
  • context[in] Per-call context.

  • command[in] The PreparedStatementQuery containing the prepared statement handle.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The schema of the result set.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetCatalogs(const ServerCallContext &context)#

Get a FlightDataStream containing the list of catalogs.

Parameters:

context[in] Per-call context.

Returns:

An interface for sending data back to the client.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoXdbcTypeInfo(const ServerCallContext &context, const GetXdbcTypeInfo &command, const FlightDescriptor &descriptor)#

Gets a FlightInfo for retrieving other information (See TypeInfo).

Parameters:
  • context[in] Per-call context.

  • command[in] An optional filter for on the data type.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

Status.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetXdbcTypeInfo(const ServerCallContext &context, const GetXdbcTypeInfo &command)#

Gets a FlightDataStream containing information about the data types supported.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetXdbcTypeInfo object which may contain filter for the date type to be search for.

Returns:

Status.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoSqlInfo(const ServerCallContext &context, const GetSqlInfo &command, const FlightDescriptor &descriptor)#

Get a FlightInfo for retrieving other information (See SqlInfo).

Parameters:
  • context[in] Per-call context.

  • command[in] The GetSqlInfo object containing the list of SqlInfo to be returned.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetSqlInfo(const ServerCallContext &context, const GetSqlInfo &command)#

Get a FlightDataStream containing the list of SqlInfo results.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetSqlInfo object containing the list of SqlInfo to be returned.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoSchemas(const ServerCallContext &context, const GetDbSchemas &command, const FlightDescriptor &descriptor)#

Get a FlightInfo for listing schemas.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetDbSchemas object which may contain filters for catalog and schema name.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetDbSchemas(const ServerCallContext &context, const GetDbSchemas &command)#

Get a FlightDataStream containing the list of schemas.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetDbSchemas object which may contain filters for catalog and schema name.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoTables(const ServerCallContext &context, const GetTables &command, const FlightDescriptor &descriptor)#

Get a FlightInfo for listing tables.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetTables object which may contain filters for catalog, schema and table names.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetTables(const ServerCallContext &context, const GetTables &command)#

Get a FlightDataStream containing the list of tables.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetTables object which may contain filters for catalog, schema and table names.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoTableTypes(const ServerCallContext &context, const FlightDescriptor &descriptor)#

Get a FlightInfo to extract information about the table types.

Parameters:
  • context[in] Per-call context.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetTableTypes(const ServerCallContext &context)#

Get a FlightDataStream containing the data related to the table types.

Parameters:

context[in] Per-call context.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoPrimaryKeys(const ServerCallContext &context, const GetPrimaryKeys &command, const FlightDescriptor &descriptor)#

Get a FlightInfo to extract information about primary and foreign keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetPrimaryKeys object with necessary information to execute the request.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetPrimaryKeys(const ServerCallContext &context, const GetPrimaryKeys &command)#

Get a FlightDataStream containing the data related to the primary and foreign keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetPrimaryKeys object with necessary information to execute the request.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoExportedKeys(const ServerCallContext &context, const GetExportedKeys &command, const FlightDescriptor &descriptor)#

Get a FlightInfo to extract information about foreign and primary keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetExportedKeys object with necessary information to execute the request.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetExportedKeys(const ServerCallContext &context, const GetExportedKeys &command)#

Get a FlightDataStream containing the data related to the foreign and primary keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetExportedKeys object with necessary information to execute the request.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoImportedKeys(const ServerCallContext &context, const GetImportedKeys &command, const FlightDescriptor &descriptor)#

Get a FlightInfo to extract information about foreign and primary keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetImportedKeys object with necessary information to execute the request.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetImportedKeys(const ServerCallContext &context, const GetImportedKeys &command)#

Get a FlightDataStream containing the data related to the foreign and primary keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetImportedKeys object with necessary information to execute the request.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<std::unique_ptr<FlightInfo>> GetFlightInfoCrossReference(const ServerCallContext &context, const GetCrossReference &command, const FlightDescriptor &descriptor)#

Get a FlightInfo to extract information about foreign and primary keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetCrossReference object with necessary information to execute the request.

  • descriptor[in] The descriptor identifying the data stream.

Returns:

The FlightInfo describing where to access the dataset.

virtual arrow::Result<std::unique_ptr<FlightDataStream>> DoGetCrossReference(const ServerCallContext &context, const GetCrossReference &command)#

Get a FlightDataStream containing the data related to the foreign and primary keys.

Parameters:
  • context[in] Per-call context.

  • command[in] The GetCrossReference object with necessary information to execute the request.

Returns:

The FlightDataStream containing the results.

virtual arrow::Result<int64_t> DoPutCommandStatementUpdate(const ServerCallContext &context, const StatementUpdate &command)#

Execute an update SQL statement.

Parameters:
  • context[in] The call context.

  • command[in] The StatementUpdate object containing the SQL statement.

Returns:

The changed record count.

virtual arrow::Result<int64_t> DoPutCommandSubstraitPlan(const ServerCallContext &context, const StatementSubstraitPlan &command)#

Execute an update Substrait plan.

Parameters:
Returns:

The changed record count.

virtual arrow::Result<ActionCreatePreparedStatementResult> CreatePreparedStatement(const ServerCallContext &context, const ActionCreatePreparedStatementRequest &request)#

Create a prepared statement from a given SQL statement.

Parameters:
Returns:

A ActionCreatePreparedStatementResult containing the dataset and parameter schemas and a handle for created statement.

virtual arrow::Result<ActionCreatePreparedStatementResult> CreatePreparedSubstraitPlan(const ServerCallContext &context, const ActionCreatePreparedSubstraitPlanRequest &request)#

Create a prepared statement from a Substrait plan.

Parameters:
Returns:

A ActionCreatePreparedStatementResult containing the dataset and parameter schemas and a handle for created statement.

virtual Status ClosePreparedStatement(const ServerCallContext &context, const ActionClosePreparedStatementRequest &request)#

Close a prepared statement.

Parameters:
virtual Status DoPutPreparedStatementQuery(const ServerCallContext &context, const PreparedStatementQuery &command, FlightMessageReader *reader, FlightMetadataWriter *writer)#

Bind parameters to given prepared statement.

Parameters:
  • context[in] The call context.

  • command[in] The PreparedStatementQuery object containing the prepared statement handle.

  • reader[in] A sequence of uploaded record batches.

  • writer[in] Send metadata back to the client.

virtual arrow::Result<int64_t> DoPutPreparedStatementUpdate(const ServerCallContext &context, const PreparedStatementUpdate &command, FlightMessageReader *reader)#

Execute an update SQL prepared statement.

Parameters:
  • context[in] The call context.

  • command[in] The PreparedStatementUpdate object containing the prepared statement handle.

  • reader[in] a sequence of uploaded record batches.

Returns:

The changed record count.

virtual arrow::Result<ActionBeginTransactionResult> BeginTransaction(const ServerCallContext &context, const ActionBeginTransactionRequest &request)#

Begin a new transaction.

Parameters:
  • context[in] The call context.

  • request[in] Request parameters.

Returns:

The transaction ID.

virtual arrow::Result<ActionBeginSavepointResult> BeginSavepoint(const ServerCallContext &context, const ActionBeginSavepointRequest &request)#

Create a new savepoint.

Parameters:
  • context[in] The call context.

  • request[in] Request parameters.

Returns:

The savepoint ID.

virtual Status EndSavepoint(const ServerCallContext &context, const ActionEndSavepointRequest &request)#

Release/rollback a savepoint.

Parameters:
  • context[in] The call context.

  • request[in] The savepoint.

virtual Status EndTransaction(const ServerCallContext &context, const ActionEndTransactionRequest &request)#

Commit/rollback a transaction.

Parameters:
  • context[in] The call context.

  • request[in] The transaction.

virtual arrow::Result<CancelFlightInfoResult> CancelFlightInfo(const ServerCallContext &context, const CancelFlightInfoRequest &request)#

Attempt to explicitly cancel a FlightInfo.

Parameters:
  • context[in] The call context.

  • request[in] The CancelFlightInfoRequest.

Returns:

The cancellation result.

virtual arrow::Result<CancelResult> CancelQuery(const ServerCallContext &context, const ActionCancelQueryRequest &request)#

Attempt to explicitly cancel a query.

Deprecated:

Deprecated in 13.0.0. You just need to implement CancelFlightInfo() to support both the CancelFlightInfo action (for newer clients) and the CancelQuery action (for older clients).

Parameters:
  • context[in] The call context.

  • request[in] The query to cancel.

Returns:

The cancellation result.

virtual arrow::Result<FlightEndpoint> RenewFlightEndpoint(const ServerCallContext &context, const RenewFlightEndpointRequest &request)#

Attempt to explicitly renew a FlightEndpoint.

Parameters:
  • context[in] The call context.

  • request[in] The RenewFlightEndpointRequest.

Returns:

The renew result.

Utility methods

void RegisterSqlInfo(int32_t id, const SqlInfoResult &result)#

Register a new SqlInfo result, making it available when calling GetSqlInfo.

Parameters:
  • id[in] the SqlInfo identifier.

  • result[in] the result.

arrow::Result<std::string> arrow::flight::sql::CreateStatementQueryTicket(const std::string &statement_handle)#

A utility function to create a ticket (a opaque binary token that the server uses to identify this query) for a statement query.

Intended for Flight SQL server implementations.

Parameters:

statement_handle[in] The statement handle that will originate the ticket.

Returns:

The parsed ticket as an string.

class SqlSchema#

Auxiliary class containing all Schemas used on Flight SQL.

Public Static Functions

static const std::shared_ptr<Schema> &GetCatalogsSchema()#

Get the Schema used on GetCatalogs response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetDbSchemasSchema()#

Get the Schema used on GetDbSchemas response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetTablesSchema()#

Get the Schema used on GetTables response when included schema flags is set to false.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetTablesSchemaWithIncludedSchema()#

Get the Schema used on GetTables response when included schema flags is set to true.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetTableTypesSchema()#

Get the Schema used on GetTableTypes response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetPrimaryKeysSchema()#

Get the Schema used on GetPrimaryKeys response when included schema flags is set to true.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetExportedKeysSchema()#

Get the Schema used on GetImportedKeys response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetImportedKeysSchema()#

Get the Schema used on GetImportedKeys response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetCrossReferenceSchema()#

Get the Schema used on GetCrossReference response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetXdbcTypeInfoSchema()#

Get the Schema used on GetXdbcTypeInfo response.

Returns:

The default schema template.

static const std::shared_ptr<Schema> &GetSqlInfoSchema()#

Get the Schema used on GetSqlInfo response.

Returns:

The default schema template.

group flight-sql-protocol-messages

Simple struct wrappers for various protocol messages, used to avoid exposing Protobuf types in the API.

struct StatementQuery#
#include <arrow/flight/sql/server.h>

A SQL query.

Public Members

std::string query#

The SQL query.

std::string transaction_id#

The transaction ID, if specified (else a blank string).

struct StatementSubstraitPlan#
#include <arrow/flight/sql/server.h>

A Substrait plan to execute.

Public Members

SubstraitPlan plan#

The Substrait plan.

std::string transaction_id#

The transaction ID, if specified (else a blank string).

struct StatementUpdate#
#include <arrow/flight/sql/server.h>

A SQL update query.

Public Members

std::string query#

The SQL query.

std::string transaction_id#

The transaction ID, if specified (else a blank string).

struct StatementQueryTicket#
#include <arrow/flight/sql/server.h>

A request to execute a query.

Public Members

std::string statement_handle#

The server-generated opaque identifier for the query.

struct PreparedStatementQuery#
#include <arrow/flight/sql/server.h>

A prepared query statement.

Public Members

std::string prepared_statement_handle#

The server-generated opaque identifier for the statement.

struct PreparedStatementUpdate#
#include <arrow/flight/sql/server.h>

A prepared update statement.

Public Members

std::string prepared_statement_handle#

The server-generated opaque identifier for the statement.

struct GetSqlInfo#
#include <arrow/flight/sql/server.h>

A request to fetch server metadata.

Public Members

std::vector<int32_t> info#

A list of metadata IDs to fetch.

struct GetDbSchemas#
#include <arrow/flight/sql/server.h>

A request to list database schemas.

Public Members

std::optional<std::string> catalog#

An optional database catalog to filter on.

std::optional<std::string> db_schema_filter_pattern#

An optional database schema to filter on.

struct GetTables#
#include <arrow/flight/sql/server.h>

A request to list database tables.

Public Members

std::optional<std::string> catalog#

An optional database catalog to filter on.

std::optional<std::string> db_schema_filter_pattern#

An optional database schema to filter on.

std::optional<std::string> table_name_filter_pattern#

An optional table name to filter on.

std::vector<std::string> table_types#

A list of table types to filter on.

bool include_schema#

Whether to include the Arrow schema in the response.

struct GetXdbcTypeInfo#
#include <arrow/flight/sql/server.h>

A request to get SQL data type information.

Public Members

std::optional<int> data_type#

A specific SQL type ID to fetch information about.

struct GetPrimaryKeys#
#include <arrow/flight/sql/server.h>

A request to list primary keys of a table.

Public Members

TableRef table_ref#

The given table.

struct GetExportedKeys#
#include <arrow/flight/sql/server.h>

A request to list foreign key columns referencing primary key columns of a table.

Public Members

TableRef table_ref#

The given table.

struct GetImportedKeys#
#include <arrow/flight/sql/server.h>

A request to list foreign keys of a table.

Public Members

TableRef table_ref#

The given table.

struct GetCrossReference#
#include <arrow/flight/sql/server.h>

A request to list foreign key columns of a table that reference columns in a given parent table.

Public Members

TableRef pk_table_ref#

The parent table (the one containing referenced columns).

TableRef fk_table_ref#

The foreign table (for which foreign key columns will be listed).

struct ActionBeginTransactionRequest#
#include <arrow/flight/sql/server.h>

A request to start a new transaction.

struct ActionBeginSavepointRequest#
#include <arrow/flight/sql/server.h>

A request to create a new savepoint.

struct ActionBeginSavepointResult#
#include <arrow/flight/sql/server.h>

The result of starting a new savepoint.

struct ActionBeginTransactionResult#
#include <arrow/flight/sql/server.h>

The result of starting a new transaction.

struct ActionEndSavepointRequest#
#include <arrow/flight/sql/server.h>

A request to end a savepoint.

struct ActionEndTransactionRequest#
#include <arrow/flight/sql/server.h>

A request to end a transaction.

struct ActionCancelQueryRequest#
#include <arrow/flight/sql/server.h>

An explicit request to cancel a running query.

struct ActionCreatePreparedStatementRequest#
#include <arrow/flight/sql/server.h>

A request to create a new prepared statement.

Public Members

std::string query#

The SQL query.

std::string transaction_id#

The transaction ID, if specified (else a blank string).

struct ActionCreatePreparedSubstraitPlanRequest#
#include <arrow/flight/sql/server.h>

A request to create a new prepared statement with a Substrait plan.

Public Members

SubstraitPlan plan#

The serialized Substrait plan.

std::string transaction_id#

The transaction ID, if specified (else a blank string).

struct ActionClosePreparedStatementRequest#
#include <arrow/flight/sql/server.h>

A request to close a prepared statement.

Public Members

std::string prepared_statement_handle#

The server-generated opaque identifier for the statement.

struct ActionCreatePreparedStatementResult#
#include <arrow/flight/sql/server.h>

The result of creating a new prepared statement.

Public Members

std::shared_ptr<Schema> dataset_schema#

The schema of the query results, if applicable.

std::shared_ptr<Schema> parameter_schema#

The schema of the query parameters, if applicable.

std::string prepared_statement_handle#

The server-generated opaque identifier for the statement.