/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto3"; import "google/protobuf/descriptor.proto"; option java_package = "org.apache.arrow.flight.sql.impl"; package arrow.flight.protocol.sql; /* * Represents a metadata request. Used in the command member of FlightDescriptor * for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the metadata request. * * The returned Arrow schema will be: * < * info_name: uint32 not null, * value: dense_union< * string_value: utf8, * bool_value: bool, * bigint_value: int64, * int32_bitmask: int32, * string_list: list * int32_to_int32_list_map: map> * > * where there is one row per requested piece of metadata information. */ message CommandGetSqlInfo { option (experimental) = true; /* * Values are modelled after ODBC's SQLGetInfo() function. This information is intended to provide * Flight SQL clients with basic, SQL syntax and SQL functions related information. * More information types can be added in future releases. * E.g. more SQL syntax support types, scalar functions support, type conversion support etc. * * Note that the set of metadata may expand. * * Initially, Flight SQL will support the following information types: * - Server Information - Range [0-500) * - Syntax Information - Range [500-1000) * Range [0-10,000) is reserved for defaults (see SqlInfo enum for default options). * Custom options should start at 10,000. * * If omitted, then all metadata will be retrieved. * Flight SQL Servers may choose to include additional metadata above and beyond the specified set, however they must * at least return the specified set. IDs ranging from 0 to 10,000 (exclusive) are reserved for future use. * If additional metadata is included, the metadata IDs should start from 10,000. */ repeated uint32 info = 1; } // Options for CommandGetSqlInfo. enum SqlInfo { // Server Information [0-500): Provides basic information about the Flight SQL Server. // Retrieves a UTF-8 string with the name of the Flight SQL Server. FLIGHT_SQL_SERVER_NAME = 0; // Retrieves a UTF-8 string with the native version of the Flight SQL Server. FLIGHT_SQL_SERVER_VERSION = 1; // Retrieves a UTF-8 string with the Arrow format version of the Flight SQL Server. FLIGHT_SQL_SERVER_ARROW_VERSION = 2; /* * Retrieves a boolean value indicating whether the Flight SQL Server is read only. * * Returns: * - false: if read-write * - true: if read only */ FLIGHT_SQL_SERVER_READ_ONLY = 3; // SQL Syntax Information [500-1000): provides information about SQL syntax supported by the Flight SQL Server. /* * 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. */ SQL_DDL_CATALOG = 500; /* * 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. */ SQL_DDL_SCHEMA = 501; /* * 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. */ SQL_DDL_TABLE = 502; /* * Retrieves a int32 ordinal representing the case sensitivity of catalog, table, schema and table names. * * The possible values are listed in `arrow.flight.protocol.sql.SqlSupportedCaseSensitivity`. */ SQL_IDENTIFIER_CASE = 503; // Retrieves a UTF-8 string with the supported character(s) used to surround a delimited identifier. SQL_IDENTIFIER_QUOTE_CHAR = 504; /* * Retrieves a int32 describing the case sensitivity of quoted identifiers. * * The possible values are listed in `arrow.flight.protocol.sql.SqlSupportedCaseSensitivity`. */ SQL_QUOTED_IDENTIFIER_CASE = 505; /* * 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. */ SQL_ALL_TABLES_ARE_SELECTABLE = 506; /* * Retrieves the null ordering. * * Returns a int32 ordinal for the null ordering being used, as described in * `arrow.flight.protocol.sql.SqlNullOrdering`. */ SQL_NULL_ORDERING = 507; // Retrieves a UTF-8 string list with values of the supported keywords. SQL_KEYWORDS = 508; // Retrieves a UTF-8 string list with values of the supported numeric functions. SQL_NUMERIC_FUNCTIONS = 509; // Retrieves a UTF-8 string list with values of the supported string functions. SQL_STRING_FUNCTIONS = 510; // Retrieves a UTF-8 string list with values of the supported system functions. SQL_SYSTEM_FUNCTIONS = 511; // Retrieves a UTF-8 string list with values of the supported datetime functions. SQL_DATETIME_FUNCTIONS = 512; /* * 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. */ SQL_SEARCH_STRING_ESCAPE = 513; /* * 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 _). */ SQL_EXTRA_NAME_CHARACTERS = 514; /* * 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. */ SQL_SUPPORTS_COLUMN_ALIASING = 515; /* * 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. */ SQL_NULL_PLUS_NULL_IS_NULL = 516; /* * 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> */ SQL_SUPPORTS_CONVERT = 517; /* * 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. */ SQL_SUPPORTS_TABLE_CORRELATION_NAMES = 518; /* * 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 */ SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES = 519; /* * 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; */ SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY = 520; /* * 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. */ SQL_SUPPORTS_ORDER_BY_UNRELATED = 521; /* * Retrieves the supported GROUP BY commands; * * Returns an int32 bitmask value representing the supported commands. * The returned bitmask should be parsed in order to retrieve the supported commands. * * For instance: * - return 0 (\b0) => [] (GROUP BY is unsupported); * - return 1 (\b1) => [SQL_GROUP_BY_UNRELATED]; * - return 2 (\b10) => [SQL_GROUP_BY_BEYOND_SELECT]; * - return 3 (\b11) => [SQL_GROUP_BY_UNRELATED, SQL_GROUP_BY_BEYOND_SELECT]. * Valid GROUP BY types are described under `arrow.flight.protocol.sql.SqlSupportedGroupBy`. */ SQL_SUPPORTED_GROUP_BY = 522; /* * 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. */ SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE = 523; /* * 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. */ SQL_SUPPORTS_NON_NULLABLE_COLUMNS = 524; /* * 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 (\b0) => [] (SQL grammar is unsupported); * - return 1 (\b1) => [SQL_MINIMUM_GRAMMAR]; * - return 2 (\b10) => [SQL_CORE_GRAMMAR]; * - return 3 (\b11) => [SQL_MINIMUM_GRAMMAR, SQL_CORE_GRAMMAR]; * - return 4 (\b100) => [SQL_EXTENDED_GRAMMAR]; * - return 5 (\b101) => [SQL_MINIMUM_GRAMMAR, SQL_EXTENDED_GRAMMAR]; * - return 6 (\b110) => [SQL_CORE_GRAMMAR, SQL_EXTENDED_GRAMMAR]; * - return 7 (\b111) => [SQL_MINIMUM_GRAMMAR, SQL_CORE_GRAMMAR, SQL_EXTENDED_GRAMMAR]. * Valid SQL grammar levels are described under `arrow.flight.protocol.sql.SupportedSqlGrammar`. */ SQL_SUPPORTED_GRAMMAR = 525; /* * Retrieves the supported ANSI92 SQL grammar level. * * Returns an int32 bitmask value representing the supported ANSI92 SQL grammar level. * The returned bitmask should be parsed in order to retrieve the supported commands. * * For instance: * - return 0 (\b0) => [] (ANSI92 SQL grammar is unsupported); * - return 1 (\b1) => [ANSI92_ENTRY_SQL]; * - return 2 (\b10) => [ANSI92_INTERMEDIATE_SQL]; * - return 3 (\b11) => [ANSI92_ENTRY_SQL, ANSI92_INTERMEDIATE_SQL]; * - return 4 (\b100) => [ANSI92_FULL_SQL]; * - return 5 (\b101) => [ANSI92_ENTRY_SQL, ANSI92_FULL_SQL]; * - return 6 (\b110) => [ANSI92_INTERMEDIATE_SQL, ANSI92_FULL_SQL]; * - return 7 (\b111) => [ANSI92_ENTRY_SQL, ANSI92_INTERMEDIATE_SQL, ANSI92_FULL_SQL]. * Valid ANSI92 SQL grammar levels are described under `arrow.flight.protocol.sql.SupportedAnsi92SqlGrammarLevel`. */ SQL_ANSI92_SUPPORTED_LEVEL = 526; /* * 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. */ SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY = 527; /* * Retrieves the support level for SQL OUTER JOINs. * * Returns a int32 ordinal for the SQL ordering being used, as described in * `arrow.flight.protocol.sql.SqlOuterJoinsSupportLevel`. */ SQL_OUTER_JOINS_SUPPORT_LEVEL = 528; // Retrieves a UTF-8 string with the preferred term for "schema". SQL_SCHEMA_TERM = 529; // Retrieves a UTF-8 string with the preferred term for "procedure". SQL_PROCEDURE_TERM = 530; // Retrieves a UTF-8 string with the preferred term for "catalog". SQL_CATALOG_TERM = 531; /* * 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. */ SQL_CATALOG_AT_START = 532; /* * Retrieves the supported actions for a SQL schema. * * 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 (\b0) => [] (no supported actions for SQL schema); * - return 1 (\b1) => [SQL_ELEMENT_IN_PROCEDURE_CALLS]; * - return 2 (\b10) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS]; * - return 3 (\b11) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS]; * - return 4 (\b100) => [SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS]; * - return 5 (\b101) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS]; * - return 6 (\b110) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS]; * - return 7 (\b111) => [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`. */ SQL_SCHEMAS_SUPPORTED_ACTIONS = 533; /* * Retrieves the supported actions for a SQL schema. * * 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 (\b0) => [] (no supported actions for SQL catalog); * - return 1 (\b1) => [SQL_ELEMENT_IN_PROCEDURE_CALLS]; * - return 2 (\b10) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS]; * - return 3 (\b11) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS]; * - return 4 (\b100) => [SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS]; * - return 5 (\b101) => [SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS]; * - return 6 (\b110) => [SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS]; * - return 7 (\b111) => [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`. */ SQL_CATALOGS_SUPPORTED_ACTIONS = 534; /* * Retrieves the supported SQL positioned commands. * * 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 (\b0) => [] (no supported SQL positioned commands); * - return 1 (\b1) => [SQL_POSITIONED_DELETE]; * - return 2 (\b10) => [SQL_POSITIONED_UPDATE]; * - return 3 (\b11) => [SQL_POSITIONED_DELETE, SQL_POSITIONED_UPDATE]. * Valid SQL positioned commands are described under `arrow.flight.protocol.sql.SqlSupportedPositionedCommands`. */ SQL_SUPPORTED_POSITIONED_COMMANDS = 535; /* * 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. */ SQL_SELECT_FOR_UPDATE_SUPPORTED = 536; /* * 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. */ SQL_STORED_PROCEDURES_SUPPORTED = 537; /* * Retrieves the supported SQL subqueries. * * 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 (\b0) => [] (no supported SQL subqueries); * - return 1 (\b1) => [SQL_SUBQUERIES_IN_COMPARISONS]; * - return 2 (\b10) => [SQL_SUBQUERIES_IN_EXISTS]; * - return 3 (\b11) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS]; * - return 4 (\b100) => [SQL_SUBQUERIES_IN_INS]; * - return 5 (\b101) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_INS]; * - return 6 (\b110) => [SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_EXISTS]; * - return 7 (\b111) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS]; * - return 8 (\b1000) => [SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 9 (\b1001) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 10 (\b1010) => [SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 11 (\b1011) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 12 (\b1100) => [SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 13 (\b1101) => [SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 14 (\b1110) => [SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS]; * - return 15 (\b1111) => [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`. */ SQL_SUPPORTED_SUBQUERIES = 538; /* * Retrieves a boolean value indicating whether correlated subqueries are supported. * * Returns: * - false: if correlated subqueries are unsupported; * - true: if correlated subqueries are supported. */ SQL_CORRELATED_SUBQUERIES_SUPPORTED = 539; /* * Retrieves the supported SQL UNIONs. * * 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 (\b0) => [] (no supported SQL positioned commands); * - return 1 (\b1) => [SQL_UNION]; * - return 2 (\b10) => [SQL_UNION_ALL]; * - return 3 (\b11) => [SQL_UNION, SQL_UNION_ALL]. * Valid SQL positioned commands are described under `arrow.flight.protocol.sql.SqlSupportedUnions`. */ SQL_SUPPORTED_UNIONS = 540; // Retrieves a int64 value representing the maximum number of hex characters allowed in an inline binary literal. SQL_MAX_BINARY_LITERAL_LENGTH = 541; // Retrieves a int64 value representing the maximum number of characters allowed for a character literal. SQL_MAX_CHAR_LITERAL_LENGTH = 542; // Retrieves a int64 value representing the maximum number of characters allowed for a column name. SQL_MAX_COLUMN_NAME_LENGTH = 543; // Retrieves a int64 value representing the the maximum number of columns allowed in a GROUP BY clause. SQL_MAX_COLUMNS_IN_GROUP_BY = 544; // Retrieves a int64 value representing the maximum number of columns allowed in an index. SQL_MAX_COLUMNS_IN_INDEX = 545; // Retrieves a int64 value representing the maximum number of columns allowed in an ORDER BY clause. SQL_MAX_COLUMNS_IN_ORDER_BY = 546; // Retrieves a int64 value representing the maximum number of columns allowed in a SELECT list. SQL_MAX_COLUMNS_IN_SELECT = 547; // Retrieves a int64 value representing the maximum number of columns allowed in a table. SQL_MAX_COLUMNS_IN_TABLE = 548; // Retrieves a int64 value representing the maximum number of concurrent connections possible. SQL_MAX_CONNECTIONS = 549; // Retrieves a int64 value the maximum number of characters allowed in a cursor name. SQL_MAX_CURSOR_NAME_LENGTH = 550; /* * Retrieves a int64 value representing the maximum number of bytes allowed for an index, * including all of the parts of the index. */ SQL_MAX_INDEX_LENGTH = 551; // Retrieves a int64 value representing the maximum number of characters allowed in a schema name. SQL_DB_SCHEMA_NAME_LENGTH = 552; // Retrieves a int64 value representing the maximum number of characters allowed in a procedure name. SQL_MAX_PROCEDURE_NAME_LENGTH = 553; // Retrieves a int64 value representing the maximum number of characters allowed in a catalog name. SQL_MAX_CATALOG_NAME_LENGTH = 554; // Retrieves a int64 value representing the maximum number of bytes allowed in a single row. SQL_MAX_ROW_SIZE = 555; /* * 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. */ SQL_MAX_ROW_SIZE_INCLUDES_BLOBS = 556; /* * Retrieves a int64 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. */ SQL_MAX_STATEMENT_LENGTH = 557; // Retrieves a int64 value representing the maximum number of active statements that can be open at the same time. SQL_MAX_STATEMENTS = 558; // Retrieves a int64 value representing the maximum number of characters allowed in a table name. SQL_MAX_TABLE_NAME_LENGTH = 559; // Retrieves a int64 value representing the maximum number of tables allowed in a SELECT statement. SQL_MAX_TABLES_IN_SELECT = 560; // Retrieves a int64 value representing the maximum number of characters allowed in a user name. SQL_MAX_USERNAME_LENGTH = 561; /* * 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. */ SQL_DEFAULT_TRANSACTION_ISOLATION = 562; /* * 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. */ SQL_TRANSACTIONS_SUPPORTED = 563; /* * Retrieves the supported transactions isolation levels. * * 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 (\b0) => [] (no supported SQL transactions isolation levels); * - return 1 (\b1) => [SQL_TRANSACTION_NONE]; * - return 2 (\b10) => [SQL_TRANSACTION_READ_UNCOMMITTED]; * - return 3 (\b11) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED]; * - return 4 (\b100) => [SQL_TRANSACTION_REPEATABLE_READ]; * - return 5 (\b101) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ]; * - return 6 (\b110) => [SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ]; * - return 7 (\b111) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ]; * - return 8 (\b1000) => [SQL_TRANSACTION_REPEATABLE_READ]; * - return 9 (\b1001) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ]; * - return 10 (\b1010) => [SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ]; * - return 11 (\b1011) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ]; * - return 12 (\b1100) => [SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ]; * - return 13 (\b1101) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ]; * - return 14 (\b1110) => [SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ]; * - return 15 (\b1111) => [SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ, SQL_TRANSACTION_REPEATABLE_READ]; * - return 16 (\b10000) => [SQL_TRANSACTION_SERIALIZABLE]; * - ... * Valid SQL positioned commands are described under `arrow.flight.protocol.sql.SqlTransactionIsolationLevel`. */ SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS = 564; /* * 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. */ SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT = 565; /* * 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. */ SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED = 566; /* * 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 (\b0) => [] (no supported result set types); * - return 1 (\b1) => [SQL_RESULT_SET_TYPE_UNSPECIFIED]; * - return 2 (\b10) => [SQL_RESULT_SET_TYPE_FORWARD_ONLY]; * - return 3 (\b11) => [SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_FORWARD_ONLY]; * - return 4 (\b100) => [SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE]; * - return 5 (\b101) => [SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE]; * - return 6 (\b110) => [SQL_RESULT_SET_TYPE_FORWARD_ONLY, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE]; * - return 7 (\b111) => [SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_FORWARD_ONLY, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE]; * - return 8 (\b1000) => [SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE]; * - ... * Valid result set types are described under `arrow.flight.protocol.sql.SqlSupportedResultSetType`. */ SQL_SUPPORTED_RESULT_SET_TYPES = 567; /* * Returns an int32 bitmask value concurrency types supported for * `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_UNSPECIFIED`. * * For instance: * - return 0 (\b0) => [] (no supported concurrency types for this result set type) * - return 1 (\b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED] * - return 2 (\b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 3 (\b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 4 (\b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 5 (\b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 6 (\b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 7 (\b111) => [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`. */ SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED = 568; /* * Returns an int32 bitmask value concurrency types supported for * `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_FORWARD_ONLY`. * * For instance: * - return 0 (\b0) => [] (no supported concurrency types for this result set type) * - return 1 (\b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED] * - return 2 (\b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 3 (\b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 4 (\b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 5 (\b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 6 (\b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 7 (\b111) => [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`. */ SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY = 569; /* * Returns an int32 bitmask value concurrency types supported for * `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE`. * * For instance: * - return 0 (\b0) => [] (no supported concurrency types for this result set type) * - return 1 (\b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED] * - return 2 (\b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 3 (\b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 4 (\b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 5 (\b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 6 (\b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 7 (\b111) => [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`. */ SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE = 570; /* * Returns an int32 bitmask value concurrency types supported for * `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE`. * * For instance: * - return 0 (\b0) => [] (no supported concurrency types for this result set type) * - return 1 (\b1) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED] * - return 2 (\b10) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 3 (\b11) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY] * - return 4 (\b100) => [SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 5 (\b101) => [SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 6 (\b110) => [SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE] * - return 7 (\b111) => [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`. */ SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE = 571; /* * 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. */ SQL_BATCH_UPDATES_SUPPORTED = 572; /* * 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. */ SQL_SAVEPOINTS_SUPPORTED = 573; /* * 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. */ SQL_NAMED_PARAMETERS_SUPPORTED = 574; /* * 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. */ SQL_LOCATORS_UPDATE_COPY = 575; /* * 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. */ SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED = 576; } enum SqlSupportedCaseSensitivity { SQL_CASE_SENSITIVITY_UNKNOWN = 0; SQL_CASE_SENSITIVITY_CASE_INSENSITIVE = 1; SQL_CASE_SENSITIVITY_UPPERCASE = 2; SQL_CASE_SENSITIVITY_LOWERCASE = 3; } enum SqlNullOrdering { SQL_NULLS_SORTED_HIGH = 0; SQL_NULLS_SORTED_LOW = 1; SQL_NULLS_SORTED_AT_START = 2; SQL_NULLS_SORTED_AT_END = 3; } enum SupportedSqlGrammar { SQL_MINIMUM_GRAMMAR = 0; SQL_CORE_GRAMMAR = 1; SQL_EXTENDED_GRAMMAR = 2; } enum SupportedAnsi92SqlGrammarLevel { ANSI92_ENTRY_SQL = 0; ANSI92_INTERMEDIATE_SQL = 1; ANSI92_FULL_SQL = 2; } enum SqlOuterJoinsSupportLevel { SQL_JOINS_UNSUPPORTED = 0; SQL_LIMITED_OUTER_JOINS = 1; SQL_FULL_OUTER_JOINS = 2; } enum SqlSupportedGroupBy { SQL_GROUP_BY_UNRELATED = 0; SQL_GROUP_BY_BEYOND_SELECT = 1; } enum SqlSupportedElementActions { SQL_ELEMENT_IN_PROCEDURE_CALLS = 0; SQL_ELEMENT_IN_INDEX_DEFINITIONS = 1; SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS = 2; } enum SqlSupportedPositionedCommands { SQL_POSITIONED_DELETE = 0; SQL_POSITIONED_UPDATE = 1; } enum SqlSupportedSubqueries { SQL_SUBQUERIES_IN_COMPARISONS = 0; SQL_SUBQUERIES_IN_EXISTS = 1; SQL_SUBQUERIES_IN_INS = 2; SQL_SUBQUERIES_IN_QUANTIFIEDS = 3; } enum SqlSupportedUnions { SQL_UNION = 0; SQL_UNION_ALL = 1; } enum SqlTransactionIsolationLevel { SQL_TRANSACTION_NONE = 0; SQL_TRANSACTION_READ_UNCOMMITTED = 1; SQL_TRANSACTION_READ_COMMITTED = 2; SQL_TRANSACTION_REPEATABLE_READ = 3; SQL_TRANSACTION_SERIALIZABLE = 4; } enum SqlSupportedTransactions { SQL_TRANSACTION_UNSPECIFIED = 0; SQL_DATA_DEFINITION_TRANSACTIONS = 1; SQL_DATA_MANIPULATION_TRANSACTIONS = 2; } enum SqlSupportedResultSetType { SQL_RESULT_SET_TYPE_UNSPECIFIED = 0; SQL_RESULT_SET_TYPE_FORWARD_ONLY = 1; SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE = 2; SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE = 3; } enum SqlSupportedResultSetConcurrency { SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED = 0; SQL_RESULT_SET_CONCURRENCY_READ_ONLY = 1; SQL_RESULT_SET_CONCURRENCY_UPDATABLE = 2; } enum SqlSupportsConvert { SQL_CONVERT_BIGINT = 0; SQL_CONVERT_BINARY = 1; SQL_CONVERT_BIT = 2; SQL_CONVERT_CHAR = 3; SQL_CONVERT_DATE = 4; SQL_CONVERT_DECIMAL = 5; SQL_CONVERT_FLOAT = 6; SQL_CONVERT_INTEGER = 7; SQL_CONVERT_INTERVAL_DAY_TIME = 8; SQL_CONVERT_INTERVAL_YEAR_MONTH = 9; SQL_CONVERT_LONGVARBINARY = 10; SQL_CONVERT_LONGVARCHAR = 11; SQL_CONVERT_NUMERIC = 12; SQL_CONVERT_REAL = 13; SQL_CONVERT_SMALLINT = 14; SQL_CONVERT_TIME = 15; SQL_CONVERT_TIMESTAMP = 16; SQL_CONVERT_TINYINT = 17; SQL_CONVERT_VARBINARY = 18; SQL_CONVERT_VARCHAR = 19; } /** * The JDBC/ODBC-defined type of any object. * All the values here are the sames as in the JDBC and ODBC specs. */ enum XdbcDataType { XDBC_UNKNOWN_TYPE = 0; XDBC_CHAR = 1; XDBC_NUMERIC = 2; XDBC_DECIMAL = 3; XDBC_INTEGER = 4; XDBC_SMALLINT = 5; XDBC_FLOAT = 6; XDBC_REAL = 7; XDBC_DOUBLE = 8; XDBC_DATETIME = 9; XDBC_INTERVAL = 10; XDBC_VARCHAR = 12; XDBC_DATE = 91; XDBC_TIME = 92; XDBC_TIMESTAMP = 93; XDBC_LONGVARCHAR = -1; XDBC_BINARY = -2; XDBC_VARBINARY = -3; XDBC_LONGVARBINARY = -4; XDBC_BIGINT = -5; XDBC_TINYINT = -6; XDBC_BIT = -7; XDBC_WCHAR = -8; XDBC_WVARCHAR = -9; } /** * Detailed subtype information for XDBC_TYPE_DATETIME and XDBC_TYPE_INTERVAL. */ enum XdbcDatetimeSubcode { option allow_alias = true; XDBC_SUBCODE_UNKNOWN = 0; XDBC_SUBCODE_YEAR = 1; XDBC_SUBCODE_DATE = 1; XDBC_SUBCODE_TIME = 2; XDBC_SUBCODE_MONTH = 2; XDBC_SUBCODE_TIMESTAMP = 3; XDBC_SUBCODE_DAY = 3; XDBC_SUBCODE_TIME_WITH_TIMEZONE = 4; XDBC_SUBCODE_HOUR = 4; XDBC_SUBCODE_TIMESTAMP_WITH_TIMEZONE = 5; XDBC_SUBCODE_MINUTE = 5; XDBC_SUBCODE_SECOND = 6; XDBC_SUBCODE_YEAR_TO_MONTH = 7; XDBC_SUBCODE_DAY_TO_HOUR = 8; XDBC_SUBCODE_DAY_TO_MINUTE = 9; XDBC_SUBCODE_DAY_TO_SECOND = 10; XDBC_SUBCODE_HOUR_TO_MINUTE = 11; XDBC_SUBCODE_HOUR_TO_SECOND = 12; XDBC_SUBCODE_MINUTE_TO_SECOND = 13; XDBC_SUBCODE_INTERVAL_YEAR = 101; XDBC_SUBCODE_INTERVAL_MONTH = 102; XDBC_SUBCODE_INTERVAL_DAY = 103; XDBC_SUBCODE_INTERVAL_HOUR = 104; XDBC_SUBCODE_INTERVAL_MINUTE = 105; XDBC_SUBCODE_INTERVAL_SECOND = 106; XDBC_SUBCODE_INTERVAL_YEAR_TO_MONTH = 107; XDBC_SUBCODE_INTERVAL_DAY_TO_HOUR = 108; XDBC_SUBCODE_INTERVAL_DAY_TO_MINUTE = 109; XDBC_SUBCODE_INTERVAL_DAY_TO_SECOND = 110; XDBC_SUBCODE_INTERVAL_HOUR_TO_MINUTE = 111; XDBC_SUBCODE_INTERVAL_HOUR_TO_SECOND = 112; XDBC_SUBCODE_INTERVAL_MINUTE_TO_SECOND = 113; } enum Nullable { /** * Indicates that the fields does not allow the use of null values. */ NULLABILITY_NO_NULLS = 0; /** * Indicates that the fields allow the use of null values. */ NULLABILITY_NULLABLE = 1; /** * Indicates that nullability of the fields can not be determined. */ NULLABILITY_UNKNOWN = 2; } enum Searchable { /** * Indicates that column can not be used in a WHERE clause. */ SEARCHABLE_NONE = 0; /** * Indicates that the column can be used in a WHERE clause if it is using a * LIKE operator. */ SEARCHABLE_CHAR = 1; /** * Indicates that the column can be used In a WHERE clause with any * operator other than LIKE. * * - Allowed operators: comparison, quantified comparison, BETWEEN, * DISTINCT, IN, MATCH, and UNIQUE. */ SEARCHABLE_BASIC = 2; /** * Indicates that the column can be used in a WHERE clause using any operator. */ SEARCHABLE_FULL = 3; } /* * Represents a request to retrieve information about data type supported on a Flight SQL enabled backend. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned schema will be: * < * type_name: utf8 not null (The name of the data type, for example: VARCHAR, INTEGER, etc), * data_type: int not null (The SQL data type), * column_size: int (The maximum size supported by that column. * In case of exact numeric types, this represents the maximum precision. * In case of string types, this represents the character length. * In case of datetime data types, this represents the length in characters of the string representation. * NULL is returned for data types where column size is not applicable.), * literal_prefix: utf8 (Character or characters used to prefix a literal, NULL is returned for * data types where a literal prefix is not applicable.), * literal_suffix: utf8 (Character or characters used to terminate a literal, * NULL is returned for data types where a literal suffix is not applicable.), * create_params: list * (A list of keywords corresponding to which parameters can be used when creating * a column for that specific type. * NULL is returned if there are no parameters for the data type definition.), * nullable: int not null (Shows if the data type accepts a NULL value. The possible values can be seen in the * Nullable enum.), * case_sensitive: bool not null (Shows if a character data type is case-sensitive in collations and comparisons), * searchable: int not null (Shows how the data type is used in a WHERE clause. The possible values can be seen in the * Searchable enum.), * unsigned_attribute: bool (Shows if the data type is unsigned. NULL is returned if the attribute is * not applicable to the data type or the data type is not numeric.), * fixed_prec_scale: bool not null (Shows if the data type has predefined fixed precision and scale.), * auto_increment: bool (Shows if the data type is auto incremental. NULL is returned if the attribute * is not applicable to the data type or the data type is not numeric.), * local_type_name: utf8 (Localized version of the data source-dependent name of the data type. NULL * is returned if a localized name is not supported by the data source), * minimum_scale: int (The minimum scale of the data type on the data source. * If a data type has a fixed scale, the MINIMUM_SCALE and MAXIMUM_SCALE * columns both contain this value. NULL is returned if scale is not applicable.), * maximum_scale: int (The maximum scale of the data type on the data source. * NULL is returned if scale is not applicable.), * sql_data_type: int not null (The value of the SQL DATA TYPE which has the same values * as data_type value. Except for interval and datetime, which * uses generic values. More info about those types can be * obtained through datetime_subcode. The possible values can be seen * in the XdbcDataType enum.), * datetime_subcode: int (Only used when the SQL DATA TYPE is interval or datetime. It contains * its sub types. For type different from interval and datetime, this value * is NULL. The possible values can be seen in the XdbcDatetimeSubcode enum.), * num_prec_radix: int (If the data type is an approximate numeric type, this column contains * the value 2 to indicate that COLUMN_SIZE specifies a number of bits. For * exact numeric types, this column contains the value 10 to indicate that * column size specifies a number of decimal digits. Otherwise, this column is NULL.), * interval_precision: int (If the data type is an interval data type, then this column contains the value * of the interval leading precision. Otherwise, this column is NULL. This fields * is only relevant to be used by ODBC). * > * The returned data should be ordered by data_type and then by type_name. */ message CommandGetXdbcTypeInfo { option (experimental) = true; /* * Specifies the data type to search for the info. */ optional int32 data_type = 1; } /* * Represents a request to retrieve the list of catalogs on a Flight SQL enabled backend. * The definition of a catalog depends on vendor/implementation. It is usually the database itself * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * catalog_name: utf8 not null * > * The returned data should be ordered by catalog_name. */ message CommandGetCatalogs { option (experimental) = true; } /* * Represents a request to retrieve the list of database schemas on a Flight SQL enabled backend. * The definition of a database schema depends on vendor/implementation. It is usually a collection of tables. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * catalog_name: utf8, * db_schema_name: utf8 not null * > * The returned data should be ordered by catalog_name, then db_schema_name. */ message CommandGetDbSchemas { option (experimental) = true; /* * Specifies the Catalog to search for the tables. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string catalog = 1; /* * Specifies a filter pattern for schemas to search for. * When no db_schema_filter_pattern is provided, the pattern will not be used to narrow the search. * In the pattern string, two special characters can be used to denote matching rules: * - "%" means to match any substring with 0 or more characters. * - "_" means to match any one character. */ optional string db_schema_filter_pattern = 2; } /* * Represents a request to retrieve the list of tables, and optionally their schemas, on a Flight SQL enabled backend. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * catalog_name: utf8, * db_schema_name: utf8, * table_name: utf8 not null, * table_type: utf8 not null, * [optional] table_schema: bytes not null (schema of the table as described in Schema.fbs::Schema, * it is serialized as an IPC message.) * > * Fields on table_schema may contain the following metadata: * - ARROW:FLIGHT:SQL:CATALOG_NAME - Table's catalog name * - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME - Database schema name * - ARROW:FLIGHT:SQL:TABLE_NAME - Table name * - ARROW:FLIGHT:SQL:PRECISION - Column precision/size * - ARROW:FLIGHT:SQL:SCALE - Column scale/decimal digits if applicable * - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case sensitive, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_READ_ONLY - "1" indicates if the column is read only, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_SEARCHABLE - "1" indicates if the column is searchable via WHERE clause, "0" otherwise. * The returned data should be ordered by catalog_name, db_schema_name, table_name, then table_type, followed by table_schema if requested. */ message CommandGetTables { option (experimental) = true; /* * Specifies the Catalog to search for the tables. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string catalog = 1; /* * Specifies a filter pattern for schemas to search for. * When no db_schema_filter_pattern is provided, all schemas matching other filters are searched. * In the pattern string, two special characters can be used to denote matching rules: * - "%" means to match any substring with 0 or more characters. * - "_" means to match any one character. */ optional string db_schema_filter_pattern = 2; /* * Specifies a filter pattern for tables to search for. * When no table_name_filter_pattern is provided, all tables matching other filters are searched. * In the pattern string, two special characters can be used to denote matching rules: * - "%" means to match any substring with 0 or more characters. * - "_" means to match any one character. */ optional string table_name_filter_pattern = 3; /* * Specifies a filter of table types which must match. * The table types depend on vendor/implementation. It is usually used to separate tables from views or system tables. * TABLE, VIEW, and SYSTEM TABLE are commonly supported. */ repeated string table_types = 4; // Specifies if the Arrow schema should be returned for found tables. bool include_schema = 5; } /* * Represents a request to retrieve the list of table types on a Flight SQL enabled backend. * The table types depend on vendor/implementation. It is usually used to separate tables from views or system tables. * TABLE, VIEW, and SYSTEM TABLE are commonly supported. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * table_type: utf8 not null * > * The returned data should be ordered by table_type. */ message CommandGetTableTypes { option (experimental) = true; } /* * Represents a request to retrieve the primary keys of a table on a Flight SQL enabled backend. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * catalog_name: utf8, * db_schema_name: utf8, * table_name: utf8 not null, * column_name: utf8 not null, * key_name: utf8, * key_sequence: int not null * > * The returned data should be ordered by catalog_name, db_schema_name, table_name, key_name, then key_sequence. */ message CommandGetPrimaryKeys { option (experimental) = true; /* * Specifies the catalog to search for the table. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string catalog = 1; /* * Specifies the schema to search for the table. * An empty string retrieves those without a schema. * If omitted the schema name should not be used to narrow the search. */ optional string db_schema = 2; // Specifies the table to get the primary keys for. string table = 3; } enum UpdateDeleteRules { CASCADE = 0; RESTRICT = 1; SET_NULL = 2; NO_ACTION = 3; SET_DEFAULT = 4; } /* * Represents a request to retrieve a description of the foreign key columns that reference the given table's * primary key columns (the foreign keys exported by a table) of a table on a Flight SQL enabled backend. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * pk_catalog_name: utf8, * pk_db_schema_name: utf8, * pk_table_name: utf8 not null, * pk_column_name: utf8 not null, * fk_catalog_name: utf8, * fk_db_schema_name: utf8, * fk_table_name: utf8 not null, * fk_column_name: utf8 not null, * key_sequence: int not null, * fk_key_name: utf8, * pk_key_name: utf8, * update_rule: uint1 not null, * delete_rule: uint1 not null * > * The returned data should be ordered by fk_catalog_name, fk_db_schema_name, fk_table_name, fk_key_name, then key_sequence. * update_rule and delete_rule returns a byte that is equivalent to actions declared on UpdateDeleteRules enum. */ message CommandGetExportedKeys { option (experimental) = true; /* * Specifies the catalog to search for the foreign key table. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string catalog = 1; /* * Specifies the schema to search for the foreign key table. * An empty string retrieves those without a schema. * If omitted the schema name should not be used to narrow the search. */ optional string db_schema = 2; // Specifies the foreign key table to get the foreign keys for. string table = 3; } /* * Represents a request to retrieve the foreign keys of a table on a Flight SQL enabled backend. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * pk_catalog_name: utf8, * pk_db_schema_name: utf8, * pk_table_name: utf8 not null, * pk_column_name: utf8 not null, * fk_catalog_name: utf8, * fk_db_schema_name: utf8, * fk_table_name: utf8 not null, * fk_column_name: utf8 not null, * key_sequence: int not null, * fk_key_name: utf8, * pk_key_name: utf8, * update_rule: uint1 not null, * delete_rule: uint1 not null * > * The returned data should be ordered by pk_catalog_name, pk_db_schema_name, pk_table_name, pk_key_name, then key_sequence. * update_rule and delete_rule returns a byte that is equivalent to actions: * - 0 = CASCADE * - 1 = RESTRICT * - 2 = SET NULL * - 3 = NO ACTION * - 4 = SET DEFAULT */ message CommandGetImportedKeys { option (experimental) = true; /* * Specifies the catalog to search for the primary key table. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string catalog = 1; /* * Specifies the schema to search for the primary key table. * An empty string retrieves those without a schema. * If omitted the schema name should not be used to narrow the search. */ optional string db_schema = 2; // Specifies the primary key table to get the foreign keys for. string table = 3; } /* * Represents a request to retrieve 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) on a Flight SQL enabled backend. * Used in the command member of FlightDescriptor for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * - GetFlightInfo: execute the catalog metadata request. * * The returned Arrow schema will be: * < * pk_catalog_name: utf8, * pk_db_schema_name: utf8, * pk_table_name: utf8 not null, * pk_column_name: utf8 not null, * fk_catalog_name: utf8, * fk_db_schema_name: utf8, * fk_table_name: utf8 not null, * fk_column_name: utf8 not null, * key_sequence: int not null, * fk_key_name: utf8, * pk_key_name: utf8, * update_rule: uint1 not null, * delete_rule: uint1 not null * > * The returned data should be ordered by pk_catalog_name, pk_db_schema_name, pk_table_name, pk_key_name, then key_sequence. * update_rule and delete_rule returns a byte that is equivalent to actions: * - 0 = CASCADE * - 1 = RESTRICT * - 2 = SET NULL * - 3 = NO ACTION * - 4 = SET DEFAULT */ message CommandGetCrossReference { option (experimental) = true; /** * The catalog name where the parent table is. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string pk_catalog = 1; /** * The Schema name where the parent table is. * An empty string retrieves those without a schema. * If omitted the schema name should not be used to narrow the search. */ optional string pk_db_schema = 2; /** * The parent table name. It cannot be null. */ string pk_table = 3; /** * The catalog name where the foreign table is. * An empty string retrieves those without a catalog. * If omitted the catalog name should not be used to narrow the search. */ optional string fk_catalog = 4; /** * The schema name where the foreign table is. * An empty string retrieves those without a schema. * If omitted the schema name should not be used to narrow the search. */ optional string fk_db_schema = 5; /** * The foreign table name. It cannot be null. */ string fk_table = 6; } // SQL Execution Action Messages /* * Request message for the "CreatePreparedStatement" action on a Flight SQL enabled backend. */ message ActionCreatePreparedStatementRequest { option (experimental) = true; // The valid SQL string to create a prepared statement for. string query = 1; } /* * Wrap the result of a "GetPreparedStatement" action. * * The resultant PreparedStatement can be closed either: * - Manually, through the "ClosePreparedStatement" action; * - Automatically, by a server timeout. */ message ActionCreatePreparedStatementResult { option (experimental) = true; // Opaque handle for the prepared statement on the server. bytes prepared_statement_handle = 1; // If a result set generating query was provided, dataset_schema contains the // schema of the dataset as described in Schema.fbs::Schema, it is serialized as an IPC message. bytes dataset_schema = 2; // If the query provided contained parameters, parameter_schema contains the // schema of the expected parameters as described in Schema.fbs::Schema, it is serialized as an IPC message. bytes parameter_schema = 3; } /* * Request message for the "ClosePreparedStatement" action on a Flight SQL enabled backend. * Closes server resources associated with the prepared statement handle. */ message ActionClosePreparedStatementRequest { option (experimental) = true; // Opaque handle for the prepared statement on the server. bytes prepared_statement_handle = 1; } // SQL Execution Messages. /* * Represents a SQL query. Used in the command member of FlightDescriptor * for the following RPC calls: * - GetSchema: return the Arrow schema of the query. * Fields on this schema may contain the following metadata: * - ARROW:FLIGHT:SQL:CATALOG_NAME - Table's catalog name * - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME - Database schema name * - ARROW:FLIGHT:SQL:TABLE_NAME - Table name * - ARROW:FLIGHT:SQL:PRECISION - Column precision/size * - ARROW:FLIGHT:SQL:SCALE - Column scale/decimal digits if applicable * - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case sensitive, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_READ_ONLY - "1" indicates if the column is read only, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_SEARCHABLE - "1" indicates if the column is searchable via WHERE clause, "0" otherwise. * - GetFlightInfo: execute the query. */ message CommandStatementQuery { option (experimental) = true; // The SQL syntax. string query = 1; } /** * Represents a ticket resulting from GetFlightInfo with a CommandStatementQuery. * This should be used only once and treated as an opaque value, that is, clients should not attempt to parse this. */ message TicketStatementQuery { option (experimental) = true; // Unique identifier for the instance of the statement to execute. bytes statement_handle = 1; } /* * Represents an instance of executing a prepared statement. Used in the command member of FlightDescriptor for * the following RPC calls: * - GetSchema: return the Arrow schema of the query. * Fields on this schema may contain the following metadata: * - ARROW:FLIGHT:SQL:CATALOG_NAME - Table's catalog name * - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME - Database schema name * - ARROW:FLIGHT:SQL:TABLE_NAME - Table name * - ARROW:FLIGHT:SQL:PRECISION - Column precision/size * - ARROW:FLIGHT:SQL:SCALE - Column scale/decimal digits if applicable * - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case sensitive, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_READ_ONLY - "1" indicates if the column is read only, "0" otherwise. * - ARROW:FLIGHT:SQL:IS_SEARCHABLE - "1" indicates if the column is searchable via WHERE clause, "0" otherwise. * - DoPut: bind parameter values. All of the bound parameter sets will be executed as a single atomic execution. * - GetFlightInfo: execute the prepared statement instance. */ message CommandPreparedStatementQuery { option (experimental) = true; // Opaque handle for the prepared statement on the server. bytes prepared_statement_handle = 1; } /* * Represents a SQL update query. Used in the command member of FlightDescriptor * for the the RPC call DoPut to cause the server to execute the included SQL update. */ message CommandStatementUpdate { option (experimental) = true; // The SQL syntax. string query = 1; } /* * Represents a SQL update query. Used in the command member of FlightDescriptor * for the the RPC call DoPut to cause the server to execute the included * prepared statement handle as an update. */ message CommandPreparedStatementUpdate { option (experimental) = true; // Opaque handle for the prepared statement on the server. bytes prepared_statement_handle = 1; } /* * Returned from the RPC call DoPut when a CommandStatementUpdate * CommandPreparedStatementUpdate was in the request, containing * results from the update. */ message DoPutUpdateResult { option (experimental) = true; // The number of records updated. A return value of -1 represents // an unknown updated record count. int64 record_count = 1; } extend google.protobuf.MessageOptions { bool experimental = 1000; }