Skip to main content

arrow_flight/sql/
arrow.flight.protocol.sql.rs

1// This file was automatically generated through the build.rs script, and should not be edited.
2
3// This file is @generated by prost-build.
4///
5/// Represents a metadata request. Used in the command member of FlightDescriptor
6/// for the following RPC calls:
7///   - GetSchema: return the Arrow schema of the query.
8///   - GetFlightInfo: execute the metadata request.
9///
10/// The returned Arrow schema will be:
11/// <
12///   info_name: uint32 not null,
13///   value: dense_union<
14///               string_value: utf8,
15///               bool_value: bool,
16///               bigint_value: int64,
17///               int32_bitmask: int32,
18///               string_list: list<string_data: utf8>
19///               int32_to_int32_list_map: map<key: int32, value: list<$data$: int32>>
20/// >
21/// where there is one row per requested piece of metadata information.
22#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
23pub struct CommandGetSqlInfo {
24    ///
25    /// Values are modelled after ODBC's SQLGetInfo() function. This information is intended to provide
26    /// Flight SQL clients with basic, SQL syntax and SQL functions related information.
27    /// More information types can be added in future releases.
28    /// E.g. more SQL syntax support types, scalar functions support, type conversion support etc.
29    ///
30    /// Note that the set of metadata may expand.
31    ///
32    /// Initially, Flight SQL will support the following information types:
33    /// - Server Information - Range [0-500)
34    /// - Syntax Information - Range [500-1000)
35    /// Range [0-10,000) is reserved for defaults (see SqlInfo enum for default options).
36    /// Custom options should start at 10,000.
37    ///
38    /// If omitted, then all metadata will be retrieved.
39    /// Flight SQL Servers may choose to include additional metadata above and beyond the specified set, however they must
40    /// at least return the specified set. IDs ranging from 0 to 10,000 (exclusive) are reserved for future use.
41    /// If additional metadata is included, the metadata IDs should start from 10,000.
42    #[prost(uint32, repeated, tag = "1")]
43    pub info: ::prost::alloc::vec::Vec<u32>,
44}
45///
46/// Represents a request to retrieve information about data type supported on a Flight SQL enabled backend.
47/// Used in the command member of FlightDescriptor for the following RPC calls:
48///   - GetSchema: return the schema of the query.
49///   - GetFlightInfo: execute the catalog metadata request.
50///
51/// The returned schema will be:
52/// <
53///    type_name: utf8 not null (The name of the data type, for example: VARCHAR, INTEGER, etc),
54///    data_type: int32 not null (The SQL data type),
55///    column_size: int32 (The maximum size supported by that column.
56///                        In case of exact numeric types, this represents the maximum precision.
57///                        In case of string types, this represents the character length.
58///                        In case of datetime data types, this represents the length in characters of the string representation.
59///                        NULL is returned for data types where column size is not applicable.),
60///    literal_prefix: utf8 (Character or characters used to prefix a literal, NULL is returned for
61///                          data types where a literal prefix is not applicable.),
62///    literal_suffix: utf8 (Character or characters used to terminate a literal,
63///                          NULL is returned for data types where a literal suffix is not applicable.),
64///    create_params: list<utf8 not null>
65///                         (A list of keywords corresponding to which parameters can be used when creating
66///                          a column for that specific type.
67///                          NULL is returned if there are no parameters for the data type definition.),
68///    nullable: int32 not null (Shows if the data type accepts a NULL value. The possible values can be seen in the
69///                              Nullable enum.),
70///    case_sensitive: bool not null (Shows if a character data type is case-sensitive in collations and comparisons),
71///    searchable: int32 not null (Shows how the data type is used in a WHERE clause. The possible values can be seen in the
72///                                Searchable enum.),
73///    unsigned_attribute: bool (Shows if the data type is unsigned. NULL is returned if the attribute is
74///                              not applicable to the data type or the data type is not numeric.),
75///    fixed_prec_scale: bool not null (Shows if the data type has predefined fixed precision and scale.),
76///    auto_increment: bool (Shows if the data type is auto incremental. NULL is returned if the attribute
77///                          is not applicable to the data type or the data type is not numeric.),
78///    local_type_name: utf8 (Localized version of the data source-dependent name of the data type. NULL
79///                           is returned if a localized name is not supported by the data source),
80///    minimum_scale: int32 (The minimum scale of the data type on the data source.
81///                          If a data type has a fixed scale, the MINIMUM_SCALE and MAXIMUM_SCALE
82///                          columns both contain this value. NULL is returned if scale is not applicable.),
83///    maximum_scale: int32 (The maximum scale of the data type on the data source.
84///                          NULL is returned if scale is not applicable.),
85///    sql_data_type: int32 not null (The value of the SQL DATA TYPE which has the same values
86///                                   as data_type value. Except for interval and datetime, which
87///                                   uses generic values. More info about those types can be
88///                                   obtained through datetime_subcode. The possible values can be seen
89///                                   in the XdbcDataType enum.),
90///    datetime_subcode: int32 (Only used when the SQL DATA TYPE is interval or datetime. It contains
91///                             its sub types. For type different from interval and datetime, this value
92///                             is NULL. The possible values can be seen in the XdbcDatetimeSubcode enum.),
93///    num_prec_radix: int32 (If the data type is an approximate numeric type, this column contains
94///                           the value 2 to indicate that COLUMN_SIZE specifies a number of bits. For
95///                           exact numeric types, this column contains the value 10 to indicate that
96///                           column size specifies a number of decimal digits. Otherwise, this column is NULL.),
97///    interval_precision: int32 (If the data type is an interval data type, then this column contains the value
98///                               of the interval leading precision. Otherwise, this column is NULL. This fields
99///                               is only relevant to be used by ODBC).
100/// >
101/// The returned data should be ordered by data_type and then by type_name.
102#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
103pub struct CommandGetXdbcTypeInfo {
104    ///
105    /// Specifies the data type to search for the info.
106    #[prost(int32, optional, tag = "1")]
107    pub data_type: ::core::option::Option<i32>,
108}
109///
110/// Represents a request to retrieve the list of catalogs on a Flight SQL enabled backend.
111/// The definition of a catalog depends on vendor/implementation. It is usually the database itself
112/// Used in the command member of FlightDescriptor for the following RPC calls:
113///   - GetSchema: return the Arrow schema of the query.
114///   - GetFlightInfo: execute the catalog metadata request.
115///
116/// The returned Arrow schema will be:
117/// <
118///   catalog_name: utf8 not null
119/// >
120/// The returned data should be ordered by catalog_name.
121#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
122pub struct CommandGetCatalogs {}
123///
124/// Represents a request to retrieve the list of database schemas on a Flight SQL enabled backend.
125/// The definition of a database schema depends on vendor/implementation. It is usually a collection of tables.
126/// Used in the command member of FlightDescriptor for the following RPC calls:
127///   - GetSchema: return the Arrow schema of the query.
128///   - GetFlightInfo: execute the catalog metadata request.
129///
130/// The returned Arrow schema will be:
131/// <
132///   catalog_name: utf8,
133///   db_schema_name: utf8 not null
134/// >
135/// The returned data should be ordered by catalog_name, then db_schema_name.
136#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
137pub struct CommandGetDbSchemas {
138    ///
139    /// Specifies the Catalog to search for the tables.
140    /// An empty string retrieves those without a catalog.
141    /// If omitted the catalog name should not be used to narrow the search.
142    #[prost(string, optional, tag = "1")]
143    pub catalog: ::core::option::Option<::prost::alloc::string::String>,
144    ///
145    /// Specifies a filter pattern for schemas to search for.
146    /// When no db_schema_filter_pattern is provided, the pattern will not be used to narrow the search.
147    /// In the pattern string, two special characters can be used to denote matching rules:
148    ///     - "%" means to match any substring with 0 or more characters.
149    ///     - "_" means to match any one character.
150    #[prost(string, optional, tag = "2")]
151    pub db_schema_filter_pattern: ::core::option::Option<::prost::alloc::string::String>,
152}
153///
154/// Represents a request to retrieve the list of tables, and optionally their schemas, on a Flight SQL enabled backend.
155/// Used in the command member of FlightDescriptor for the following RPC calls:
156///   - GetSchema: return the Arrow schema of the query.
157///   - GetFlightInfo: execute the catalog metadata request.
158///
159/// The returned Arrow schema will be:
160/// <
161///   catalog_name: utf8,
162///   db_schema_name: utf8,
163///   table_name: utf8 not null,
164///   table_type: utf8 not null,
165///   \[optional\] table_schema: bytes not null (schema of the table as described in Schema.fbs::Schema,
166///                                            it is serialized as an IPC message.)
167/// >
168/// Fields on table_schema may contain the following metadata:
169///   - ARROW:FLIGHT:SQL:CATALOG_NAME      - Table's catalog name
170///   - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME    - Database schema name
171///   - ARROW:FLIGHT:SQL:TABLE_NAME        - Table name
172///   - ARROW:FLIGHT:SQL:TYPE_NAME         - The data source-specific name for the data type of the column.
173///   - ARROW:FLIGHT:SQL:PRECISION         - Column precision/size
174///   - ARROW:FLIGHT:SQL:SCALE             - Column scale/decimal digits if applicable
175///   - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise.
176///   - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case-sensitive, "0" otherwise.
177///   - ARROW:FLIGHT:SQL:IS_READ_ONLY      - "1" indicates if the column is read only, "0" otherwise.
178///   - ARROW:FLIGHT:SQL:IS_SEARCHABLE     - "1" indicates if the column is searchable via WHERE clause, "0" otherwise.
179///   - ARROW:FLIGHT:SQL:REMARKS           - A comment describing the column. This field has been added after all others, clients should be prepared to find it missing.
180/// The returned data should be ordered by catalog_name, db_schema_name, table_name, then table_type, followed by table_schema if requested.
181#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
182pub struct CommandGetTables {
183    ///
184    /// Specifies the Catalog to search for the tables.
185    /// An empty string retrieves those without a catalog.
186    /// If omitted the catalog name should not be used to narrow the search.
187    #[prost(string, optional, tag = "1")]
188    pub catalog: ::core::option::Option<::prost::alloc::string::String>,
189    ///
190    /// Specifies a filter pattern for schemas to search for.
191    /// When no db_schema_filter_pattern is provided, all schemas matching other filters are searched.
192    /// In the pattern string, two special characters can be used to denote matching rules:
193    ///     - "%" means to match any substring with 0 or more characters.
194    ///     - "_" means to match any one character.
195    #[prost(string, optional, tag = "2")]
196    pub db_schema_filter_pattern: ::core::option::Option<::prost::alloc::string::String>,
197    ///
198    /// Specifies a filter pattern for tables to search for.
199    /// When no table_name_filter_pattern is provided, all tables matching other filters are searched.
200    /// In the pattern string, two special characters can be used to denote matching rules:
201    ///     - "%" means to match any substring with 0 or more characters.
202    ///     - "_" means to match any one character.
203    #[prost(string, optional, tag = "3")]
204    pub table_name_filter_pattern: ::core::option::Option<
205        ::prost::alloc::string::String,
206    >,
207    ///
208    /// Specifies a filter of table types which must match.
209    /// The table types depend on vendor/implementation. It is usually used to separate tables from views or system tables.
210    /// TABLE, VIEW, and SYSTEM TABLE are commonly supported.
211    #[prost(string, repeated, tag = "4")]
212    pub table_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
213    /// Specifies if the Arrow schema should be returned for found tables.
214    #[prost(bool, tag = "5")]
215    pub include_schema: bool,
216}
217///
218/// Represents a request to retrieve the list of table types on a Flight SQL enabled backend.
219/// The table types depend on vendor/implementation. It is usually used to separate tables from views or system tables.
220/// TABLE, VIEW, and SYSTEM TABLE are commonly supported.
221/// Used in the command member of FlightDescriptor for the following RPC calls:
222///   - GetSchema: return the Arrow schema of the query.
223///   - GetFlightInfo: execute the catalog metadata request.
224///
225/// The returned Arrow schema will be:
226/// <
227///   table_type: utf8 not null
228/// >
229/// The returned data should be ordered by table_type.
230#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
231pub struct CommandGetTableTypes {}
232///
233/// Represents a request to retrieve the primary keys of a table on a Flight SQL enabled backend.
234/// Used in the command member of FlightDescriptor for the following RPC calls:
235///   - GetSchema: return the Arrow schema of the query.
236///   - GetFlightInfo: execute the catalog metadata request.
237///
238/// The returned Arrow schema will be:
239/// <
240///   catalog_name: utf8,
241///   db_schema_name: utf8,
242///   table_name: utf8 not null,
243///   column_name: utf8 not null,
244///   key_name: utf8,
245///   key_sequence: int32 not null
246/// >
247/// The returned data should be ordered by catalog_name, db_schema_name, table_name, key_name, then key_sequence.
248#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
249pub struct CommandGetPrimaryKeys {
250    ///
251    /// Specifies the catalog to search for the table.
252    /// An empty string retrieves those without a catalog.
253    /// If omitted the catalog name should not be used to narrow the search.
254    #[prost(string, optional, tag = "1")]
255    pub catalog: ::core::option::Option<::prost::alloc::string::String>,
256    ///
257    /// Specifies the schema to search for the table.
258    /// An empty string retrieves those without a schema.
259    /// If omitted the schema name should not be used to narrow the search.
260    #[prost(string, optional, tag = "2")]
261    pub db_schema: ::core::option::Option<::prost::alloc::string::String>,
262    /// Specifies the table to get the primary keys for.
263    #[prost(string, tag = "3")]
264    pub table: ::prost::alloc::string::String,
265}
266///
267/// Represents a request to retrieve a description of the foreign key columns that reference the given table's
268/// primary key columns (the foreign keys exported by a table) of a table on a Flight SQL enabled backend.
269/// Used in the command member of FlightDescriptor for the following RPC calls:
270///   - GetSchema: return the Arrow schema of the query.
271///   - GetFlightInfo: execute the catalog metadata request.
272///
273/// The returned Arrow schema will be:
274/// <
275///   pk_catalog_name: utf8,
276///   pk_db_schema_name: utf8,
277///   pk_table_name: utf8 not null,
278///   pk_column_name: utf8 not null,
279///   fk_catalog_name: utf8,
280///   fk_db_schema_name: utf8,
281///   fk_table_name: utf8 not null,
282///   fk_column_name: utf8 not null,
283///   key_sequence: int32 not null,
284///   fk_key_name: utf8,
285///   pk_key_name: utf8,
286///   update_rule: uint8 not null,
287///   delete_rule: uint8 not null
288/// >
289/// The returned data should be ordered by fk_catalog_name, fk_db_schema_name, fk_table_name, fk_key_name, then key_sequence.
290/// update_rule and delete_rule returns a byte that is equivalent to actions declared on UpdateDeleteRules enum.
291#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
292pub struct CommandGetExportedKeys {
293    ///
294    /// Specifies the catalog to search for the foreign key table.
295    /// An empty string retrieves those without a catalog.
296    /// If omitted the catalog name should not be used to narrow the search.
297    #[prost(string, optional, tag = "1")]
298    pub catalog: ::core::option::Option<::prost::alloc::string::String>,
299    ///
300    /// Specifies the schema to search for the foreign key table.
301    /// An empty string retrieves those without a schema.
302    /// If omitted the schema name should not be used to narrow the search.
303    #[prost(string, optional, tag = "2")]
304    pub db_schema: ::core::option::Option<::prost::alloc::string::String>,
305    /// Specifies the foreign key table to get the foreign keys for.
306    #[prost(string, tag = "3")]
307    pub table: ::prost::alloc::string::String,
308}
309///
310/// Represents a request to retrieve the foreign keys of a table on a Flight SQL enabled backend.
311/// Used in the command member of FlightDescriptor for the following RPC calls:
312///   - GetSchema: return the Arrow schema of the query.
313///   - GetFlightInfo: execute the catalog metadata request.
314///
315/// The returned Arrow schema will be:
316/// <
317///   pk_catalog_name: utf8,
318///   pk_db_schema_name: utf8,
319///   pk_table_name: utf8 not null,
320///   pk_column_name: utf8 not null,
321///   fk_catalog_name: utf8,
322///   fk_db_schema_name: utf8,
323///   fk_table_name: utf8 not null,
324///   fk_column_name: utf8 not null,
325///   key_sequence: int32 not null,
326///   fk_key_name: utf8,
327///   pk_key_name: utf8,
328///   update_rule: uint8 not null,
329///   delete_rule: uint8 not null
330/// >
331/// The returned data should be ordered by pk_catalog_name, pk_db_schema_name, pk_table_name, pk_key_name, then key_sequence.
332/// update_rule and delete_rule returns a byte that is equivalent to actions:
333///     - 0 = CASCADE
334///     - 1 = RESTRICT
335///     - 2 = SET NULL
336///     - 3 = NO ACTION
337///     - 4 = SET DEFAULT
338#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
339pub struct CommandGetImportedKeys {
340    ///
341    /// Specifies the catalog to search for the primary key table.
342    /// An empty string retrieves those without a catalog.
343    /// If omitted the catalog name should not be used to narrow the search.
344    #[prost(string, optional, tag = "1")]
345    pub catalog: ::core::option::Option<::prost::alloc::string::String>,
346    ///
347    /// Specifies the schema to search for the primary key table.
348    /// An empty string retrieves those without a schema.
349    /// If omitted the schema name should not be used to narrow the search.
350    #[prost(string, optional, tag = "2")]
351    pub db_schema: ::core::option::Option<::prost::alloc::string::String>,
352    /// Specifies the primary key table to get the foreign keys for.
353    #[prost(string, tag = "3")]
354    pub table: ::prost::alloc::string::String,
355}
356///
357/// Represents a request to retrieve a description of the foreign key columns in the given foreign key table that
358/// reference the primary key or the columns representing a unique constraint of the parent table (could be the same
359/// or a different table) on a Flight SQL enabled backend.
360/// Used in the command member of FlightDescriptor for the following RPC calls:
361///   - GetSchema: return the Arrow schema of the query.
362///   - GetFlightInfo: execute the catalog metadata request.
363///
364/// The returned Arrow schema will be:
365/// <
366///   pk_catalog_name: utf8,
367///   pk_db_schema_name: utf8,
368///   pk_table_name: utf8 not null,
369///   pk_column_name: utf8 not null,
370///   fk_catalog_name: utf8,
371///   fk_db_schema_name: utf8,
372///   fk_table_name: utf8 not null,
373///   fk_column_name: utf8 not null,
374///   key_sequence: int32 not null,
375///   fk_key_name: utf8,
376///   pk_key_name: utf8,
377///   update_rule: uint8 not null,
378///   delete_rule: uint8 not null
379/// >
380/// The returned data should be ordered by pk_catalog_name, pk_db_schema_name, pk_table_name, pk_key_name, then key_sequence.
381/// update_rule and delete_rule returns a byte that is equivalent to actions:
382///     - 0 = CASCADE
383///     - 1 = RESTRICT
384///     - 2 = SET NULL
385///     - 3 = NO ACTION
386///     - 4 = SET DEFAULT
387#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
388pub struct CommandGetCrossReference {
389    /// *
390    /// The catalog name where the parent table is.
391    /// An empty string retrieves those without a catalog.
392    /// If omitted the catalog name should not be used to narrow the search.
393    #[prost(string, optional, tag = "1")]
394    pub pk_catalog: ::core::option::Option<::prost::alloc::string::String>,
395    /// *
396    /// The Schema name where the parent table is.
397    /// An empty string retrieves those without a schema.
398    /// If omitted the schema name should not be used to narrow the search.
399    #[prost(string, optional, tag = "2")]
400    pub pk_db_schema: ::core::option::Option<::prost::alloc::string::String>,
401    /// *
402    /// The parent table name. It cannot be null.
403    #[prost(string, tag = "3")]
404    pub pk_table: ::prost::alloc::string::String,
405    /// *
406    /// The catalog name where the foreign table is.
407    /// An empty string retrieves those without a catalog.
408    /// If omitted the catalog name should not be used to narrow the search.
409    #[prost(string, optional, tag = "4")]
410    pub fk_catalog: ::core::option::Option<::prost::alloc::string::String>,
411    /// *
412    /// The schema name where the foreign table is.
413    /// An empty string retrieves those without a schema.
414    /// If omitted the schema name should not be used to narrow the search.
415    #[prost(string, optional, tag = "5")]
416    pub fk_db_schema: ::core::option::Option<::prost::alloc::string::String>,
417    /// *
418    /// The foreign table name. It cannot be null.
419    #[prost(string, tag = "6")]
420    pub fk_table: ::prost::alloc::string::String,
421}
422///
423/// Request message for the "CreatePreparedStatement" action on a Flight SQL enabled backend.
424#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
425pub struct ActionCreatePreparedStatementRequest {
426    /// The valid SQL string to create a prepared statement for.
427    #[prost(string, tag = "1")]
428    pub query: ::prost::alloc::string::String,
429    /// Create/execute the prepared statement as part of this transaction (if
430    /// unset, executions of the prepared statement will be auto-committed).
431    #[prost(bytes = "bytes", optional, tag = "2")]
432    pub transaction_id: ::core::option::Option<::prost::bytes::Bytes>,
433}
434///
435/// An embedded message describing a Substrait plan to execute.
436#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
437pub struct SubstraitPlan {
438    /// The serialized substrait.Plan to create a prepared statement for.
439    /// XXX(ARROW-16902): this is bytes instead of an embedded message
440    /// because Protobuf does not really support one DLL using Protobuf
441    /// definitions from another DLL.
442    #[prost(bytes = "bytes", tag = "1")]
443    pub plan: ::prost::bytes::Bytes,
444    /// The Substrait release, e.g. "0.12.0". This information is not
445    /// tracked in the plan itself, so this is the only way for consumers
446    /// to potentially know if they can handle the plan.
447    #[prost(string, tag = "2")]
448    pub version: ::prost::alloc::string::String,
449}
450///
451/// Request message for the "CreatePreparedSubstraitPlan" action on a Flight SQL enabled backend.
452#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
453pub struct ActionCreatePreparedSubstraitPlanRequest {
454    /// The serialized substrait.Plan to create a prepared statement for.
455    #[prost(message, optional, tag = "1")]
456    pub plan: ::core::option::Option<SubstraitPlan>,
457    /// Create/execute the prepared statement as part of this transaction (if
458    /// unset, executions of the prepared statement will be auto-committed).
459    #[prost(bytes = "bytes", optional, tag = "2")]
460    pub transaction_id: ::core::option::Option<::prost::bytes::Bytes>,
461}
462///
463/// Wrap the result of a "CreatePreparedStatement" or "CreatePreparedSubstraitPlan" action.
464///
465/// The resultant PreparedStatement can be closed either:
466/// - Manually, through the "ClosePreparedStatement" action;
467/// - Automatically, by a server timeout.
468///
469/// The result should be wrapped in a google.protobuf.Any message.
470#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
471pub struct ActionCreatePreparedStatementResult {
472    /// Opaque handle for the prepared statement on the server.
473    #[prost(bytes = "bytes", tag = "1")]
474    pub prepared_statement_handle: ::prost::bytes::Bytes,
475    /// If a result set generating query was provided, dataset_schema contains the
476    /// schema of the result set.  It should be an IPC-encapsulated Schema, as described in Schema.fbs.
477    /// For some queries, the schema of the results may depend on the schema of the parameters.  The server
478    /// should provide its best guess as to the schema at this point.  Clients must not assume that this
479    /// schema, if provided, will be accurate.
480    #[prost(bytes = "bytes", tag = "2")]
481    pub dataset_schema: ::prost::bytes::Bytes,
482    /// If the query provided contained parameters, parameter_schema contains the
483    /// schema of the expected parameters.  It should be an IPC-encapsulated Schema, as described in Schema.fbs.
484    #[prost(bytes = "bytes", tag = "3")]
485    pub parameter_schema: ::prost::bytes::Bytes,
486}
487///
488/// Request message for the "ClosePreparedStatement" action on a Flight SQL enabled backend.
489/// Closes server resources associated with the prepared statement handle.
490#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
491pub struct ActionClosePreparedStatementRequest {
492    /// Opaque handle for the prepared statement on the server.
493    #[prost(bytes = "bytes", tag = "1")]
494    pub prepared_statement_handle: ::prost::bytes::Bytes,
495}
496///
497/// Request message for the "BeginTransaction" action.
498/// Begins a transaction.
499#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
500pub struct ActionBeginTransactionRequest {}
501///
502/// Request message for the "BeginSavepoint" action.
503/// Creates a savepoint within a transaction.
504///
505/// Only supported if FLIGHT_SQL_SERVER_TRANSACTION returns
506/// SQL_SUPPORTED_TRANSACTION_SAVEPOINT.
507#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
508pub struct ActionBeginSavepointRequest {
509    /// The transaction to which a savepoint belongs.
510    #[prost(bytes = "bytes", tag = "1")]
511    pub transaction_id: ::prost::bytes::Bytes,
512    /// Name for the savepoint.
513    #[prost(string, tag = "2")]
514    pub name: ::prost::alloc::string::String,
515}
516///
517/// The result of a "BeginTransaction" action.
518///
519/// The transaction can be manipulated with the "EndTransaction" action, or
520/// automatically via server timeout. If the transaction times out, then it is
521/// automatically rolled back.
522///
523/// The result should be wrapped in a google.protobuf.Any message.
524#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
525pub struct ActionBeginTransactionResult {
526    /// Opaque handle for the transaction on the server.
527    #[prost(bytes = "bytes", tag = "1")]
528    pub transaction_id: ::prost::bytes::Bytes,
529}
530///
531/// The result of a "BeginSavepoint" action.
532///
533/// The transaction can be manipulated with the "EndSavepoint" action.
534/// If the associated transaction is committed, rolled back, or times
535/// out, then the savepoint is also invalidated.
536///
537/// The result should be wrapped in a google.protobuf.Any message.
538#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
539pub struct ActionBeginSavepointResult {
540    /// Opaque handle for the savepoint on the server.
541    #[prost(bytes = "bytes", tag = "1")]
542    pub savepoint_id: ::prost::bytes::Bytes,
543}
544///
545/// Request message for the "EndTransaction" action.
546///
547/// Commit (COMMIT) or rollback (ROLLBACK) the transaction.
548///
549/// If the action completes successfully, the transaction handle is
550/// invalidated, as are all associated savepoints.
551#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
552pub struct ActionEndTransactionRequest {
553    /// Opaque handle for the transaction on the server.
554    #[prost(bytes = "bytes", tag = "1")]
555    pub transaction_id: ::prost::bytes::Bytes,
556    /// Whether to commit/rollback the given transaction.
557    #[prost(enumeration = "action_end_transaction_request::EndTransaction", tag = "2")]
558    pub action: i32,
559}
560/// Nested message and enum types in `ActionEndTransactionRequest`.
561pub mod action_end_transaction_request {
562    #[derive(
563        Clone,
564        Copy,
565        Debug,
566        PartialEq,
567        Eq,
568        Hash,
569        PartialOrd,
570        Ord,
571        ::prost::Enumeration
572    )]
573    #[repr(i32)]
574    pub enum EndTransaction {
575        Unspecified = 0,
576        /// Commit the transaction.
577        Commit = 1,
578        /// Roll back the transaction.
579        Rollback = 2,
580    }
581    impl EndTransaction {
582        /// String value of the enum field names used in the ProtoBuf definition.
583        ///
584        /// The values are not transformed in any way and thus are considered stable
585        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
586        pub fn as_str_name(&self) -> &'static str {
587            match self {
588                Self::Unspecified => "END_TRANSACTION_UNSPECIFIED",
589                Self::Commit => "END_TRANSACTION_COMMIT",
590                Self::Rollback => "END_TRANSACTION_ROLLBACK",
591            }
592        }
593        /// Creates an enum from field names used in the ProtoBuf definition.
594        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
595            match value {
596                "END_TRANSACTION_UNSPECIFIED" => Some(Self::Unspecified),
597                "END_TRANSACTION_COMMIT" => Some(Self::Commit),
598                "END_TRANSACTION_ROLLBACK" => Some(Self::Rollback),
599                _ => None,
600            }
601        }
602    }
603}
604///
605/// Request message for the "EndSavepoint" action.
606///
607/// Release (RELEASE) the savepoint or rollback (ROLLBACK) to the
608/// savepoint.
609///
610/// Releasing a savepoint invalidates that savepoint.  Rolling back to
611/// a savepoint does not invalidate the savepoint, but invalidates all
612/// savepoints created after the current savepoint.
613#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
614pub struct ActionEndSavepointRequest {
615    /// Opaque handle for the savepoint on the server.
616    #[prost(bytes = "bytes", tag = "1")]
617    pub savepoint_id: ::prost::bytes::Bytes,
618    /// Whether to rollback/release the given savepoint.
619    #[prost(enumeration = "action_end_savepoint_request::EndSavepoint", tag = "2")]
620    pub action: i32,
621}
622/// Nested message and enum types in `ActionEndSavepointRequest`.
623pub mod action_end_savepoint_request {
624    #[derive(
625        Clone,
626        Copy,
627        Debug,
628        PartialEq,
629        Eq,
630        Hash,
631        PartialOrd,
632        Ord,
633        ::prost::Enumeration
634    )]
635    #[repr(i32)]
636    pub enum EndSavepoint {
637        Unspecified = 0,
638        /// Release the savepoint.
639        Release = 1,
640        /// Roll back to a savepoint.
641        Rollback = 2,
642    }
643    impl EndSavepoint {
644        /// String value of the enum field names used in the ProtoBuf definition.
645        ///
646        /// The values are not transformed in any way and thus are considered stable
647        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
648        pub fn as_str_name(&self) -> &'static str {
649            match self {
650                Self::Unspecified => "END_SAVEPOINT_UNSPECIFIED",
651                Self::Release => "END_SAVEPOINT_RELEASE",
652                Self::Rollback => "END_SAVEPOINT_ROLLBACK",
653            }
654        }
655        /// Creates an enum from field names used in the ProtoBuf definition.
656        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
657            match value {
658                "END_SAVEPOINT_UNSPECIFIED" => Some(Self::Unspecified),
659                "END_SAVEPOINT_RELEASE" => Some(Self::Release),
660                "END_SAVEPOINT_ROLLBACK" => Some(Self::Rollback),
661                _ => None,
662            }
663        }
664    }
665}
666///
667/// Represents a SQL query. Used in the command member of FlightDescriptor
668/// for the following RPC calls:
669///   - GetSchema: return the Arrow schema of the query.
670///     Fields on this schema may contain the following metadata:
671///     - ARROW:FLIGHT:SQL:CATALOG_NAME      - Table's catalog name
672///     - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME    - Database schema name
673///     - ARROW:FLIGHT:SQL:TABLE_NAME        - Table name
674///     - ARROW:FLIGHT:SQL:TYPE_NAME         - The data source-specific name for the data type of the column.
675///     - ARROW:FLIGHT:SQL:PRECISION         - Column precision/size
676///     - ARROW:FLIGHT:SQL:SCALE             - Column scale/decimal digits if applicable
677///     - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise.
678///     - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case-sensitive, "0" otherwise.
679///     - ARROW:FLIGHT:SQL:IS_READ_ONLY      - "1" indicates if the column is read only, "0" otherwise.
680///     - ARROW:FLIGHT:SQL:IS_SEARCHABLE     - "1" indicates if the column is searchable via WHERE clause, "0" otherwise.
681///     - ARROW:FLIGHT:SQL:REMARKS           - A comment describing the column. This field has been added after all others, clients should be prepared to find it missing.
682///   - GetFlightInfo: execute the query.
683#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
684pub struct CommandStatementQuery {
685    /// The SQL syntax.
686    #[prost(string, tag = "1")]
687    pub query: ::prost::alloc::string::String,
688    /// Include the query as part of this transaction (if unset, the query is auto-committed).
689    #[prost(bytes = "bytes", optional, tag = "2")]
690    pub transaction_id: ::core::option::Option<::prost::bytes::Bytes>,
691}
692///
693/// Represents a Substrait plan. Used in the command member of FlightDescriptor
694/// for the following RPC calls:
695///   - GetSchema: return the Arrow schema of the query.
696///     Fields on this schema may contain the following metadata:
697///     - ARROW:FLIGHT:SQL:CATALOG_NAME      - Table's catalog name
698///     - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME    - Database schema name
699///     - ARROW:FLIGHT:SQL:TABLE_NAME        - Table name
700///     - ARROW:FLIGHT:SQL:TYPE_NAME         - The data source-specific name for the data type of the column.
701///     - ARROW:FLIGHT:SQL:PRECISION         - Column precision/size
702///     - ARROW:FLIGHT:SQL:SCALE             - Column scale/decimal digits if applicable
703///     - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise.
704///     - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case-sensitive, "0" otherwise.
705///     - ARROW:FLIGHT:SQL:IS_READ_ONLY      - "1" indicates if the column is read only, "0" otherwise.
706///     - ARROW:FLIGHT:SQL:IS_SEARCHABLE     - "1" indicates if the column is searchable via WHERE clause, "0" otherwise.
707///     - ARROW:FLIGHT:SQL:REMARKS           - A comment describing the column. This field has been added after all others, clients should be prepared to find it missing.
708///   - GetFlightInfo: execute the query.
709///   - DoPut: execute the query.
710#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
711pub struct CommandStatementSubstraitPlan {
712    /// A serialized substrait.Plan
713    #[prost(message, optional, tag = "1")]
714    pub plan: ::core::option::Option<SubstraitPlan>,
715    /// Include the query as part of this transaction (if unset, the query is auto-committed).
716    #[prost(bytes = "bytes", optional, tag = "2")]
717    pub transaction_id: ::core::option::Option<::prost::bytes::Bytes>,
718}
719/// *
720/// Represents a ticket resulting from GetFlightInfo with a CommandStatementQuery.
721/// This should be used only once and treated as an opaque value, that is, clients should not attempt to parse this.
722#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
723pub struct TicketStatementQuery {
724    /// Unique identifier for the instance of the statement to execute.
725    #[prost(bytes = "bytes", tag = "1")]
726    pub statement_handle: ::prost::bytes::Bytes,
727}
728///
729/// Represents an instance of executing a prepared statement. Used in the command member of FlightDescriptor for
730/// the following RPC calls:
731///   - GetSchema: return the Arrow schema of the query.
732///     Fields on this schema may contain the following metadata:
733///     - ARROW:FLIGHT:SQL:CATALOG_NAME      - Table's catalog name
734///     - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME    - Database schema name
735///     - ARROW:FLIGHT:SQL:TABLE_NAME        - Table name
736///     - ARROW:FLIGHT:SQL:TYPE_NAME         - The data source-specific name for the data type of the column.
737///     - ARROW:FLIGHT:SQL:PRECISION         - Column precision/size
738///     - ARROW:FLIGHT:SQL:SCALE             - Column scale/decimal digits if applicable
739///     - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise.
740///     - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case-sensitive, "0" otherwise.
741///     - ARROW:FLIGHT:SQL:IS_READ_ONLY      - "1" indicates if the column is read only, "0" otherwise.
742///     - ARROW:FLIGHT:SQL:IS_SEARCHABLE     - "1" indicates if the column is searchable via WHERE clause, "0" otherwise.
743///     - ARROW:FLIGHT:SQL:REMARKS           - A comment describing the column. This field has been added after all others, clients should be prepared to find it missing.
744///
745///     If the schema is retrieved after parameter values have been bound with DoPut, then the server should account
746///     for the parameters when determining the schema.
747///   - DoPut: bind parameter values. All of the bound parameter sets will be executed as a single atomic execution.
748///   - GetFlightInfo: execute the prepared statement instance.
749#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
750pub struct CommandPreparedStatementQuery {
751    /// Opaque handle for the prepared statement on the server.
752    #[prost(bytes = "bytes", tag = "1")]
753    pub prepared_statement_handle: ::prost::bytes::Bytes,
754}
755///
756/// Represents a SQL update query. Used in the command member of FlightDescriptor
757/// for the RPC call DoPut to cause the server to execute the included SQL update.
758#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
759pub struct CommandStatementUpdate {
760    /// The SQL syntax.
761    #[prost(string, tag = "1")]
762    pub query: ::prost::alloc::string::String,
763    /// Include the query as part of this transaction (if unset, the query is auto-committed).
764    #[prost(bytes = "bytes", optional, tag = "2")]
765    pub transaction_id: ::core::option::Option<::prost::bytes::Bytes>,
766}
767///
768/// Represents a SQL update query. Used in the command member of FlightDescriptor
769/// for the RPC call DoPut to cause the server to execute the included
770/// prepared statement handle as an update.
771#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
772pub struct CommandPreparedStatementUpdate {
773    /// Opaque handle for the prepared statement on the server.
774    #[prost(bytes = "bytes", tag = "1")]
775    pub prepared_statement_handle: ::prost::bytes::Bytes,
776}
777///
778/// Represents a bulk ingestion request. Used in the command member of FlightDescriptor
779/// for the RPC call DoPut to cause the server load the contents of the stream's
780/// FlightData into the target destination.
781#[derive(Clone, PartialEq, ::prost::Message)]
782pub struct CommandStatementIngest {
783    /// The behavior for handling the table definition.
784    #[prost(message, optional, tag = "1")]
785    pub table_definition_options: ::core::option::Option<
786        command_statement_ingest::TableDefinitionOptions,
787    >,
788    /// The table to load data into.
789    #[prost(string, tag = "2")]
790    pub table: ::prost::alloc::string::String,
791    /// The db_schema of the destination table to load data into. If unset, a backend-specific default may be used.
792    #[prost(string, optional, tag = "3")]
793    pub schema: ::core::option::Option<::prost::alloc::string::String>,
794    /// The catalog of the destination table to load data into. If unset, a backend-specific default may be used.
795    #[prost(string, optional, tag = "4")]
796    pub catalog: ::core::option::Option<::prost::alloc::string::String>,
797    ///
798    /// Store ingested data in a temporary table.
799    /// The effect of setting temporary is to place the table in a backend-defined namespace, and to drop the table at the end of the session.
800    /// The namespacing may make use of a backend-specific schema and/or catalog.
801    /// The server should return an error if an explicit choice of schema or catalog is incompatible with the server's namespacing decision.
802    #[prost(bool, tag = "5")]
803    pub temporary: bool,
804    /// Perform the ingestion as part of this transaction. If specified, results should not be committed in the event of an error/cancellation.
805    #[prost(bytes = "bytes", optional, tag = "6")]
806    pub transaction_id: ::core::option::Option<::prost::bytes::Bytes>,
807    /// Backend-specific options.
808    #[prost(map = "string, string", tag = "1000")]
809    pub options: ::std::collections::HashMap<
810        ::prost::alloc::string::String,
811        ::prost::alloc::string::String,
812    >,
813}
814/// Nested message and enum types in `CommandStatementIngest`.
815pub mod command_statement_ingest {
816    /// Options for table definition behavior
817    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
818    pub struct TableDefinitionOptions {
819        #[prost(
820            enumeration = "table_definition_options::TableNotExistOption",
821            tag = "1"
822        )]
823        pub if_not_exist: i32,
824        #[prost(enumeration = "table_definition_options::TableExistsOption", tag = "2")]
825        pub if_exists: i32,
826    }
827    /// Nested message and enum types in `TableDefinitionOptions`.
828    pub mod table_definition_options {
829        /// The action to take if the target table does not exist
830        #[derive(
831            Clone,
832            Copy,
833            Debug,
834            PartialEq,
835            Eq,
836            Hash,
837            PartialOrd,
838            Ord,
839            ::prost::Enumeration
840        )]
841        #[repr(i32)]
842        pub enum TableNotExistOption {
843            /// Do not use. Servers should error if this is specified by a client.
844            Unspecified = 0,
845            /// Create the table if it does not exist
846            Create = 1,
847            /// Fail if the table does not exist
848            Fail = 2,
849        }
850        impl TableNotExistOption {
851            /// String value of the enum field names used in the ProtoBuf definition.
852            ///
853            /// The values are not transformed in any way and thus are considered stable
854            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
855            pub fn as_str_name(&self) -> &'static str {
856                match self {
857                    Self::Unspecified => "TABLE_NOT_EXIST_OPTION_UNSPECIFIED",
858                    Self::Create => "TABLE_NOT_EXIST_OPTION_CREATE",
859                    Self::Fail => "TABLE_NOT_EXIST_OPTION_FAIL",
860                }
861            }
862            /// Creates an enum from field names used in the ProtoBuf definition.
863            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
864                match value {
865                    "TABLE_NOT_EXIST_OPTION_UNSPECIFIED" => Some(Self::Unspecified),
866                    "TABLE_NOT_EXIST_OPTION_CREATE" => Some(Self::Create),
867                    "TABLE_NOT_EXIST_OPTION_FAIL" => Some(Self::Fail),
868                    _ => None,
869                }
870            }
871        }
872        /// The action to take if the target table already exists
873        #[derive(
874            Clone,
875            Copy,
876            Debug,
877            PartialEq,
878            Eq,
879            Hash,
880            PartialOrd,
881            Ord,
882            ::prost::Enumeration
883        )]
884        #[repr(i32)]
885        pub enum TableExistsOption {
886            /// Do not use. Servers should error if this is specified by a client.
887            Unspecified = 0,
888            /// Fail if the table already exists
889            Fail = 1,
890            /// Append to the table if it already exists
891            Append = 2,
892            /// Drop and recreate the table if it already exists
893            Replace = 3,
894        }
895        impl TableExistsOption {
896            /// String value of the enum field names used in the ProtoBuf definition.
897            ///
898            /// The values are not transformed in any way and thus are considered stable
899            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
900            pub fn as_str_name(&self) -> &'static str {
901                match self {
902                    Self::Unspecified => "TABLE_EXISTS_OPTION_UNSPECIFIED",
903                    Self::Fail => "TABLE_EXISTS_OPTION_FAIL",
904                    Self::Append => "TABLE_EXISTS_OPTION_APPEND",
905                    Self::Replace => "TABLE_EXISTS_OPTION_REPLACE",
906                }
907            }
908            /// Creates an enum from field names used in the ProtoBuf definition.
909            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
910                match value {
911                    "TABLE_EXISTS_OPTION_UNSPECIFIED" => Some(Self::Unspecified),
912                    "TABLE_EXISTS_OPTION_FAIL" => Some(Self::Fail),
913                    "TABLE_EXISTS_OPTION_APPEND" => Some(Self::Append),
914                    "TABLE_EXISTS_OPTION_REPLACE" => Some(Self::Replace),
915                    _ => None,
916                }
917            }
918        }
919    }
920}
921///
922/// Returned from the RPC call DoPut when a CommandStatementUpdate,
923/// CommandPreparedStatementUpdate, or CommandStatementIngest was
924/// in the request, containing results from the update.
925#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
926pub struct DoPutUpdateResult {
927    /// The number of records updated. A return value of -1 represents
928    /// an unknown updated record count.
929    #[prost(int64, tag = "1")]
930    pub record_count: i64,
931}
932/// An *optional* response returned when `DoPut` is called with `CommandPreparedStatementQuery`.
933///
934/// *Note on legacy behavior*: previous versions of the protocol did not return any result for
935/// this command, and that behavior should still be supported by clients. In that case, the client
936/// can continue as though the fields in this message were not provided or set to sensible default values.
937#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
938pub struct DoPutPreparedStatementResult {
939    /// Represents a (potentially updated) opaque handle for the prepared statement on the server.
940    /// Because the handle could potentially be updated, any previous handles for this prepared
941    /// statement should be considered invalid, and all subsequent requests for this prepared
942    /// statement must use this new handle.
943    /// The updated handle allows implementing query parameters with stateless services.
944    ///
945    /// When an updated handle is not provided by the server, clients should continue
946    /// using the previous handle provided by `ActionCreatePreparedStatementResult`.
947    #[prost(bytes = "bytes", optional, tag = "1")]
948    pub prepared_statement_handle: ::core::option::Option<::prost::bytes::Bytes>,
949}
950///
951/// Request message for the "CancelQuery" action.
952///
953/// Explicitly cancel a running query.
954///
955/// This lets a single client explicitly cancel work, no matter how many clients
956/// are involved/whether the query is distributed or not, given server support.
957/// The transaction/statement is not rolled back; it is the application's job to
958/// commit or rollback as appropriate. This only indicates the client no longer
959/// wishes to read the remainder of the query results or continue submitting
960/// data.
961///
962/// This command is idempotent.
963///
964/// This command is deprecated since 13.0.0. Use the "CancelFlightInfo"
965/// action with DoAction instead.
966#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
967pub struct ActionCancelQueryRequest {
968    /// The result of the GetFlightInfo RPC that initiated the query.
969    /// XXX(ARROW-16902): this must be a serialized FlightInfo, but is
970    /// rendered as bytes because Protobuf does not really support one
971    /// DLL using Protobuf definitions from another DLL.
972    #[prost(bytes = "bytes", tag = "1")]
973    pub info: ::prost::bytes::Bytes,
974}
975///
976/// The result of cancelling a query.
977///
978/// The result should be wrapped in a google.protobuf.Any message.
979///
980/// This command is deprecated since 13.0.0. Use the "CancelFlightInfo"
981/// action with DoAction instead.
982#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
983pub struct ActionCancelQueryResult {
984    #[prost(enumeration = "action_cancel_query_result::CancelResult", tag = "1")]
985    pub result: i32,
986}
987/// Nested message and enum types in `ActionCancelQueryResult`.
988pub mod action_cancel_query_result {
989    #[derive(
990        Clone,
991        Copy,
992        Debug,
993        PartialEq,
994        Eq,
995        Hash,
996        PartialOrd,
997        Ord,
998        ::prost::Enumeration
999    )]
1000    #[repr(i32)]
1001    pub enum CancelResult {
1002        /// The cancellation status is unknown. Servers should avoid using
1003        /// this value (send a NOT_FOUND error if the requested query is
1004        /// not known). Clients can retry the request.
1005        Unspecified = 0,
1006        /// The cancellation request is complete. Subsequent requests with
1007        /// the same payload may return CANCELLED or a NOT_FOUND error.
1008        Cancelled = 1,
1009        /// The cancellation request is in progress. The client may retry
1010        /// the cancellation request.
1011        Cancelling = 2,
1012        /// The query is not cancellable. The client should not retry the
1013        /// cancellation request.
1014        NotCancellable = 3,
1015    }
1016    impl CancelResult {
1017        /// String value of the enum field names used in the ProtoBuf definition.
1018        ///
1019        /// The values are not transformed in any way and thus are considered stable
1020        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1021        pub fn as_str_name(&self) -> &'static str {
1022            match self {
1023                Self::Unspecified => "CANCEL_RESULT_UNSPECIFIED",
1024                Self::Cancelled => "CANCEL_RESULT_CANCELLED",
1025                Self::Cancelling => "CANCEL_RESULT_CANCELLING",
1026                Self::NotCancellable => "CANCEL_RESULT_NOT_CANCELLABLE",
1027            }
1028        }
1029        /// Creates an enum from field names used in the ProtoBuf definition.
1030        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1031            match value {
1032                "CANCEL_RESULT_UNSPECIFIED" => Some(Self::Unspecified),
1033                "CANCEL_RESULT_CANCELLED" => Some(Self::Cancelled),
1034                "CANCEL_RESULT_CANCELLING" => Some(Self::Cancelling),
1035                "CANCEL_RESULT_NOT_CANCELLABLE" => Some(Self::NotCancellable),
1036                _ => None,
1037            }
1038        }
1039    }
1040}
1041/// Options for CommandGetSqlInfo.
1042#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1043#[repr(i32)]
1044pub enum SqlInfo {
1045    /// Retrieves a UTF-8 string with the name of the Flight SQL Server.
1046    FlightSqlServerName = 0,
1047    /// Retrieves a UTF-8 string with the native version of the Flight SQL Server.
1048    FlightSqlServerVersion = 1,
1049    /// Retrieves a UTF-8 string with the Arrow format version of the Flight SQL Server.
1050    FlightSqlServerArrowVersion = 2,
1051    ///
1052    /// Retrieves a boolean value indicating whether the Flight SQL Server is read only.
1053    ///
1054    /// Returns:
1055    /// - false: if read-write
1056    /// - true: if read only
1057    FlightSqlServerReadOnly = 3,
1058    ///
1059    /// Retrieves a boolean value indicating whether the Flight SQL Server supports executing
1060    /// SQL queries.
1061    ///
1062    /// Note that the absence of this info (as opposed to a false value) does not necessarily
1063    /// mean that SQL is not supported, as this property was not originally defined.
1064    FlightSqlServerSql = 4,
1065    ///
1066    /// Retrieves a boolean value indicating whether the Flight SQL Server supports executing
1067    /// Substrait plans.
1068    FlightSqlServerSubstrait = 5,
1069    ///
1070    /// Retrieves a string value indicating the minimum supported Substrait version, or null
1071    /// if Substrait is not supported.
1072    FlightSqlServerSubstraitMinVersion = 6,
1073    ///
1074    /// Retrieves a string value indicating the maximum supported Substrait version, or null
1075    /// if Substrait is not supported.
1076    FlightSqlServerSubstraitMaxVersion = 7,
1077    ///
1078    /// Retrieves an int32 indicating whether the Flight SQL Server supports the
1079    /// BeginTransaction/EndTransaction/BeginSavepoint/EndSavepoint actions.
1080    ///
1081    /// Even if this is not supported, the database may still support explicit "BEGIN
1082    /// TRANSACTION"/"COMMIT" SQL statements (see SQL_TRANSACTIONS_SUPPORTED); this property
1083    /// is only about whether the server implements the Flight SQL API endpoints.
1084    ///
1085    /// The possible values are listed in `SqlSupportedTransaction`.
1086    FlightSqlServerTransaction = 8,
1087    ///
1088    /// Retrieves a boolean value indicating whether the Flight SQL Server supports explicit
1089    /// query cancellation (the CancelQuery action).
1090    FlightSqlServerCancel = 9,
1091    ///
1092    /// Retrieves a boolean value indicating whether the Flight SQL Server supports executing
1093    /// bulk ingestion.
1094    FlightSqlServerBulkIngestion = 10,
1095    ///
1096    /// Retrieves a boolean value indicating whether transactions are supported for bulk ingestion. If not, invoking
1097    /// the method commit in the context of a bulk ingestion is a noop, and the isolation level is
1098    /// `arrow.flight.protocol.sql.SqlTransactionIsolationLevel.TRANSACTION_NONE`.
1099    ///
1100    /// Returns:
1101    /// - false: if bulk ingestion transactions are unsupported;
1102    /// - true: if bulk ingestion transactions are supported.
1103    FlightSqlServerIngestTransactionsSupported = 11,
1104    ///
1105    /// Retrieves an int32 indicating the timeout (in milliseconds) for prepared statement handles.
1106    ///
1107    /// If 0, there is no timeout.  Servers should reset the timeout when the handle is used in a command.
1108    FlightSqlServerStatementTimeout = 100,
1109    ///
1110    /// Retrieves an int32 indicating the timeout (in milliseconds) for transactions, since transactions are not tied to a connection.
1111    ///
1112    /// If 0, there is no timeout.  Servers should reset the timeout when the handle is used in a command.
1113    FlightSqlServerTransactionTimeout = 101,
1114    ///
1115    /// Retrieves a boolean value indicating whether the Flight SQL Server supports CREATE and DROP of catalogs.
1116    ///
1117    /// Returns:
1118    /// - false: if it doesn't support CREATE and DROP of catalogs.
1119    /// - true: if it supports CREATE and DROP of catalogs.
1120    SqlDdlCatalog = 500,
1121    ///
1122    /// Retrieves a boolean value indicating whether the Flight SQL Server supports CREATE and DROP of schemas.
1123    ///
1124    /// Returns:
1125    /// - false: if it doesn't support CREATE and DROP of schemas.
1126    /// - true: if it supports CREATE and DROP of schemas.
1127    SqlDdlSchema = 501,
1128    ///
1129    /// Indicates whether the Flight SQL Server supports CREATE and DROP of tables.
1130    ///
1131    /// Returns:
1132    /// - false: if it doesn't support CREATE and DROP of tables.
1133    /// - true: if it supports CREATE and DROP of tables.
1134    SqlDdlTable = 502,
1135    ///
1136    /// Retrieves an int32 ordinal representing the case sensitivity of catalog, table, schema and table names.
1137    ///
1138    /// The possible values are listed in `arrow.flight.protocol.sql.SqlSupportedCaseSensitivity`.
1139    SqlIdentifierCase = 503,
1140    /// Retrieves a UTF-8 string with the supported character(s) used to surround a delimited identifier.
1141    SqlIdentifierQuoteChar = 504,
1142    ///
1143    /// Retrieves an int32 describing the case sensitivity of quoted identifiers.
1144    ///
1145    /// The possible values are listed in `arrow.flight.protocol.sql.SqlSupportedCaseSensitivity`.
1146    SqlQuotedIdentifierCase = 505,
1147    ///
1148    /// Retrieves a boolean value indicating whether all tables are selectable.
1149    ///
1150    /// Returns:
1151    /// - false: if not all tables are selectable or if none are;
1152    /// - true: if all tables are selectable.
1153    SqlAllTablesAreSelectable = 506,
1154    ///
1155    /// Retrieves the null ordering.
1156    ///
1157    /// Returns an int32 ordinal for the null ordering being used, as described in
1158    /// `arrow.flight.protocol.sql.SqlNullOrdering`.
1159    SqlNullOrdering = 507,
1160    /// Retrieves a UTF-8 string list with values of the supported keywords.
1161    SqlKeywords = 508,
1162    /// Retrieves a UTF-8 string list with values of the supported numeric functions.
1163    SqlNumericFunctions = 509,
1164    /// Retrieves a UTF-8 string list with values of the supported string functions.
1165    SqlStringFunctions = 510,
1166    /// Retrieves a UTF-8 string list with values of the supported system functions.
1167    SqlSystemFunctions = 511,
1168    /// Retrieves a UTF-8 string list with values of the supported datetime functions.
1169    SqlDatetimeFunctions = 512,
1170    ///
1171    /// Retrieves the UTF-8 string that can be used to escape wildcard characters.
1172    /// This is the string that can be used to escape '_' or '%' in the catalog search parameters that are a pattern
1173    /// (and therefore use one of the wildcard characters).
1174    /// The '_' character represents any single character; the '%' character represents any sequence of zero or more
1175    /// characters.
1176    SqlSearchStringEscape = 513,
1177    ///
1178    /// Retrieves a UTF-8 string with all the "extra" characters that can be used in unquoted identifier names
1179    /// (those beyond a-z, A-Z, 0-9 and _).
1180    SqlExtraNameCharacters = 514,
1181    ///
1182    /// Retrieves a boolean value indicating whether column aliasing is supported.
1183    /// If so, the SQL AS clause can be used to provide names for computed columns or to provide alias names for columns
1184    /// as required.
1185    ///
1186    /// Returns:
1187    /// - false: if column aliasing is unsupported;
1188    /// - true: if column aliasing is supported.
1189    SqlSupportsColumnAliasing = 515,
1190    ///
1191    /// Retrieves a boolean value indicating whether concatenations between null and non-null values being
1192    /// null are supported.
1193    ///
1194    /// Returns:
1195    /// - false: if concatenations between null and non-null values being null are unsupported;
1196    /// - true: if concatenations between null and non-null values being null are supported.
1197    SqlNullPlusNullIsNull = 516,
1198    ///
1199    /// Retrieves a map where the key is the type to convert from and the value is a list with the types to convert to,
1200    /// indicating the supported conversions. Each key and each item on the list value is a value to a predefined type on
1201    /// SqlSupportsConvert enum.
1202    /// The returned map will be:  map<int32, list<int32>>
1203    SqlSupportsConvert = 517,
1204    ///
1205    /// Retrieves a boolean value indicating whether, when table correlation names are supported,
1206    /// they are restricted to being different from the names of the tables.
1207    ///
1208    /// Returns:
1209    /// - false: if table correlation names are unsupported;
1210    /// - true: if table correlation names are supported.
1211    SqlSupportsTableCorrelationNames = 518,
1212    ///
1213    /// Retrieves a boolean value indicating whether, when table correlation names are supported,
1214    /// they are restricted to being different from the names of the tables.
1215    ///
1216    /// Returns:
1217    /// - false: if different table correlation names are unsupported;
1218    /// - true: if different table correlation names are supported
1219    SqlSupportsDifferentTableCorrelationNames = 519,
1220    ///
1221    /// Retrieves a boolean value indicating whether expressions in ORDER BY lists are supported.
1222    ///
1223    /// Returns:
1224    /// - false: if expressions in ORDER BY are unsupported;
1225    /// - true: if expressions in ORDER BY are supported;
1226    SqlSupportsExpressionsInOrderBy = 520,
1227    ///
1228    /// Retrieves a boolean value indicating whether using a column that is not in the SELECT statement in a GROUP BY
1229    /// clause is supported.
1230    ///
1231    /// Returns:
1232    /// - false: if using a column that is not in the SELECT statement in a GROUP BY clause is unsupported;
1233    /// - true: if using a column that is not in the SELECT statement in a GROUP BY clause is supported.
1234    SqlSupportsOrderByUnrelated = 521,
1235    ///
1236    /// Retrieves the supported GROUP BY commands;
1237    ///
1238    /// Returns an int32 bitmask value representing the supported commands.
1239    /// The returned bitmask should be parsed in order to retrieve the supported commands.
1240    ///
1241    /// For instance:
1242    /// - return 0 (\b0)   => \[\] (GROUP BY is unsupported);
1243    /// - return 1 (\b1)   => \[SQL_GROUP_BY_UNRELATED\];
1244    /// - return 2 (\b10)  => \[SQL_GROUP_BY_BEYOND_SELECT\];
1245    /// - return 3 (\b11)  => \[SQL_GROUP_BY_UNRELATED, SQL_GROUP_BY_BEYOND_SELECT\].
1246    /// Valid GROUP BY types are described under `arrow.flight.protocol.sql.SqlSupportedGroupBy`.
1247    SqlSupportedGroupBy = 522,
1248    ///
1249    /// Retrieves a boolean value indicating whether specifying a LIKE escape clause is supported.
1250    ///
1251    /// Returns:
1252    /// - false: if specifying a LIKE escape clause is unsupported;
1253    /// - true: if specifying a LIKE escape clause is supported.
1254    SqlSupportsLikeEscapeClause = 523,
1255    ///
1256    /// Retrieves a boolean value indicating whether columns may be defined as non-nullable.
1257    ///
1258    /// Returns:
1259    /// - false: if columns cannot be defined as non-nullable;
1260    /// - true: if columns may be defined as non-nullable.
1261    SqlSupportsNonNullableColumns = 524,
1262    ///
1263    /// Retrieves the supported SQL grammar level as per the ODBC specification.
1264    ///
1265    /// Returns an int32 bitmask value representing the supported SQL grammar level.
1266    /// The returned bitmask should be parsed in order to retrieve the supported grammar levels.
1267    ///
1268    /// For instance:
1269    /// - return 0 (\b0)   => \[\] (SQL grammar is unsupported);
1270    /// - return 1 (\b1)   => \[SQL_MINIMUM_GRAMMAR\];
1271    /// - return 2 (\b10)  => \[SQL_CORE_GRAMMAR\];
1272    /// - return 3 (\b11)  => \[SQL_MINIMUM_GRAMMAR, SQL_CORE_GRAMMAR\];
1273    /// - return 4 (\b100) => \[SQL_EXTENDED_GRAMMAR\];
1274    /// - return 5 (\b101) => \[SQL_MINIMUM_GRAMMAR, SQL_EXTENDED_GRAMMAR\];
1275    /// - return 6 (\b110) => \[SQL_CORE_GRAMMAR, SQL_EXTENDED_GRAMMAR\];
1276    /// - return 7 (\b111) => \[SQL_MINIMUM_GRAMMAR, SQL_CORE_GRAMMAR, SQL_EXTENDED_GRAMMAR\].
1277    /// Valid SQL grammar levels are described under `arrow.flight.protocol.sql.SupportedSqlGrammar`.
1278    SqlSupportedGrammar = 525,
1279    ///
1280    /// Retrieves the supported ANSI92 SQL grammar level.
1281    ///
1282    /// Returns an int32 bitmask value representing the supported ANSI92 SQL grammar level.
1283    /// The returned bitmask should be parsed in order to retrieve the supported commands.
1284    ///
1285    /// For instance:
1286    /// - return 0 (\b0)   => \[\] (ANSI92 SQL grammar is unsupported);
1287    /// - return 1 (\b1)   => \[ANSI92_ENTRY_SQL\];
1288    /// - return 2 (\b10)  => \[ANSI92_INTERMEDIATE_SQL\];
1289    /// - return 3 (\b11)  => \[ANSI92_ENTRY_SQL, ANSI92_INTERMEDIATE_SQL\];
1290    /// - return 4 (\b100) => \[ANSI92_FULL_SQL\];
1291    /// - return 5 (\b101) => \[ANSI92_ENTRY_SQL, ANSI92_FULL_SQL\];
1292    /// - return 6 (\b110) => \[ANSI92_INTERMEDIATE_SQL, ANSI92_FULL_SQL\];
1293    /// - return 7 (\b111) => \[ANSI92_ENTRY_SQL, ANSI92_INTERMEDIATE_SQL, ANSI92_FULL_SQL\].
1294    /// Valid ANSI92 SQL grammar levels are described under `arrow.flight.protocol.sql.SupportedAnsi92SqlGrammarLevel`.
1295    SqlAnsi92SupportedLevel = 526,
1296    ///
1297    /// Retrieves a boolean value indicating whether the SQL Integrity Enhancement Facility is supported.
1298    ///
1299    /// Returns:
1300    /// - false: if the SQL Integrity Enhancement Facility is unsupported;
1301    /// - true: if the SQL Integrity Enhancement Facility is supported.
1302    SqlSupportsIntegrityEnhancementFacility = 527,
1303    ///
1304    /// Retrieves the support level for SQL OUTER JOINs.
1305    ///
1306    /// Returns an int32 ordinal for the SQL ordering being used, as described in
1307    /// `arrow.flight.protocol.sql.SqlOuterJoinsSupportLevel`.
1308    SqlOuterJoinsSupportLevel = 528,
1309    /// Retrieves a UTF-8 string with the preferred term for "schema".
1310    SqlSchemaTerm = 529,
1311    /// Retrieves a UTF-8 string with the preferred term for "procedure".
1312    SqlProcedureTerm = 530,
1313    ///
1314    /// Retrieves a UTF-8 string with the preferred term for "catalog".
1315    /// If an empty string is returned it is assumed that the server does NOT support catalogs.
1316    SqlCatalogTerm = 531,
1317    ///
1318    /// Retrieves a boolean value indicating whether a catalog appears at the start of a fully qualified table name.
1319    ///
1320    /// - false: if a catalog does not appear at the start of a fully qualified table name;
1321    /// - true: if a catalog appears at the start of a fully qualified table name.
1322    SqlCatalogAtStart = 532,
1323    ///
1324    /// Retrieves the supported actions for a SQL schema.
1325    ///
1326    /// Returns an int32 bitmask value representing the supported actions for a SQL schema.
1327    /// The returned bitmask should be parsed in order to retrieve the supported actions for a SQL schema.
1328    ///
1329    /// For instance:
1330    /// - return 0 (\b0)   => \[\] (no supported actions for SQL schema);
1331    /// - return 1 (\b1)   => \[SQL_ELEMENT_IN_PROCEDURE_CALLS\];
1332    /// - return 2 (\b10)  => \[SQL_ELEMENT_IN_INDEX_DEFINITIONS\];
1333    /// - return 3 (\b11)  => \[SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS\];
1334    /// - return 4 (\b100) => \[SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\];
1335    /// - return 5 (\b101) => \[SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\];
1336    /// - return 6 (\b110) => \[SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\];
1337    /// - return 7 (\b111) => \[SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\].
1338    /// Valid actions for a SQL schema are described under `arrow.flight.protocol.sql.SqlSupportedElementActions`.
1339    SqlSchemasSupportedActions = 533,
1340    ///
1341    /// Retrieves the supported actions for a SQL catalog.
1342    ///
1343    /// Returns an int32 bitmask value representing the supported actions for a SQL catalog.
1344    /// The returned bitmask should be parsed in order to retrieve the supported actions for a SQL catalog.
1345    ///
1346    /// For instance:
1347    /// - return 0 (\b0)   => \[\] (no supported actions for SQL catalog);
1348    /// - return 1 (\b1)   => \[SQL_ELEMENT_IN_PROCEDURE_CALLS\];
1349    /// - return 2 (\b10)  => \[SQL_ELEMENT_IN_INDEX_DEFINITIONS\];
1350    /// - return 3 (\b11)  => \[SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS\];
1351    /// - return 4 (\b100) => \[SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\];
1352    /// - return 5 (\b101) => \[SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\];
1353    /// - return 6 (\b110) => \[SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\];
1354    /// - return 7 (\b111) => \[SQL_ELEMENT_IN_PROCEDURE_CALLS, SQL_ELEMENT_IN_INDEX_DEFINITIONS, SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS\].
1355    /// Valid actions for a SQL catalog are described under `arrow.flight.protocol.sql.SqlSupportedElementActions`.
1356    SqlCatalogsSupportedActions = 534,
1357    ///
1358    /// Retrieves the supported SQL positioned commands.
1359    ///
1360    /// Returns an int32 bitmask value representing the supported SQL positioned commands.
1361    /// The returned bitmask should be parsed in order to retrieve the supported SQL positioned commands.
1362    ///
1363    /// For instance:
1364    /// - return 0 (\b0)   => \[\] (no supported SQL positioned commands);
1365    /// - return 1 (\b1)   => \[SQL_POSITIONED_DELETE\];
1366    /// - return 2 (\b10)  => \[SQL_POSITIONED_UPDATE\];
1367    /// - return 3 (\b11)  => \[SQL_POSITIONED_DELETE, SQL_POSITIONED_UPDATE\].
1368    /// Valid SQL positioned commands are described under `arrow.flight.protocol.sql.SqlSupportedPositionedCommands`.
1369    SqlSupportedPositionedCommands = 535,
1370    ///
1371    /// Retrieves a boolean value indicating whether SELECT FOR UPDATE statements are supported.
1372    ///
1373    /// Returns:
1374    /// - false: if SELECT FOR UPDATE statements are unsupported;
1375    /// - true: if SELECT FOR UPDATE statements are supported.
1376    SqlSelectForUpdateSupported = 536,
1377    ///
1378    /// Retrieves a boolean value indicating whether stored procedure calls that use the stored procedure escape syntax
1379    /// are supported.
1380    ///
1381    /// Returns:
1382    /// - false: if stored procedure calls that use the stored procedure escape syntax are unsupported;
1383    /// - true: if stored procedure calls that use the stored procedure escape syntax are supported.
1384    SqlStoredProceduresSupported = 537,
1385    ///
1386    /// Retrieves the supported SQL subqueries.
1387    ///
1388    /// Returns an int32 bitmask value representing the supported SQL subqueries.
1389    /// The returned bitmask should be parsed in order to retrieve the supported SQL subqueries.
1390    ///
1391    /// For instance:
1392    /// - return 0   (\b0)     => \[\] (no supported SQL subqueries);
1393    /// - return 1   (\b1)     => \[SQL_SUBQUERIES_IN_COMPARISONS\];
1394    /// - return 2   (\b10)    => \[SQL_SUBQUERIES_IN_EXISTS\];
1395    /// - return 3   (\b11)    => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS\];
1396    /// - return 4   (\b100)   => \[SQL_SUBQUERIES_IN_INS\];
1397    /// - return 5   (\b101)   => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_INS\];
1398    /// - return 6   (\b110)   => \[SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_EXISTS\];
1399    /// - return 7   (\b111)   => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS\];
1400    /// - return 8   (\b1000)  => \[SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1401    /// - return 9   (\b1001)  => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1402    /// - return 10  (\b1010)  => \[SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1403    /// - return 11  (\b1011)  => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1404    /// - return 12  (\b1100)  => \[SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1405    /// - return 13  (\b1101)  => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1406    /// - return 14  (\b1110)  => \[SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1407    /// - return 15  (\b1111)  => \[SQL_SUBQUERIES_IN_COMPARISONS, SQL_SUBQUERIES_IN_EXISTS, SQL_SUBQUERIES_IN_INS, SQL_SUBQUERIES_IN_QUANTIFIEDS\];
1408    /// - ...
1409    /// Valid SQL subqueries are described under `arrow.flight.protocol.sql.SqlSupportedSubqueries`.
1410    SqlSupportedSubqueries = 538,
1411    ///
1412    /// Retrieves a boolean value indicating whether correlated subqueries are supported.
1413    ///
1414    /// Returns:
1415    /// - false: if correlated subqueries are unsupported;
1416    /// - true: if correlated subqueries are supported.
1417    SqlCorrelatedSubqueriesSupported = 539,
1418    ///
1419    /// Retrieves the supported SQL UNIONs.
1420    ///
1421    /// Returns an int32 bitmask value representing the supported SQL UNIONs.
1422    /// The returned bitmask should be parsed in order to retrieve the supported SQL UNIONs.
1423    ///
1424    /// For instance:
1425    /// - return 0 (\b0)   => \[\] (no supported SQL UNIONs);
1426    /// - return 1 (\b1)   => \[SQL_UNION\];
1427    /// - return 2 (\b10)  => \[SQL_UNION_ALL\];
1428    /// - return 3 (\b11)  => \[SQL_UNION, SQL_UNION_ALL\].
1429    /// Valid SQL UNIONs are described under `arrow.flight.protocol.sql.SqlSupportedUnions`.
1430    SqlSupportedUnions = 540,
1431    /// Retrieves an int64 value representing the maximum number of hex characters allowed in an inline binary literal.
1432    SqlMaxBinaryLiteralLength = 541,
1433    /// Retrieves an int64 value representing the maximum number of characters allowed for a character literal.
1434    SqlMaxCharLiteralLength = 542,
1435    /// Retrieves an int64 value representing the maximum number of characters allowed for a column name.
1436    SqlMaxColumnNameLength = 543,
1437    /// Retrieves an int64 value representing the maximum number of columns allowed in a GROUP BY clause.
1438    SqlMaxColumnsInGroupBy = 544,
1439    /// Retrieves an int64 value representing the maximum number of columns allowed in an index.
1440    SqlMaxColumnsInIndex = 545,
1441    /// Retrieves an int64 value representing the maximum number of columns allowed in an ORDER BY clause.
1442    SqlMaxColumnsInOrderBy = 546,
1443    /// Retrieves an int64 value representing the maximum number of columns allowed in a SELECT list.
1444    SqlMaxColumnsInSelect = 547,
1445    /// Retrieves an int64 value representing the maximum number of columns allowed in a table.
1446    SqlMaxColumnsInTable = 548,
1447    /// Retrieves an int64 value representing the maximum number of concurrent connections possible.
1448    SqlMaxConnections = 549,
1449    /// Retrieves an int64 value representing the maximum number of characters allowed in a cursor name.
1450    SqlMaxCursorNameLength = 550,
1451    ///
1452    /// Retrieves an int64 value representing the maximum number of bytes allowed for an index,
1453    /// including all of the parts of the index.
1454    SqlMaxIndexLength = 551,
1455    /// Retrieves an int64 value representing the maximum number of characters allowed in a schema name.
1456    SqlDbSchemaNameLength = 552,
1457    /// Retrieves an int64 value representing the maximum number of characters allowed in a procedure name.
1458    SqlMaxProcedureNameLength = 553,
1459    /// Retrieves an int64 value representing the maximum number of characters allowed in a catalog name.
1460    SqlMaxCatalogNameLength = 554,
1461    /// Retrieves an int64 value representing the maximum number of bytes allowed in a single row.
1462    SqlMaxRowSize = 555,
1463    ///
1464    /// Retrieves a boolean indicating whether the return value for the JDBC method getMaxRowSize includes the SQL
1465    /// data types LONGVARCHAR and LONGVARBINARY.
1466    ///
1467    /// Returns:
1468    /// - false: if return value for the JDBC method getMaxRowSize does
1469    ///           not include the SQL data types LONGVARCHAR and LONGVARBINARY;
1470    /// - true: if return value for the JDBC method getMaxRowSize includes
1471    ///          the SQL data types LONGVARCHAR and LONGVARBINARY.
1472    SqlMaxRowSizeIncludesBlobs = 556,
1473    ///
1474    /// Retrieves an int64 value representing the maximum number of characters allowed for an SQL statement;
1475    /// a result of 0 (zero) means that there is no limit or the limit is not known.
1476    SqlMaxStatementLength = 557,
1477    /// Retrieves an int64 value representing the maximum number of active statements that can be open at the same time.
1478    SqlMaxStatements = 558,
1479    /// Retrieves an int64 value representing the maximum number of characters allowed in a table name.
1480    SqlMaxTableNameLength = 559,
1481    /// Retrieves an int64 value representing the maximum number of tables allowed in a SELECT statement.
1482    SqlMaxTablesInSelect = 560,
1483    /// Retrieves an int64 value representing the maximum number of characters allowed in a user name.
1484    SqlMaxUsernameLength = 561,
1485    ///
1486    /// Retrieves this database's default transaction isolation level as described in
1487    /// `arrow.flight.protocol.sql.SqlTransactionIsolationLevel`.
1488    ///
1489    /// Returns an int32 ordinal for the SQL transaction isolation level.
1490    SqlDefaultTransactionIsolation = 562,
1491    ///
1492    /// Retrieves a boolean value indicating whether transactions are supported. If not, invoking the method commit is a
1493    /// noop, and the isolation level is `arrow.flight.protocol.sql.SqlTransactionIsolationLevel.TRANSACTION_NONE`.
1494    ///
1495    /// Returns:
1496    /// - false: if transactions are unsupported;
1497    /// - true: if transactions are supported.
1498    SqlTransactionsSupported = 563,
1499    ///
1500    /// Retrieves the supported transactions isolation levels.
1501    ///
1502    /// Returns an int32 bitmask value representing the supported transactions isolation levels.
1503    /// The returned bitmask should be parsed in order to retrieve the supported transactions isolation levels.
1504    ///
1505    /// For instance:
1506    /// - return 0   (\b0)     => \[\] (no supported SQL transactions isolation levels);
1507    /// - return 1   (\b1)     => \[SQL_TRANSACTION_NONE\];
1508    /// - return 2   (\b10)    => \[SQL_TRANSACTION_READ_UNCOMMITTED\];
1509    /// - return 3   (\b11)    => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED\];
1510    /// - return 4   (\b100)   => \[SQL_TRANSACTION_READ_COMMITTED\];
1511    /// - return 5   (\b101)   => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_COMMITTED\];
1512    /// - return 6   (\b110)   => \[SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_READ_COMMITTED\];
1513    /// - return 7   (\b111)   => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_READ_COMMITTED\];
1514    /// - return 8   (\b1000)  => \[SQL_TRANSACTION_REPEATABLE_READ\];
1515    /// - return 9   (\b1001)  => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_REPEATABLE_READ\];
1516    /// - return 10  (\b1010)  => \[SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ\];
1517    /// - return 11  (\b1011)  => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_REPEATABLE_READ\];
1518    /// - return 12  (\b1100)  => \[SQL_TRANSACTION_READ_COMMITTED, SQL_TRANSACTION_REPEATABLE_READ\];
1519    /// - return 13  (\b1101)  => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_COMMITTED, SQL_TRANSACTION_REPEATABLE_READ\];
1520    /// - return 14  (\b1110)  => \[SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_READ_COMMITTED, SQL_TRANSACTION_REPEATABLE_READ\];
1521    /// - return 15  (\b1111)  => \[SQL_TRANSACTION_NONE, SQL_TRANSACTION_READ_UNCOMMITTED, SQL_TRANSACTION_READ_COMMITTED, SQL_TRANSACTION_REPEATABLE_READ\];
1522    /// - return 16  (\b10000) => \[SQL_TRANSACTION_SERIALIZABLE\];
1523    /// - ...
1524    /// Valid SQL transaction isolation levels are described under `arrow.flight.protocol.sql.SqlTransactionIsolationLevel`.
1525    SqlSupportedTransactionsIsolationLevels = 564,
1526    ///
1527    /// Retrieves a boolean value indicating whether a data definition statement within a transaction forces
1528    /// the transaction to commit.
1529    ///
1530    /// Returns:
1531    /// - false: if a data definition statement within a transaction does not force the transaction to commit;
1532    /// - true: if a data definition statement within a transaction forces the transaction to commit.
1533    SqlDataDefinitionCausesTransactionCommit = 565,
1534    ///
1535    /// Retrieves a boolean value indicating whether a data definition statement within a transaction is ignored.
1536    ///
1537    /// Returns:
1538    /// - false: if a data definition statement within a transaction is taken into account;
1539    /// - true: a data definition statement within a transaction is ignored.
1540    SqlDataDefinitionsInTransactionsIgnored = 566,
1541    ///
1542    /// Retrieves an int32 bitmask value representing the supported result set types.
1543    /// The returned bitmask should be parsed in order to retrieve the supported result set types.
1544    ///
1545    /// For instance:
1546    /// - return 0   (\b0)     => \[\] (no supported result set types);
1547    /// - return 1   (\b1)     => \[SQL_RESULT_SET_TYPE_UNSPECIFIED\];
1548    /// - return 2   (\b10)    => \[SQL_RESULT_SET_TYPE_FORWARD_ONLY\];
1549    /// - return 3   (\b11)    => \[SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_FORWARD_ONLY\];
1550    /// - return 4   (\b100)   => \[SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE\];
1551    /// - return 5   (\b101)   => \[SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE\];
1552    /// - return 6   (\b110)   => \[SQL_RESULT_SET_TYPE_FORWARD_ONLY, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE\];
1553    /// - return 7   (\b111)   => \[SQL_RESULT_SET_TYPE_UNSPECIFIED, SQL_RESULT_SET_TYPE_FORWARD_ONLY, SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE\];
1554    /// - return 8   (\b1000)  => \[SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE\];
1555    /// - ...
1556    /// Valid result set types are described under `arrow.flight.protocol.sql.SqlSupportedResultSetType`.
1557    SqlSupportedResultSetTypes = 567,
1558    ///
1559    /// Returns an int32 bitmask value representing the concurrency types supported for
1560    /// `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_UNSPECIFIED`.
1561    ///
1562    /// For instance:
1563    /// - return 0 (\b0)   => \[\] (no supported concurrency types for this result set type)
1564    /// - return 1 (\b1)   => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED\]
1565    /// - return 2 (\b10)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1566    /// - return 3 (\b11)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1567    /// - return 4 (\b100) => \[SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1568    /// - return 5 (\b101) => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1569    /// - return 6 (\b110)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1570    /// - return 7 (\b111)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1571    /// Valid result set concurrency types are described under `arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency`.
1572    SqlSupportedConcurrenciesForResultSetUnspecified = 568,
1573    ///
1574    /// Returns an int32 bitmask value representing the concurrency types supported for
1575    /// `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_FORWARD_ONLY`.
1576    ///
1577    /// For instance:
1578    /// - return 0 (\b0)   => \[\] (no supported concurrency types for this result set type)
1579    /// - return 1 (\b1)   => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED\]
1580    /// - return 2 (\b10)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1581    /// - return 3 (\b11)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1582    /// - return 4 (\b100) => \[SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1583    /// - return 5 (\b101) => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1584    /// - return 6 (\b110)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1585    /// - return 7 (\b111)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1586    /// Valid result set concurrency types are described under `arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency`.
1587    SqlSupportedConcurrenciesForResultSetForwardOnly = 569,
1588    ///
1589    /// Returns an int32 bitmask value representing the concurrency types supported for
1590    /// `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE`.
1591    ///
1592    /// For instance:
1593    /// - return 0 (\b0)   => \[\] (no supported concurrency types for this result set type)
1594    /// - return 1 (\b1)   => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED\]
1595    /// - return 2 (\b10)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1596    /// - return 3 (\b11)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1597    /// - return 4 (\b100) => \[SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1598    /// - return 5 (\b101) => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1599    /// - return 6 (\b110)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1600    /// - return 7 (\b111)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1601    /// Valid result set concurrency types are described under `arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency`.
1602    SqlSupportedConcurrenciesForResultSetScrollSensitive = 570,
1603    ///
1604    /// Returns an int32 bitmask value representing the concurrency types supported for
1605    /// `arrow.flight.protocol.sql.SqlSupportedResultSetType.SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE`.
1606    ///
1607    /// For instance:
1608    /// - return 0 (\b0)   => \[\] (no supported concurrency types for this result set type)
1609    /// - return 1 (\b1)   => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED\]
1610    /// - return 2 (\b10)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1611    /// - return 3 (\b11)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY\]
1612    /// - return 4 (\b100) => \[SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1613    /// - return 5 (\b101) => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1614    /// - return 6 (\b110)  => \[SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1615    /// - return 7 (\b111)  => \[SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED, SQL_RESULT_SET_CONCURRENCY_READ_ONLY, SQL_RESULT_SET_CONCURRENCY_UPDATABLE\]
1616    /// Valid result set concurrency types are described under `arrow.flight.protocol.sql.SqlSupportedResultSetConcurrency`.
1617    SqlSupportedConcurrenciesForResultSetScrollInsensitive = 571,
1618    ///
1619    /// Retrieves a boolean value indicating whether this database supports batch updates.
1620    ///
1621    /// - false: if this database does not support batch updates;
1622    /// - true: if this database supports batch updates.
1623    SqlBatchUpdatesSupported = 572,
1624    ///
1625    /// Retrieves a boolean value indicating whether this database supports savepoints.
1626    ///
1627    /// Returns:
1628    /// - false: if this database does not support savepoints;
1629    /// - true: if this database supports savepoints.
1630    SqlSavepointsSupported = 573,
1631    ///
1632    /// Retrieves a boolean value indicating whether named parameters are supported in callable statements.
1633    ///
1634    /// Returns:
1635    /// - false: if named parameters in callable statements are unsupported;
1636    /// - true: if named parameters in callable statements are supported.
1637    SqlNamedParametersSupported = 574,
1638    ///
1639    /// Retrieves a boolean value indicating whether updates made to a LOB are made on a copy or directly to the LOB.
1640    ///
1641    /// Returns:
1642    /// - false: if updates made to a LOB are made directly to the LOB;
1643    /// - true: if updates made to a LOB are made on a copy.
1644    SqlLocatorsUpdateCopy = 575,
1645    ///
1646    /// Retrieves a boolean value indicating whether invoking user-defined or vendor functions
1647    /// using the stored procedure escape syntax is supported.
1648    ///
1649    /// Returns:
1650    /// - false: if invoking user-defined or vendor functions using the stored procedure escape syntax is unsupported;
1651    /// - true: if invoking user-defined or vendor functions using the stored procedure escape syntax is supported.
1652    SqlStoredFunctionsUsingCallSyntaxSupported = 576,
1653}
1654impl SqlInfo {
1655    /// String value of the enum field names used in the ProtoBuf definition.
1656    ///
1657    /// The values are not transformed in any way and thus are considered stable
1658    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1659    pub fn as_str_name(&self) -> &'static str {
1660        match self {
1661            Self::FlightSqlServerName => "FLIGHT_SQL_SERVER_NAME",
1662            Self::FlightSqlServerVersion => "FLIGHT_SQL_SERVER_VERSION",
1663            Self::FlightSqlServerArrowVersion => "FLIGHT_SQL_SERVER_ARROW_VERSION",
1664            Self::FlightSqlServerReadOnly => "FLIGHT_SQL_SERVER_READ_ONLY",
1665            Self::FlightSqlServerSql => "FLIGHT_SQL_SERVER_SQL",
1666            Self::FlightSqlServerSubstrait => "FLIGHT_SQL_SERVER_SUBSTRAIT",
1667            Self::FlightSqlServerSubstraitMinVersion => {
1668                "FLIGHT_SQL_SERVER_SUBSTRAIT_MIN_VERSION"
1669            }
1670            Self::FlightSqlServerSubstraitMaxVersion => {
1671                "FLIGHT_SQL_SERVER_SUBSTRAIT_MAX_VERSION"
1672            }
1673            Self::FlightSqlServerTransaction => "FLIGHT_SQL_SERVER_TRANSACTION",
1674            Self::FlightSqlServerCancel => "FLIGHT_SQL_SERVER_CANCEL",
1675            Self::FlightSqlServerBulkIngestion => "FLIGHT_SQL_SERVER_BULK_INGESTION",
1676            Self::FlightSqlServerIngestTransactionsSupported => {
1677                "FLIGHT_SQL_SERVER_INGEST_TRANSACTIONS_SUPPORTED"
1678            }
1679            Self::FlightSqlServerStatementTimeout => {
1680                "FLIGHT_SQL_SERVER_STATEMENT_TIMEOUT"
1681            }
1682            Self::FlightSqlServerTransactionTimeout => {
1683                "FLIGHT_SQL_SERVER_TRANSACTION_TIMEOUT"
1684            }
1685            Self::SqlDdlCatalog => "SQL_DDL_CATALOG",
1686            Self::SqlDdlSchema => "SQL_DDL_SCHEMA",
1687            Self::SqlDdlTable => "SQL_DDL_TABLE",
1688            Self::SqlIdentifierCase => "SQL_IDENTIFIER_CASE",
1689            Self::SqlIdentifierQuoteChar => "SQL_IDENTIFIER_QUOTE_CHAR",
1690            Self::SqlQuotedIdentifierCase => "SQL_QUOTED_IDENTIFIER_CASE",
1691            Self::SqlAllTablesAreSelectable => "SQL_ALL_TABLES_ARE_SELECTABLE",
1692            Self::SqlNullOrdering => "SQL_NULL_ORDERING",
1693            Self::SqlKeywords => "SQL_KEYWORDS",
1694            Self::SqlNumericFunctions => "SQL_NUMERIC_FUNCTIONS",
1695            Self::SqlStringFunctions => "SQL_STRING_FUNCTIONS",
1696            Self::SqlSystemFunctions => "SQL_SYSTEM_FUNCTIONS",
1697            Self::SqlDatetimeFunctions => "SQL_DATETIME_FUNCTIONS",
1698            Self::SqlSearchStringEscape => "SQL_SEARCH_STRING_ESCAPE",
1699            Self::SqlExtraNameCharacters => "SQL_EXTRA_NAME_CHARACTERS",
1700            Self::SqlSupportsColumnAliasing => "SQL_SUPPORTS_COLUMN_ALIASING",
1701            Self::SqlNullPlusNullIsNull => "SQL_NULL_PLUS_NULL_IS_NULL",
1702            Self::SqlSupportsConvert => "SQL_SUPPORTS_CONVERT",
1703            Self::SqlSupportsTableCorrelationNames => {
1704                "SQL_SUPPORTS_TABLE_CORRELATION_NAMES"
1705            }
1706            Self::SqlSupportsDifferentTableCorrelationNames => {
1707                "SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES"
1708            }
1709            Self::SqlSupportsExpressionsInOrderBy => {
1710                "SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY"
1711            }
1712            Self::SqlSupportsOrderByUnrelated => "SQL_SUPPORTS_ORDER_BY_UNRELATED",
1713            Self::SqlSupportedGroupBy => "SQL_SUPPORTED_GROUP_BY",
1714            Self::SqlSupportsLikeEscapeClause => "SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE",
1715            Self::SqlSupportsNonNullableColumns => "SQL_SUPPORTS_NON_NULLABLE_COLUMNS",
1716            Self::SqlSupportedGrammar => "SQL_SUPPORTED_GRAMMAR",
1717            Self::SqlAnsi92SupportedLevel => "SQL_ANSI92_SUPPORTED_LEVEL",
1718            Self::SqlSupportsIntegrityEnhancementFacility => {
1719                "SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY"
1720            }
1721            Self::SqlOuterJoinsSupportLevel => "SQL_OUTER_JOINS_SUPPORT_LEVEL",
1722            Self::SqlSchemaTerm => "SQL_SCHEMA_TERM",
1723            Self::SqlProcedureTerm => "SQL_PROCEDURE_TERM",
1724            Self::SqlCatalogTerm => "SQL_CATALOG_TERM",
1725            Self::SqlCatalogAtStart => "SQL_CATALOG_AT_START",
1726            Self::SqlSchemasSupportedActions => "SQL_SCHEMAS_SUPPORTED_ACTIONS",
1727            Self::SqlCatalogsSupportedActions => "SQL_CATALOGS_SUPPORTED_ACTIONS",
1728            Self::SqlSupportedPositionedCommands => "SQL_SUPPORTED_POSITIONED_COMMANDS",
1729            Self::SqlSelectForUpdateSupported => "SQL_SELECT_FOR_UPDATE_SUPPORTED",
1730            Self::SqlStoredProceduresSupported => "SQL_STORED_PROCEDURES_SUPPORTED",
1731            Self::SqlSupportedSubqueries => "SQL_SUPPORTED_SUBQUERIES",
1732            Self::SqlCorrelatedSubqueriesSupported => {
1733                "SQL_CORRELATED_SUBQUERIES_SUPPORTED"
1734            }
1735            Self::SqlSupportedUnions => "SQL_SUPPORTED_UNIONS",
1736            Self::SqlMaxBinaryLiteralLength => "SQL_MAX_BINARY_LITERAL_LENGTH",
1737            Self::SqlMaxCharLiteralLength => "SQL_MAX_CHAR_LITERAL_LENGTH",
1738            Self::SqlMaxColumnNameLength => "SQL_MAX_COLUMN_NAME_LENGTH",
1739            Self::SqlMaxColumnsInGroupBy => "SQL_MAX_COLUMNS_IN_GROUP_BY",
1740            Self::SqlMaxColumnsInIndex => "SQL_MAX_COLUMNS_IN_INDEX",
1741            Self::SqlMaxColumnsInOrderBy => "SQL_MAX_COLUMNS_IN_ORDER_BY",
1742            Self::SqlMaxColumnsInSelect => "SQL_MAX_COLUMNS_IN_SELECT",
1743            Self::SqlMaxColumnsInTable => "SQL_MAX_COLUMNS_IN_TABLE",
1744            Self::SqlMaxConnections => "SQL_MAX_CONNECTIONS",
1745            Self::SqlMaxCursorNameLength => "SQL_MAX_CURSOR_NAME_LENGTH",
1746            Self::SqlMaxIndexLength => "SQL_MAX_INDEX_LENGTH",
1747            Self::SqlDbSchemaNameLength => "SQL_DB_SCHEMA_NAME_LENGTH",
1748            Self::SqlMaxProcedureNameLength => "SQL_MAX_PROCEDURE_NAME_LENGTH",
1749            Self::SqlMaxCatalogNameLength => "SQL_MAX_CATALOG_NAME_LENGTH",
1750            Self::SqlMaxRowSize => "SQL_MAX_ROW_SIZE",
1751            Self::SqlMaxRowSizeIncludesBlobs => "SQL_MAX_ROW_SIZE_INCLUDES_BLOBS",
1752            Self::SqlMaxStatementLength => "SQL_MAX_STATEMENT_LENGTH",
1753            Self::SqlMaxStatements => "SQL_MAX_STATEMENTS",
1754            Self::SqlMaxTableNameLength => "SQL_MAX_TABLE_NAME_LENGTH",
1755            Self::SqlMaxTablesInSelect => "SQL_MAX_TABLES_IN_SELECT",
1756            Self::SqlMaxUsernameLength => "SQL_MAX_USERNAME_LENGTH",
1757            Self::SqlDefaultTransactionIsolation => "SQL_DEFAULT_TRANSACTION_ISOLATION",
1758            Self::SqlTransactionsSupported => "SQL_TRANSACTIONS_SUPPORTED",
1759            Self::SqlSupportedTransactionsIsolationLevels => {
1760                "SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS"
1761            }
1762            Self::SqlDataDefinitionCausesTransactionCommit => {
1763                "SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT"
1764            }
1765            Self::SqlDataDefinitionsInTransactionsIgnored => {
1766                "SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED"
1767            }
1768            Self::SqlSupportedResultSetTypes => "SQL_SUPPORTED_RESULT_SET_TYPES",
1769            Self::SqlSupportedConcurrenciesForResultSetUnspecified => {
1770                "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED"
1771            }
1772            Self::SqlSupportedConcurrenciesForResultSetForwardOnly => {
1773                "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY"
1774            }
1775            Self::SqlSupportedConcurrenciesForResultSetScrollSensitive => {
1776                "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE"
1777            }
1778            Self::SqlSupportedConcurrenciesForResultSetScrollInsensitive => {
1779                "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE"
1780            }
1781            Self::SqlBatchUpdatesSupported => "SQL_BATCH_UPDATES_SUPPORTED",
1782            Self::SqlSavepointsSupported => "SQL_SAVEPOINTS_SUPPORTED",
1783            Self::SqlNamedParametersSupported => "SQL_NAMED_PARAMETERS_SUPPORTED",
1784            Self::SqlLocatorsUpdateCopy => "SQL_LOCATORS_UPDATE_COPY",
1785            Self::SqlStoredFunctionsUsingCallSyntaxSupported => {
1786                "SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED"
1787            }
1788        }
1789    }
1790    /// Creates an enum from field names used in the ProtoBuf definition.
1791    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1792        match value {
1793            "FLIGHT_SQL_SERVER_NAME" => Some(Self::FlightSqlServerName),
1794            "FLIGHT_SQL_SERVER_VERSION" => Some(Self::FlightSqlServerVersion),
1795            "FLIGHT_SQL_SERVER_ARROW_VERSION" => Some(Self::FlightSqlServerArrowVersion),
1796            "FLIGHT_SQL_SERVER_READ_ONLY" => Some(Self::FlightSqlServerReadOnly),
1797            "FLIGHT_SQL_SERVER_SQL" => Some(Self::FlightSqlServerSql),
1798            "FLIGHT_SQL_SERVER_SUBSTRAIT" => Some(Self::FlightSqlServerSubstrait),
1799            "FLIGHT_SQL_SERVER_SUBSTRAIT_MIN_VERSION" => {
1800                Some(Self::FlightSqlServerSubstraitMinVersion)
1801            }
1802            "FLIGHT_SQL_SERVER_SUBSTRAIT_MAX_VERSION" => {
1803                Some(Self::FlightSqlServerSubstraitMaxVersion)
1804            }
1805            "FLIGHT_SQL_SERVER_TRANSACTION" => Some(Self::FlightSqlServerTransaction),
1806            "FLIGHT_SQL_SERVER_CANCEL" => Some(Self::FlightSqlServerCancel),
1807            "FLIGHT_SQL_SERVER_BULK_INGESTION" => {
1808                Some(Self::FlightSqlServerBulkIngestion)
1809            }
1810            "FLIGHT_SQL_SERVER_INGEST_TRANSACTIONS_SUPPORTED" => {
1811                Some(Self::FlightSqlServerIngestTransactionsSupported)
1812            }
1813            "FLIGHT_SQL_SERVER_STATEMENT_TIMEOUT" => {
1814                Some(Self::FlightSqlServerStatementTimeout)
1815            }
1816            "FLIGHT_SQL_SERVER_TRANSACTION_TIMEOUT" => {
1817                Some(Self::FlightSqlServerTransactionTimeout)
1818            }
1819            "SQL_DDL_CATALOG" => Some(Self::SqlDdlCatalog),
1820            "SQL_DDL_SCHEMA" => Some(Self::SqlDdlSchema),
1821            "SQL_DDL_TABLE" => Some(Self::SqlDdlTable),
1822            "SQL_IDENTIFIER_CASE" => Some(Self::SqlIdentifierCase),
1823            "SQL_IDENTIFIER_QUOTE_CHAR" => Some(Self::SqlIdentifierQuoteChar),
1824            "SQL_QUOTED_IDENTIFIER_CASE" => Some(Self::SqlQuotedIdentifierCase),
1825            "SQL_ALL_TABLES_ARE_SELECTABLE" => Some(Self::SqlAllTablesAreSelectable),
1826            "SQL_NULL_ORDERING" => Some(Self::SqlNullOrdering),
1827            "SQL_KEYWORDS" => Some(Self::SqlKeywords),
1828            "SQL_NUMERIC_FUNCTIONS" => Some(Self::SqlNumericFunctions),
1829            "SQL_STRING_FUNCTIONS" => Some(Self::SqlStringFunctions),
1830            "SQL_SYSTEM_FUNCTIONS" => Some(Self::SqlSystemFunctions),
1831            "SQL_DATETIME_FUNCTIONS" => Some(Self::SqlDatetimeFunctions),
1832            "SQL_SEARCH_STRING_ESCAPE" => Some(Self::SqlSearchStringEscape),
1833            "SQL_EXTRA_NAME_CHARACTERS" => Some(Self::SqlExtraNameCharacters),
1834            "SQL_SUPPORTS_COLUMN_ALIASING" => Some(Self::SqlSupportsColumnAliasing),
1835            "SQL_NULL_PLUS_NULL_IS_NULL" => Some(Self::SqlNullPlusNullIsNull),
1836            "SQL_SUPPORTS_CONVERT" => Some(Self::SqlSupportsConvert),
1837            "SQL_SUPPORTS_TABLE_CORRELATION_NAMES" => {
1838                Some(Self::SqlSupportsTableCorrelationNames)
1839            }
1840            "SQL_SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES" => {
1841                Some(Self::SqlSupportsDifferentTableCorrelationNames)
1842            }
1843            "SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY" => {
1844                Some(Self::SqlSupportsExpressionsInOrderBy)
1845            }
1846            "SQL_SUPPORTS_ORDER_BY_UNRELATED" => Some(Self::SqlSupportsOrderByUnrelated),
1847            "SQL_SUPPORTED_GROUP_BY" => Some(Self::SqlSupportedGroupBy),
1848            "SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE" => Some(Self::SqlSupportsLikeEscapeClause),
1849            "SQL_SUPPORTS_NON_NULLABLE_COLUMNS" => {
1850                Some(Self::SqlSupportsNonNullableColumns)
1851            }
1852            "SQL_SUPPORTED_GRAMMAR" => Some(Self::SqlSupportedGrammar),
1853            "SQL_ANSI92_SUPPORTED_LEVEL" => Some(Self::SqlAnsi92SupportedLevel),
1854            "SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY" => {
1855                Some(Self::SqlSupportsIntegrityEnhancementFacility)
1856            }
1857            "SQL_OUTER_JOINS_SUPPORT_LEVEL" => Some(Self::SqlOuterJoinsSupportLevel),
1858            "SQL_SCHEMA_TERM" => Some(Self::SqlSchemaTerm),
1859            "SQL_PROCEDURE_TERM" => Some(Self::SqlProcedureTerm),
1860            "SQL_CATALOG_TERM" => Some(Self::SqlCatalogTerm),
1861            "SQL_CATALOG_AT_START" => Some(Self::SqlCatalogAtStart),
1862            "SQL_SCHEMAS_SUPPORTED_ACTIONS" => Some(Self::SqlSchemasSupportedActions),
1863            "SQL_CATALOGS_SUPPORTED_ACTIONS" => Some(Self::SqlCatalogsSupportedActions),
1864            "SQL_SUPPORTED_POSITIONED_COMMANDS" => {
1865                Some(Self::SqlSupportedPositionedCommands)
1866            }
1867            "SQL_SELECT_FOR_UPDATE_SUPPORTED" => Some(Self::SqlSelectForUpdateSupported),
1868            "SQL_STORED_PROCEDURES_SUPPORTED" => Some(Self::SqlStoredProceduresSupported),
1869            "SQL_SUPPORTED_SUBQUERIES" => Some(Self::SqlSupportedSubqueries),
1870            "SQL_CORRELATED_SUBQUERIES_SUPPORTED" => {
1871                Some(Self::SqlCorrelatedSubqueriesSupported)
1872            }
1873            "SQL_SUPPORTED_UNIONS" => Some(Self::SqlSupportedUnions),
1874            "SQL_MAX_BINARY_LITERAL_LENGTH" => Some(Self::SqlMaxBinaryLiteralLength),
1875            "SQL_MAX_CHAR_LITERAL_LENGTH" => Some(Self::SqlMaxCharLiteralLength),
1876            "SQL_MAX_COLUMN_NAME_LENGTH" => Some(Self::SqlMaxColumnNameLength),
1877            "SQL_MAX_COLUMNS_IN_GROUP_BY" => Some(Self::SqlMaxColumnsInGroupBy),
1878            "SQL_MAX_COLUMNS_IN_INDEX" => Some(Self::SqlMaxColumnsInIndex),
1879            "SQL_MAX_COLUMNS_IN_ORDER_BY" => Some(Self::SqlMaxColumnsInOrderBy),
1880            "SQL_MAX_COLUMNS_IN_SELECT" => Some(Self::SqlMaxColumnsInSelect),
1881            "SQL_MAX_COLUMNS_IN_TABLE" => Some(Self::SqlMaxColumnsInTable),
1882            "SQL_MAX_CONNECTIONS" => Some(Self::SqlMaxConnections),
1883            "SQL_MAX_CURSOR_NAME_LENGTH" => Some(Self::SqlMaxCursorNameLength),
1884            "SQL_MAX_INDEX_LENGTH" => Some(Self::SqlMaxIndexLength),
1885            "SQL_DB_SCHEMA_NAME_LENGTH" => Some(Self::SqlDbSchemaNameLength),
1886            "SQL_MAX_PROCEDURE_NAME_LENGTH" => Some(Self::SqlMaxProcedureNameLength),
1887            "SQL_MAX_CATALOG_NAME_LENGTH" => Some(Self::SqlMaxCatalogNameLength),
1888            "SQL_MAX_ROW_SIZE" => Some(Self::SqlMaxRowSize),
1889            "SQL_MAX_ROW_SIZE_INCLUDES_BLOBS" => Some(Self::SqlMaxRowSizeIncludesBlobs),
1890            "SQL_MAX_STATEMENT_LENGTH" => Some(Self::SqlMaxStatementLength),
1891            "SQL_MAX_STATEMENTS" => Some(Self::SqlMaxStatements),
1892            "SQL_MAX_TABLE_NAME_LENGTH" => Some(Self::SqlMaxTableNameLength),
1893            "SQL_MAX_TABLES_IN_SELECT" => Some(Self::SqlMaxTablesInSelect),
1894            "SQL_MAX_USERNAME_LENGTH" => Some(Self::SqlMaxUsernameLength),
1895            "SQL_DEFAULT_TRANSACTION_ISOLATION" => {
1896                Some(Self::SqlDefaultTransactionIsolation)
1897            }
1898            "SQL_TRANSACTIONS_SUPPORTED" => Some(Self::SqlTransactionsSupported),
1899            "SQL_SUPPORTED_TRANSACTIONS_ISOLATION_LEVELS" => {
1900                Some(Self::SqlSupportedTransactionsIsolationLevels)
1901            }
1902            "SQL_DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT" => {
1903                Some(Self::SqlDataDefinitionCausesTransactionCommit)
1904            }
1905            "SQL_DATA_DEFINITIONS_IN_TRANSACTIONS_IGNORED" => {
1906                Some(Self::SqlDataDefinitionsInTransactionsIgnored)
1907            }
1908            "SQL_SUPPORTED_RESULT_SET_TYPES" => Some(Self::SqlSupportedResultSetTypes),
1909            "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_UNSPECIFIED" => {
1910                Some(Self::SqlSupportedConcurrenciesForResultSetUnspecified)
1911            }
1912            "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_FORWARD_ONLY" => {
1913                Some(Self::SqlSupportedConcurrenciesForResultSetForwardOnly)
1914            }
1915            "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_SENSITIVE" => {
1916                Some(Self::SqlSupportedConcurrenciesForResultSetScrollSensitive)
1917            }
1918            "SQL_SUPPORTED_CONCURRENCIES_FOR_RESULT_SET_SCROLL_INSENSITIVE" => {
1919                Some(Self::SqlSupportedConcurrenciesForResultSetScrollInsensitive)
1920            }
1921            "SQL_BATCH_UPDATES_SUPPORTED" => Some(Self::SqlBatchUpdatesSupported),
1922            "SQL_SAVEPOINTS_SUPPORTED" => Some(Self::SqlSavepointsSupported),
1923            "SQL_NAMED_PARAMETERS_SUPPORTED" => Some(Self::SqlNamedParametersSupported),
1924            "SQL_LOCATORS_UPDATE_COPY" => Some(Self::SqlLocatorsUpdateCopy),
1925            "SQL_STORED_FUNCTIONS_USING_CALL_SYNTAX_SUPPORTED" => {
1926                Some(Self::SqlStoredFunctionsUsingCallSyntaxSupported)
1927            }
1928            _ => None,
1929        }
1930    }
1931}
1932/// The level of support for Flight SQL transaction RPCs.
1933#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1934#[repr(i32)]
1935pub enum SqlSupportedTransaction {
1936    /// Unknown/not indicated/no support
1937    None = 0,
1938    /// Transactions, but not savepoints.
1939    /// A savepoint is a mark within a transaction that can be individually
1940    /// rolled back to. Not all databases support savepoints.
1941    Transaction = 1,
1942    /// Transactions and savepoints
1943    Savepoint = 2,
1944}
1945impl SqlSupportedTransaction {
1946    /// String value of the enum field names used in the ProtoBuf definition.
1947    ///
1948    /// The values are not transformed in any way and thus are considered stable
1949    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1950    pub fn as_str_name(&self) -> &'static str {
1951        match self {
1952            Self::None => "SQL_SUPPORTED_TRANSACTION_NONE",
1953            Self::Transaction => "SQL_SUPPORTED_TRANSACTION_TRANSACTION",
1954            Self::Savepoint => "SQL_SUPPORTED_TRANSACTION_SAVEPOINT",
1955        }
1956    }
1957    /// Creates an enum from field names used in the ProtoBuf definition.
1958    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1959        match value {
1960            "SQL_SUPPORTED_TRANSACTION_NONE" => Some(Self::None),
1961            "SQL_SUPPORTED_TRANSACTION_TRANSACTION" => Some(Self::Transaction),
1962            "SQL_SUPPORTED_TRANSACTION_SAVEPOINT" => Some(Self::Savepoint),
1963            _ => None,
1964        }
1965    }
1966}
1967#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1968#[repr(i32)]
1969pub enum SqlSupportedCaseSensitivity {
1970    SqlCaseSensitivityUnknown = 0,
1971    SqlCaseSensitivityCaseInsensitive = 1,
1972    SqlCaseSensitivityUppercase = 2,
1973    SqlCaseSensitivityLowercase = 3,
1974}
1975impl SqlSupportedCaseSensitivity {
1976    /// String value of the enum field names used in the ProtoBuf definition.
1977    ///
1978    /// The values are not transformed in any way and thus are considered stable
1979    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1980    pub fn as_str_name(&self) -> &'static str {
1981        match self {
1982            Self::SqlCaseSensitivityUnknown => "SQL_CASE_SENSITIVITY_UNKNOWN",
1983            Self::SqlCaseSensitivityCaseInsensitive => {
1984                "SQL_CASE_SENSITIVITY_CASE_INSENSITIVE"
1985            }
1986            Self::SqlCaseSensitivityUppercase => "SQL_CASE_SENSITIVITY_UPPERCASE",
1987            Self::SqlCaseSensitivityLowercase => "SQL_CASE_SENSITIVITY_LOWERCASE",
1988        }
1989    }
1990    /// Creates an enum from field names used in the ProtoBuf definition.
1991    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1992        match value {
1993            "SQL_CASE_SENSITIVITY_UNKNOWN" => Some(Self::SqlCaseSensitivityUnknown),
1994            "SQL_CASE_SENSITIVITY_CASE_INSENSITIVE" => {
1995                Some(Self::SqlCaseSensitivityCaseInsensitive)
1996            }
1997            "SQL_CASE_SENSITIVITY_UPPERCASE" => Some(Self::SqlCaseSensitivityUppercase),
1998            "SQL_CASE_SENSITIVITY_LOWERCASE" => Some(Self::SqlCaseSensitivityLowercase),
1999            _ => None,
2000        }
2001    }
2002}
2003#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2004#[repr(i32)]
2005pub enum SqlNullOrdering {
2006    SqlNullsSortedHigh = 0,
2007    SqlNullsSortedLow = 1,
2008    SqlNullsSortedAtStart = 2,
2009    SqlNullsSortedAtEnd = 3,
2010}
2011impl SqlNullOrdering {
2012    /// String value of the enum field names used in the ProtoBuf definition.
2013    ///
2014    /// The values are not transformed in any way and thus are considered stable
2015    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2016    pub fn as_str_name(&self) -> &'static str {
2017        match self {
2018            Self::SqlNullsSortedHigh => "SQL_NULLS_SORTED_HIGH",
2019            Self::SqlNullsSortedLow => "SQL_NULLS_SORTED_LOW",
2020            Self::SqlNullsSortedAtStart => "SQL_NULLS_SORTED_AT_START",
2021            Self::SqlNullsSortedAtEnd => "SQL_NULLS_SORTED_AT_END",
2022        }
2023    }
2024    /// Creates an enum from field names used in the ProtoBuf definition.
2025    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2026        match value {
2027            "SQL_NULLS_SORTED_HIGH" => Some(Self::SqlNullsSortedHigh),
2028            "SQL_NULLS_SORTED_LOW" => Some(Self::SqlNullsSortedLow),
2029            "SQL_NULLS_SORTED_AT_START" => Some(Self::SqlNullsSortedAtStart),
2030            "SQL_NULLS_SORTED_AT_END" => Some(Self::SqlNullsSortedAtEnd),
2031            _ => None,
2032        }
2033    }
2034}
2035#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2036#[repr(i32)]
2037pub enum SupportedSqlGrammar {
2038    SqlMinimumGrammar = 0,
2039    SqlCoreGrammar = 1,
2040    SqlExtendedGrammar = 2,
2041}
2042impl SupportedSqlGrammar {
2043    /// String value of the enum field names used in the ProtoBuf definition.
2044    ///
2045    /// The values are not transformed in any way and thus are considered stable
2046    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2047    pub fn as_str_name(&self) -> &'static str {
2048        match self {
2049            Self::SqlMinimumGrammar => "SQL_MINIMUM_GRAMMAR",
2050            Self::SqlCoreGrammar => "SQL_CORE_GRAMMAR",
2051            Self::SqlExtendedGrammar => "SQL_EXTENDED_GRAMMAR",
2052        }
2053    }
2054    /// Creates an enum from field names used in the ProtoBuf definition.
2055    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2056        match value {
2057            "SQL_MINIMUM_GRAMMAR" => Some(Self::SqlMinimumGrammar),
2058            "SQL_CORE_GRAMMAR" => Some(Self::SqlCoreGrammar),
2059            "SQL_EXTENDED_GRAMMAR" => Some(Self::SqlExtendedGrammar),
2060            _ => None,
2061        }
2062    }
2063}
2064#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2065#[repr(i32)]
2066pub enum SupportedAnsi92SqlGrammarLevel {
2067    Ansi92EntrySql = 0,
2068    Ansi92IntermediateSql = 1,
2069    Ansi92FullSql = 2,
2070}
2071impl SupportedAnsi92SqlGrammarLevel {
2072    /// String value of the enum field names used in the ProtoBuf definition.
2073    ///
2074    /// The values are not transformed in any way and thus are considered stable
2075    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2076    pub fn as_str_name(&self) -> &'static str {
2077        match self {
2078            Self::Ansi92EntrySql => "ANSI92_ENTRY_SQL",
2079            Self::Ansi92IntermediateSql => "ANSI92_INTERMEDIATE_SQL",
2080            Self::Ansi92FullSql => "ANSI92_FULL_SQL",
2081        }
2082    }
2083    /// Creates an enum from field names used in the ProtoBuf definition.
2084    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2085        match value {
2086            "ANSI92_ENTRY_SQL" => Some(Self::Ansi92EntrySql),
2087            "ANSI92_INTERMEDIATE_SQL" => Some(Self::Ansi92IntermediateSql),
2088            "ANSI92_FULL_SQL" => Some(Self::Ansi92FullSql),
2089            _ => None,
2090        }
2091    }
2092}
2093#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2094#[repr(i32)]
2095pub enum SqlOuterJoinsSupportLevel {
2096    SqlJoinsUnsupported = 0,
2097    SqlLimitedOuterJoins = 1,
2098    SqlFullOuterJoins = 2,
2099}
2100impl SqlOuterJoinsSupportLevel {
2101    /// String value of the enum field names used in the ProtoBuf definition.
2102    ///
2103    /// The values are not transformed in any way and thus are considered stable
2104    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2105    pub fn as_str_name(&self) -> &'static str {
2106        match self {
2107            Self::SqlJoinsUnsupported => "SQL_JOINS_UNSUPPORTED",
2108            Self::SqlLimitedOuterJoins => "SQL_LIMITED_OUTER_JOINS",
2109            Self::SqlFullOuterJoins => "SQL_FULL_OUTER_JOINS",
2110        }
2111    }
2112    /// Creates an enum from field names used in the ProtoBuf definition.
2113    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2114        match value {
2115            "SQL_JOINS_UNSUPPORTED" => Some(Self::SqlJoinsUnsupported),
2116            "SQL_LIMITED_OUTER_JOINS" => Some(Self::SqlLimitedOuterJoins),
2117            "SQL_FULL_OUTER_JOINS" => Some(Self::SqlFullOuterJoins),
2118            _ => None,
2119        }
2120    }
2121}
2122#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2123#[repr(i32)]
2124pub enum SqlSupportedGroupBy {
2125    SqlGroupByUnrelated = 0,
2126    SqlGroupByBeyondSelect = 1,
2127}
2128impl SqlSupportedGroupBy {
2129    /// String value of the enum field names used in the ProtoBuf definition.
2130    ///
2131    /// The values are not transformed in any way and thus are considered stable
2132    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2133    pub fn as_str_name(&self) -> &'static str {
2134        match self {
2135            Self::SqlGroupByUnrelated => "SQL_GROUP_BY_UNRELATED",
2136            Self::SqlGroupByBeyondSelect => "SQL_GROUP_BY_BEYOND_SELECT",
2137        }
2138    }
2139    /// Creates an enum from field names used in the ProtoBuf definition.
2140    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2141        match value {
2142            "SQL_GROUP_BY_UNRELATED" => Some(Self::SqlGroupByUnrelated),
2143            "SQL_GROUP_BY_BEYOND_SELECT" => Some(Self::SqlGroupByBeyondSelect),
2144            _ => None,
2145        }
2146    }
2147}
2148#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2149#[repr(i32)]
2150pub enum SqlSupportedElementActions {
2151    SqlElementInProcedureCalls = 0,
2152    SqlElementInIndexDefinitions = 1,
2153    SqlElementInPrivilegeDefinitions = 2,
2154}
2155impl SqlSupportedElementActions {
2156    /// String value of the enum field names used in the ProtoBuf definition.
2157    ///
2158    /// The values are not transformed in any way and thus are considered stable
2159    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2160    pub fn as_str_name(&self) -> &'static str {
2161        match self {
2162            Self::SqlElementInProcedureCalls => "SQL_ELEMENT_IN_PROCEDURE_CALLS",
2163            Self::SqlElementInIndexDefinitions => "SQL_ELEMENT_IN_INDEX_DEFINITIONS",
2164            Self::SqlElementInPrivilegeDefinitions => {
2165                "SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS"
2166            }
2167        }
2168    }
2169    /// Creates an enum from field names used in the ProtoBuf definition.
2170    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2171        match value {
2172            "SQL_ELEMENT_IN_PROCEDURE_CALLS" => Some(Self::SqlElementInProcedureCalls),
2173            "SQL_ELEMENT_IN_INDEX_DEFINITIONS" => {
2174                Some(Self::SqlElementInIndexDefinitions)
2175            }
2176            "SQL_ELEMENT_IN_PRIVILEGE_DEFINITIONS" => {
2177                Some(Self::SqlElementInPrivilegeDefinitions)
2178            }
2179            _ => None,
2180        }
2181    }
2182}
2183#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2184#[repr(i32)]
2185pub enum SqlSupportedPositionedCommands {
2186    SqlPositionedDelete = 0,
2187    SqlPositionedUpdate = 1,
2188}
2189impl SqlSupportedPositionedCommands {
2190    /// String value of the enum field names used in the ProtoBuf definition.
2191    ///
2192    /// The values are not transformed in any way and thus are considered stable
2193    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2194    pub fn as_str_name(&self) -> &'static str {
2195        match self {
2196            Self::SqlPositionedDelete => "SQL_POSITIONED_DELETE",
2197            Self::SqlPositionedUpdate => "SQL_POSITIONED_UPDATE",
2198        }
2199    }
2200    /// Creates an enum from field names used in the ProtoBuf definition.
2201    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2202        match value {
2203            "SQL_POSITIONED_DELETE" => Some(Self::SqlPositionedDelete),
2204            "SQL_POSITIONED_UPDATE" => Some(Self::SqlPositionedUpdate),
2205            _ => None,
2206        }
2207    }
2208}
2209#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2210#[repr(i32)]
2211pub enum SqlSupportedSubqueries {
2212    SqlSubqueriesInComparisons = 0,
2213    SqlSubqueriesInExists = 1,
2214    SqlSubqueriesInIns = 2,
2215    SqlSubqueriesInQuantifieds = 3,
2216}
2217impl SqlSupportedSubqueries {
2218    /// String value of the enum field names used in the ProtoBuf definition.
2219    ///
2220    /// The values are not transformed in any way and thus are considered stable
2221    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2222    pub fn as_str_name(&self) -> &'static str {
2223        match self {
2224            Self::SqlSubqueriesInComparisons => "SQL_SUBQUERIES_IN_COMPARISONS",
2225            Self::SqlSubqueriesInExists => "SQL_SUBQUERIES_IN_EXISTS",
2226            Self::SqlSubqueriesInIns => "SQL_SUBQUERIES_IN_INS",
2227            Self::SqlSubqueriesInQuantifieds => "SQL_SUBQUERIES_IN_QUANTIFIEDS",
2228        }
2229    }
2230    /// Creates an enum from field names used in the ProtoBuf definition.
2231    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2232        match value {
2233            "SQL_SUBQUERIES_IN_COMPARISONS" => Some(Self::SqlSubqueriesInComparisons),
2234            "SQL_SUBQUERIES_IN_EXISTS" => Some(Self::SqlSubqueriesInExists),
2235            "SQL_SUBQUERIES_IN_INS" => Some(Self::SqlSubqueriesInIns),
2236            "SQL_SUBQUERIES_IN_QUANTIFIEDS" => Some(Self::SqlSubqueriesInQuantifieds),
2237            _ => None,
2238        }
2239    }
2240}
2241#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2242#[repr(i32)]
2243pub enum SqlSupportedUnions {
2244    SqlUnion = 0,
2245    SqlUnionAll = 1,
2246}
2247impl SqlSupportedUnions {
2248    /// String value of the enum field names used in the ProtoBuf definition.
2249    ///
2250    /// The values are not transformed in any way and thus are considered stable
2251    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2252    pub fn as_str_name(&self) -> &'static str {
2253        match self {
2254            Self::SqlUnion => "SQL_UNION",
2255            Self::SqlUnionAll => "SQL_UNION_ALL",
2256        }
2257    }
2258    /// Creates an enum from field names used in the ProtoBuf definition.
2259    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2260        match value {
2261            "SQL_UNION" => Some(Self::SqlUnion),
2262            "SQL_UNION_ALL" => Some(Self::SqlUnionAll),
2263            _ => None,
2264        }
2265    }
2266}
2267#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2268#[repr(i32)]
2269pub enum SqlTransactionIsolationLevel {
2270    SqlTransactionNone = 0,
2271    SqlTransactionReadUncommitted = 1,
2272    SqlTransactionReadCommitted = 2,
2273    SqlTransactionRepeatableRead = 3,
2274    SqlTransactionSerializable = 4,
2275}
2276impl SqlTransactionIsolationLevel {
2277    /// String value of the enum field names used in the ProtoBuf definition.
2278    ///
2279    /// The values are not transformed in any way and thus are considered stable
2280    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2281    pub fn as_str_name(&self) -> &'static str {
2282        match self {
2283            Self::SqlTransactionNone => "SQL_TRANSACTION_NONE",
2284            Self::SqlTransactionReadUncommitted => "SQL_TRANSACTION_READ_UNCOMMITTED",
2285            Self::SqlTransactionReadCommitted => "SQL_TRANSACTION_READ_COMMITTED",
2286            Self::SqlTransactionRepeatableRead => "SQL_TRANSACTION_REPEATABLE_READ",
2287            Self::SqlTransactionSerializable => "SQL_TRANSACTION_SERIALIZABLE",
2288        }
2289    }
2290    /// Creates an enum from field names used in the ProtoBuf definition.
2291    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2292        match value {
2293            "SQL_TRANSACTION_NONE" => Some(Self::SqlTransactionNone),
2294            "SQL_TRANSACTION_READ_UNCOMMITTED" => {
2295                Some(Self::SqlTransactionReadUncommitted)
2296            }
2297            "SQL_TRANSACTION_READ_COMMITTED" => Some(Self::SqlTransactionReadCommitted),
2298            "SQL_TRANSACTION_REPEATABLE_READ" => Some(Self::SqlTransactionRepeatableRead),
2299            "SQL_TRANSACTION_SERIALIZABLE" => Some(Self::SqlTransactionSerializable),
2300            _ => None,
2301        }
2302    }
2303}
2304#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2305#[repr(i32)]
2306pub enum SqlSupportedTransactions {
2307    SqlTransactionUnspecified = 0,
2308    SqlDataDefinitionTransactions = 1,
2309    SqlDataManipulationTransactions = 2,
2310}
2311impl SqlSupportedTransactions {
2312    /// String value of the enum field names used in the ProtoBuf definition.
2313    ///
2314    /// The values are not transformed in any way and thus are considered stable
2315    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2316    pub fn as_str_name(&self) -> &'static str {
2317        match self {
2318            Self::SqlTransactionUnspecified => "SQL_TRANSACTION_UNSPECIFIED",
2319            Self::SqlDataDefinitionTransactions => "SQL_DATA_DEFINITION_TRANSACTIONS",
2320            Self::SqlDataManipulationTransactions => "SQL_DATA_MANIPULATION_TRANSACTIONS",
2321        }
2322    }
2323    /// Creates an enum from field names used in the ProtoBuf definition.
2324    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2325        match value {
2326            "SQL_TRANSACTION_UNSPECIFIED" => Some(Self::SqlTransactionUnspecified),
2327            "SQL_DATA_DEFINITION_TRANSACTIONS" => {
2328                Some(Self::SqlDataDefinitionTransactions)
2329            }
2330            "SQL_DATA_MANIPULATION_TRANSACTIONS" => {
2331                Some(Self::SqlDataManipulationTransactions)
2332            }
2333            _ => None,
2334        }
2335    }
2336}
2337#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2338#[repr(i32)]
2339pub enum SqlSupportedResultSetType {
2340    SqlResultSetTypeUnspecified = 0,
2341    SqlResultSetTypeForwardOnly = 1,
2342    SqlResultSetTypeScrollInsensitive = 2,
2343    SqlResultSetTypeScrollSensitive = 3,
2344}
2345impl SqlSupportedResultSetType {
2346    /// String value of the enum field names used in the ProtoBuf definition.
2347    ///
2348    /// The values are not transformed in any way and thus are considered stable
2349    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2350    pub fn as_str_name(&self) -> &'static str {
2351        match self {
2352            Self::SqlResultSetTypeUnspecified => "SQL_RESULT_SET_TYPE_UNSPECIFIED",
2353            Self::SqlResultSetTypeForwardOnly => "SQL_RESULT_SET_TYPE_FORWARD_ONLY",
2354            Self::SqlResultSetTypeScrollInsensitive => {
2355                "SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE"
2356            }
2357            Self::SqlResultSetTypeScrollSensitive => {
2358                "SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE"
2359            }
2360        }
2361    }
2362    /// Creates an enum from field names used in the ProtoBuf definition.
2363    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2364        match value {
2365            "SQL_RESULT_SET_TYPE_UNSPECIFIED" => Some(Self::SqlResultSetTypeUnspecified),
2366            "SQL_RESULT_SET_TYPE_FORWARD_ONLY" => Some(Self::SqlResultSetTypeForwardOnly),
2367            "SQL_RESULT_SET_TYPE_SCROLL_INSENSITIVE" => {
2368                Some(Self::SqlResultSetTypeScrollInsensitive)
2369            }
2370            "SQL_RESULT_SET_TYPE_SCROLL_SENSITIVE" => {
2371                Some(Self::SqlResultSetTypeScrollSensitive)
2372            }
2373            _ => None,
2374        }
2375    }
2376}
2377#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2378#[repr(i32)]
2379pub enum SqlSupportedResultSetConcurrency {
2380    SqlResultSetConcurrencyUnspecified = 0,
2381    SqlResultSetConcurrencyReadOnly = 1,
2382    SqlResultSetConcurrencyUpdatable = 2,
2383}
2384impl SqlSupportedResultSetConcurrency {
2385    /// String value of the enum field names used in the ProtoBuf definition.
2386    ///
2387    /// The values are not transformed in any way and thus are considered stable
2388    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2389    pub fn as_str_name(&self) -> &'static str {
2390        match self {
2391            Self::SqlResultSetConcurrencyUnspecified => {
2392                "SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED"
2393            }
2394            Self::SqlResultSetConcurrencyReadOnly => {
2395                "SQL_RESULT_SET_CONCURRENCY_READ_ONLY"
2396            }
2397            Self::SqlResultSetConcurrencyUpdatable => {
2398                "SQL_RESULT_SET_CONCURRENCY_UPDATABLE"
2399            }
2400        }
2401    }
2402    /// Creates an enum from field names used in the ProtoBuf definition.
2403    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2404        match value {
2405            "SQL_RESULT_SET_CONCURRENCY_UNSPECIFIED" => {
2406                Some(Self::SqlResultSetConcurrencyUnspecified)
2407            }
2408            "SQL_RESULT_SET_CONCURRENCY_READ_ONLY" => {
2409                Some(Self::SqlResultSetConcurrencyReadOnly)
2410            }
2411            "SQL_RESULT_SET_CONCURRENCY_UPDATABLE" => {
2412                Some(Self::SqlResultSetConcurrencyUpdatable)
2413            }
2414            _ => None,
2415        }
2416    }
2417}
2418#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2419#[repr(i32)]
2420pub enum SqlSupportsConvert {
2421    SqlConvertBigint = 0,
2422    SqlConvertBinary = 1,
2423    SqlConvertBit = 2,
2424    SqlConvertChar = 3,
2425    SqlConvertDate = 4,
2426    SqlConvertDecimal = 5,
2427    SqlConvertFloat = 6,
2428    SqlConvertInteger = 7,
2429    SqlConvertIntervalDayTime = 8,
2430    SqlConvertIntervalYearMonth = 9,
2431    SqlConvertLongvarbinary = 10,
2432    SqlConvertLongvarchar = 11,
2433    SqlConvertNumeric = 12,
2434    SqlConvertReal = 13,
2435    SqlConvertSmallint = 14,
2436    SqlConvertTime = 15,
2437    SqlConvertTimestamp = 16,
2438    SqlConvertTinyint = 17,
2439    SqlConvertVarbinary = 18,
2440    SqlConvertVarchar = 19,
2441}
2442impl SqlSupportsConvert {
2443    /// String value of the enum field names used in the ProtoBuf definition.
2444    ///
2445    /// The values are not transformed in any way and thus are considered stable
2446    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2447    pub fn as_str_name(&self) -> &'static str {
2448        match self {
2449            Self::SqlConvertBigint => "SQL_CONVERT_BIGINT",
2450            Self::SqlConvertBinary => "SQL_CONVERT_BINARY",
2451            Self::SqlConvertBit => "SQL_CONVERT_BIT",
2452            Self::SqlConvertChar => "SQL_CONVERT_CHAR",
2453            Self::SqlConvertDate => "SQL_CONVERT_DATE",
2454            Self::SqlConvertDecimal => "SQL_CONVERT_DECIMAL",
2455            Self::SqlConvertFloat => "SQL_CONVERT_FLOAT",
2456            Self::SqlConvertInteger => "SQL_CONVERT_INTEGER",
2457            Self::SqlConvertIntervalDayTime => "SQL_CONVERT_INTERVAL_DAY_TIME",
2458            Self::SqlConvertIntervalYearMonth => "SQL_CONVERT_INTERVAL_YEAR_MONTH",
2459            Self::SqlConvertLongvarbinary => "SQL_CONVERT_LONGVARBINARY",
2460            Self::SqlConvertLongvarchar => "SQL_CONVERT_LONGVARCHAR",
2461            Self::SqlConvertNumeric => "SQL_CONVERT_NUMERIC",
2462            Self::SqlConvertReal => "SQL_CONVERT_REAL",
2463            Self::SqlConvertSmallint => "SQL_CONVERT_SMALLINT",
2464            Self::SqlConvertTime => "SQL_CONVERT_TIME",
2465            Self::SqlConvertTimestamp => "SQL_CONVERT_TIMESTAMP",
2466            Self::SqlConvertTinyint => "SQL_CONVERT_TINYINT",
2467            Self::SqlConvertVarbinary => "SQL_CONVERT_VARBINARY",
2468            Self::SqlConvertVarchar => "SQL_CONVERT_VARCHAR",
2469        }
2470    }
2471    /// Creates an enum from field names used in the ProtoBuf definition.
2472    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2473        match value {
2474            "SQL_CONVERT_BIGINT" => Some(Self::SqlConvertBigint),
2475            "SQL_CONVERT_BINARY" => Some(Self::SqlConvertBinary),
2476            "SQL_CONVERT_BIT" => Some(Self::SqlConvertBit),
2477            "SQL_CONVERT_CHAR" => Some(Self::SqlConvertChar),
2478            "SQL_CONVERT_DATE" => Some(Self::SqlConvertDate),
2479            "SQL_CONVERT_DECIMAL" => Some(Self::SqlConvertDecimal),
2480            "SQL_CONVERT_FLOAT" => Some(Self::SqlConvertFloat),
2481            "SQL_CONVERT_INTEGER" => Some(Self::SqlConvertInteger),
2482            "SQL_CONVERT_INTERVAL_DAY_TIME" => Some(Self::SqlConvertIntervalDayTime),
2483            "SQL_CONVERT_INTERVAL_YEAR_MONTH" => Some(Self::SqlConvertIntervalYearMonth),
2484            "SQL_CONVERT_LONGVARBINARY" => Some(Self::SqlConvertLongvarbinary),
2485            "SQL_CONVERT_LONGVARCHAR" => Some(Self::SqlConvertLongvarchar),
2486            "SQL_CONVERT_NUMERIC" => Some(Self::SqlConvertNumeric),
2487            "SQL_CONVERT_REAL" => Some(Self::SqlConvertReal),
2488            "SQL_CONVERT_SMALLINT" => Some(Self::SqlConvertSmallint),
2489            "SQL_CONVERT_TIME" => Some(Self::SqlConvertTime),
2490            "SQL_CONVERT_TIMESTAMP" => Some(Self::SqlConvertTimestamp),
2491            "SQL_CONVERT_TINYINT" => Some(Self::SqlConvertTinyint),
2492            "SQL_CONVERT_VARBINARY" => Some(Self::SqlConvertVarbinary),
2493            "SQL_CONVERT_VARCHAR" => Some(Self::SqlConvertVarchar),
2494            _ => None,
2495        }
2496    }
2497}
2498/// *
2499/// The JDBC/ODBC-defined type of any object.
2500/// All the values here are the same as in the JDBC and ODBC specs.
2501#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2502#[repr(i32)]
2503pub enum XdbcDataType {
2504    XdbcUnknownType = 0,
2505    XdbcChar = 1,
2506    XdbcNumeric = 2,
2507    XdbcDecimal = 3,
2508    XdbcInteger = 4,
2509    XdbcSmallint = 5,
2510    XdbcFloat = 6,
2511    XdbcReal = 7,
2512    XdbcDouble = 8,
2513    XdbcDatetime = 9,
2514    XdbcInterval = 10,
2515    XdbcVarchar = 12,
2516    XdbcDate = 91,
2517    XdbcTime = 92,
2518    XdbcTimestamp = 93,
2519    XdbcLongvarchar = -1,
2520    XdbcBinary = -2,
2521    XdbcVarbinary = -3,
2522    XdbcLongvarbinary = -4,
2523    XdbcBigint = -5,
2524    XdbcTinyint = -6,
2525    XdbcBit = -7,
2526    XdbcWchar = -8,
2527    XdbcWvarchar = -9,
2528}
2529impl XdbcDataType {
2530    /// String value of the enum field names used in the ProtoBuf definition.
2531    ///
2532    /// The values are not transformed in any way and thus are considered stable
2533    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2534    pub fn as_str_name(&self) -> &'static str {
2535        match self {
2536            Self::XdbcUnknownType => "XDBC_UNKNOWN_TYPE",
2537            Self::XdbcChar => "XDBC_CHAR",
2538            Self::XdbcNumeric => "XDBC_NUMERIC",
2539            Self::XdbcDecimal => "XDBC_DECIMAL",
2540            Self::XdbcInteger => "XDBC_INTEGER",
2541            Self::XdbcSmallint => "XDBC_SMALLINT",
2542            Self::XdbcFloat => "XDBC_FLOAT",
2543            Self::XdbcReal => "XDBC_REAL",
2544            Self::XdbcDouble => "XDBC_DOUBLE",
2545            Self::XdbcDatetime => "XDBC_DATETIME",
2546            Self::XdbcInterval => "XDBC_INTERVAL",
2547            Self::XdbcVarchar => "XDBC_VARCHAR",
2548            Self::XdbcDate => "XDBC_DATE",
2549            Self::XdbcTime => "XDBC_TIME",
2550            Self::XdbcTimestamp => "XDBC_TIMESTAMP",
2551            Self::XdbcLongvarchar => "XDBC_LONGVARCHAR",
2552            Self::XdbcBinary => "XDBC_BINARY",
2553            Self::XdbcVarbinary => "XDBC_VARBINARY",
2554            Self::XdbcLongvarbinary => "XDBC_LONGVARBINARY",
2555            Self::XdbcBigint => "XDBC_BIGINT",
2556            Self::XdbcTinyint => "XDBC_TINYINT",
2557            Self::XdbcBit => "XDBC_BIT",
2558            Self::XdbcWchar => "XDBC_WCHAR",
2559            Self::XdbcWvarchar => "XDBC_WVARCHAR",
2560        }
2561    }
2562    /// Creates an enum from field names used in the ProtoBuf definition.
2563    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2564        match value {
2565            "XDBC_UNKNOWN_TYPE" => Some(Self::XdbcUnknownType),
2566            "XDBC_CHAR" => Some(Self::XdbcChar),
2567            "XDBC_NUMERIC" => Some(Self::XdbcNumeric),
2568            "XDBC_DECIMAL" => Some(Self::XdbcDecimal),
2569            "XDBC_INTEGER" => Some(Self::XdbcInteger),
2570            "XDBC_SMALLINT" => Some(Self::XdbcSmallint),
2571            "XDBC_FLOAT" => Some(Self::XdbcFloat),
2572            "XDBC_REAL" => Some(Self::XdbcReal),
2573            "XDBC_DOUBLE" => Some(Self::XdbcDouble),
2574            "XDBC_DATETIME" => Some(Self::XdbcDatetime),
2575            "XDBC_INTERVAL" => Some(Self::XdbcInterval),
2576            "XDBC_VARCHAR" => Some(Self::XdbcVarchar),
2577            "XDBC_DATE" => Some(Self::XdbcDate),
2578            "XDBC_TIME" => Some(Self::XdbcTime),
2579            "XDBC_TIMESTAMP" => Some(Self::XdbcTimestamp),
2580            "XDBC_LONGVARCHAR" => Some(Self::XdbcLongvarchar),
2581            "XDBC_BINARY" => Some(Self::XdbcBinary),
2582            "XDBC_VARBINARY" => Some(Self::XdbcVarbinary),
2583            "XDBC_LONGVARBINARY" => Some(Self::XdbcLongvarbinary),
2584            "XDBC_BIGINT" => Some(Self::XdbcBigint),
2585            "XDBC_TINYINT" => Some(Self::XdbcTinyint),
2586            "XDBC_BIT" => Some(Self::XdbcBit),
2587            "XDBC_WCHAR" => Some(Self::XdbcWchar),
2588            "XDBC_WVARCHAR" => Some(Self::XdbcWvarchar),
2589            _ => None,
2590        }
2591    }
2592}
2593/// *
2594/// Detailed subtype information for XDBC_TYPE_DATETIME and XDBC_TYPE_INTERVAL.
2595#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2596#[repr(i32)]
2597pub enum XdbcDatetimeSubcode {
2598    XdbcSubcodeUnknown = 0,
2599    XdbcSubcodeYear = 1,
2600    XdbcSubcodeTime = 2,
2601    XdbcSubcodeTimestamp = 3,
2602    XdbcSubcodeTimeWithTimezone = 4,
2603    XdbcSubcodeTimestampWithTimezone = 5,
2604    XdbcSubcodeSecond = 6,
2605    XdbcSubcodeYearToMonth = 7,
2606    XdbcSubcodeDayToHour = 8,
2607    XdbcSubcodeDayToMinute = 9,
2608    XdbcSubcodeDayToSecond = 10,
2609    XdbcSubcodeHourToMinute = 11,
2610    XdbcSubcodeHourToSecond = 12,
2611    XdbcSubcodeMinuteToSecond = 13,
2612    XdbcSubcodeIntervalYear = 101,
2613    XdbcSubcodeIntervalMonth = 102,
2614    XdbcSubcodeIntervalDay = 103,
2615    XdbcSubcodeIntervalHour = 104,
2616    XdbcSubcodeIntervalMinute = 105,
2617    XdbcSubcodeIntervalSecond = 106,
2618    XdbcSubcodeIntervalYearToMonth = 107,
2619    XdbcSubcodeIntervalDayToHour = 108,
2620    XdbcSubcodeIntervalDayToMinute = 109,
2621    XdbcSubcodeIntervalDayToSecond = 110,
2622    XdbcSubcodeIntervalHourToMinute = 111,
2623    XdbcSubcodeIntervalHourToSecond = 112,
2624    XdbcSubcodeIntervalMinuteToSecond = 113,
2625}
2626impl XdbcDatetimeSubcode {
2627    /// String value of the enum field names used in the ProtoBuf definition.
2628    ///
2629    /// The values are not transformed in any way and thus are considered stable
2630    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2631    pub fn as_str_name(&self) -> &'static str {
2632        match self {
2633            Self::XdbcSubcodeUnknown => "XDBC_SUBCODE_UNKNOWN",
2634            Self::XdbcSubcodeYear => "XDBC_SUBCODE_YEAR",
2635            Self::XdbcSubcodeTime => "XDBC_SUBCODE_TIME",
2636            Self::XdbcSubcodeTimestamp => "XDBC_SUBCODE_TIMESTAMP",
2637            Self::XdbcSubcodeTimeWithTimezone => "XDBC_SUBCODE_TIME_WITH_TIMEZONE",
2638            Self::XdbcSubcodeTimestampWithTimezone => {
2639                "XDBC_SUBCODE_TIMESTAMP_WITH_TIMEZONE"
2640            }
2641            Self::XdbcSubcodeSecond => "XDBC_SUBCODE_SECOND",
2642            Self::XdbcSubcodeYearToMonth => "XDBC_SUBCODE_YEAR_TO_MONTH",
2643            Self::XdbcSubcodeDayToHour => "XDBC_SUBCODE_DAY_TO_HOUR",
2644            Self::XdbcSubcodeDayToMinute => "XDBC_SUBCODE_DAY_TO_MINUTE",
2645            Self::XdbcSubcodeDayToSecond => "XDBC_SUBCODE_DAY_TO_SECOND",
2646            Self::XdbcSubcodeHourToMinute => "XDBC_SUBCODE_HOUR_TO_MINUTE",
2647            Self::XdbcSubcodeHourToSecond => "XDBC_SUBCODE_HOUR_TO_SECOND",
2648            Self::XdbcSubcodeMinuteToSecond => "XDBC_SUBCODE_MINUTE_TO_SECOND",
2649            Self::XdbcSubcodeIntervalYear => "XDBC_SUBCODE_INTERVAL_YEAR",
2650            Self::XdbcSubcodeIntervalMonth => "XDBC_SUBCODE_INTERVAL_MONTH",
2651            Self::XdbcSubcodeIntervalDay => "XDBC_SUBCODE_INTERVAL_DAY",
2652            Self::XdbcSubcodeIntervalHour => "XDBC_SUBCODE_INTERVAL_HOUR",
2653            Self::XdbcSubcodeIntervalMinute => "XDBC_SUBCODE_INTERVAL_MINUTE",
2654            Self::XdbcSubcodeIntervalSecond => "XDBC_SUBCODE_INTERVAL_SECOND",
2655            Self::XdbcSubcodeIntervalYearToMonth => "XDBC_SUBCODE_INTERVAL_YEAR_TO_MONTH",
2656            Self::XdbcSubcodeIntervalDayToHour => "XDBC_SUBCODE_INTERVAL_DAY_TO_HOUR",
2657            Self::XdbcSubcodeIntervalDayToMinute => "XDBC_SUBCODE_INTERVAL_DAY_TO_MINUTE",
2658            Self::XdbcSubcodeIntervalDayToSecond => "XDBC_SUBCODE_INTERVAL_DAY_TO_SECOND",
2659            Self::XdbcSubcodeIntervalHourToMinute => {
2660                "XDBC_SUBCODE_INTERVAL_HOUR_TO_MINUTE"
2661            }
2662            Self::XdbcSubcodeIntervalHourToSecond => {
2663                "XDBC_SUBCODE_INTERVAL_HOUR_TO_SECOND"
2664            }
2665            Self::XdbcSubcodeIntervalMinuteToSecond => {
2666                "XDBC_SUBCODE_INTERVAL_MINUTE_TO_SECOND"
2667            }
2668        }
2669    }
2670    /// Creates an enum from field names used in the ProtoBuf definition.
2671    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2672        match value {
2673            "XDBC_SUBCODE_UNKNOWN" => Some(Self::XdbcSubcodeUnknown),
2674            "XDBC_SUBCODE_YEAR" => Some(Self::XdbcSubcodeYear),
2675            "XDBC_SUBCODE_TIME" => Some(Self::XdbcSubcodeTime),
2676            "XDBC_SUBCODE_TIMESTAMP" => Some(Self::XdbcSubcodeTimestamp),
2677            "XDBC_SUBCODE_TIME_WITH_TIMEZONE" => Some(Self::XdbcSubcodeTimeWithTimezone),
2678            "XDBC_SUBCODE_TIMESTAMP_WITH_TIMEZONE" => {
2679                Some(Self::XdbcSubcodeTimestampWithTimezone)
2680            }
2681            "XDBC_SUBCODE_SECOND" => Some(Self::XdbcSubcodeSecond),
2682            "XDBC_SUBCODE_YEAR_TO_MONTH" => Some(Self::XdbcSubcodeYearToMonth),
2683            "XDBC_SUBCODE_DAY_TO_HOUR" => Some(Self::XdbcSubcodeDayToHour),
2684            "XDBC_SUBCODE_DAY_TO_MINUTE" => Some(Self::XdbcSubcodeDayToMinute),
2685            "XDBC_SUBCODE_DAY_TO_SECOND" => Some(Self::XdbcSubcodeDayToSecond),
2686            "XDBC_SUBCODE_HOUR_TO_MINUTE" => Some(Self::XdbcSubcodeHourToMinute),
2687            "XDBC_SUBCODE_HOUR_TO_SECOND" => Some(Self::XdbcSubcodeHourToSecond),
2688            "XDBC_SUBCODE_MINUTE_TO_SECOND" => Some(Self::XdbcSubcodeMinuteToSecond),
2689            "XDBC_SUBCODE_INTERVAL_YEAR" => Some(Self::XdbcSubcodeIntervalYear),
2690            "XDBC_SUBCODE_INTERVAL_MONTH" => Some(Self::XdbcSubcodeIntervalMonth),
2691            "XDBC_SUBCODE_INTERVAL_DAY" => Some(Self::XdbcSubcodeIntervalDay),
2692            "XDBC_SUBCODE_INTERVAL_HOUR" => Some(Self::XdbcSubcodeIntervalHour),
2693            "XDBC_SUBCODE_INTERVAL_MINUTE" => Some(Self::XdbcSubcodeIntervalMinute),
2694            "XDBC_SUBCODE_INTERVAL_SECOND" => Some(Self::XdbcSubcodeIntervalSecond),
2695            "XDBC_SUBCODE_INTERVAL_YEAR_TO_MONTH" => {
2696                Some(Self::XdbcSubcodeIntervalYearToMonth)
2697            }
2698            "XDBC_SUBCODE_INTERVAL_DAY_TO_HOUR" => {
2699                Some(Self::XdbcSubcodeIntervalDayToHour)
2700            }
2701            "XDBC_SUBCODE_INTERVAL_DAY_TO_MINUTE" => {
2702                Some(Self::XdbcSubcodeIntervalDayToMinute)
2703            }
2704            "XDBC_SUBCODE_INTERVAL_DAY_TO_SECOND" => {
2705                Some(Self::XdbcSubcodeIntervalDayToSecond)
2706            }
2707            "XDBC_SUBCODE_INTERVAL_HOUR_TO_MINUTE" => {
2708                Some(Self::XdbcSubcodeIntervalHourToMinute)
2709            }
2710            "XDBC_SUBCODE_INTERVAL_HOUR_TO_SECOND" => {
2711                Some(Self::XdbcSubcodeIntervalHourToSecond)
2712            }
2713            "XDBC_SUBCODE_INTERVAL_MINUTE_TO_SECOND" => {
2714                Some(Self::XdbcSubcodeIntervalMinuteToSecond)
2715            }
2716            _ => None,
2717        }
2718    }
2719}
2720#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2721#[repr(i32)]
2722pub enum Nullable {
2723    /// *
2724    /// Indicates that the field does not allow the use of null values.
2725    NullabilityNoNulls = 0,
2726    /// *
2727    /// Indicates that the fields allow the use of null values.
2728    NullabilityNullable = 1,
2729    /// *
2730    /// Indicates that nullability of the fields cannot be determined.
2731    NullabilityUnknown = 2,
2732}
2733impl Nullable {
2734    /// String value of the enum field names used in the ProtoBuf definition.
2735    ///
2736    /// The values are not transformed in any way and thus are considered stable
2737    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2738    pub fn as_str_name(&self) -> &'static str {
2739        match self {
2740            Self::NullabilityNoNulls => "NULLABILITY_NO_NULLS",
2741            Self::NullabilityNullable => "NULLABILITY_NULLABLE",
2742            Self::NullabilityUnknown => "NULLABILITY_UNKNOWN",
2743        }
2744    }
2745    /// Creates an enum from field names used in the ProtoBuf definition.
2746    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2747        match value {
2748            "NULLABILITY_NO_NULLS" => Some(Self::NullabilityNoNulls),
2749            "NULLABILITY_NULLABLE" => Some(Self::NullabilityNullable),
2750            "NULLABILITY_UNKNOWN" => Some(Self::NullabilityUnknown),
2751            _ => None,
2752        }
2753    }
2754}
2755#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2756#[repr(i32)]
2757pub enum Searchable {
2758    /// *
2759    /// Indicates that column cannot be used in a WHERE clause.
2760    None = 0,
2761    /// *
2762    /// Indicates that the column can be used in a WHERE clause if it is using a
2763    /// LIKE operator.
2764    Char = 1,
2765    /// *
2766    /// Indicates that the column can be used In a WHERE clause with any
2767    /// operator other than LIKE.
2768    ///
2769    /// - Allowed operators: comparison, quantified comparison, BETWEEN,
2770    ///                       DISTINCT, IN, MATCH, and UNIQUE.
2771    Basic = 2,
2772    /// *
2773    /// Indicates that the column can be used in a WHERE clause using any operator.
2774    Full = 3,
2775}
2776impl Searchable {
2777    /// String value of the enum field names used in the ProtoBuf definition.
2778    ///
2779    /// The values are not transformed in any way and thus are considered stable
2780    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2781    pub fn as_str_name(&self) -> &'static str {
2782        match self {
2783            Self::None => "SEARCHABLE_NONE",
2784            Self::Char => "SEARCHABLE_CHAR",
2785            Self::Basic => "SEARCHABLE_BASIC",
2786            Self::Full => "SEARCHABLE_FULL",
2787        }
2788    }
2789    /// Creates an enum from field names used in the ProtoBuf definition.
2790    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2791        match value {
2792            "SEARCHABLE_NONE" => Some(Self::None),
2793            "SEARCHABLE_CHAR" => Some(Self::Char),
2794            "SEARCHABLE_BASIC" => Some(Self::Basic),
2795            "SEARCHABLE_FULL" => Some(Self::Full),
2796            _ => None,
2797        }
2798    }
2799}
2800#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2801#[repr(i32)]
2802pub enum UpdateDeleteRules {
2803    Cascade = 0,
2804    Restrict = 1,
2805    SetNull = 2,
2806    NoAction = 3,
2807    SetDefault = 4,
2808}
2809impl UpdateDeleteRules {
2810    /// String value of the enum field names used in the ProtoBuf definition.
2811    ///
2812    /// The values are not transformed in any way and thus are considered stable
2813    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2814    pub fn as_str_name(&self) -> &'static str {
2815        match self {
2816            Self::Cascade => "CASCADE",
2817            Self::Restrict => "RESTRICT",
2818            Self::SetNull => "SET_NULL",
2819            Self::NoAction => "NO_ACTION",
2820            Self::SetDefault => "SET_DEFAULT",
2821        }
2822    }
2823    /// Creates an enum from field names used in the ProtoBuf definition.
2824    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2825        match value {
2826            "CASCADE" => Some(Self::Cascade),
2827            "RESTRICT" => Some(Self::Restrict),
2828            "SET_NULL" => Some(Self::SetNull),
2829            "NO_ACTION" => Some(Self::NoAction),
2830            "SET_DEFAULT" => Some(Self::SetDefault),
2831            _ => None,
2832        }
2833    }
2834}