Table of Contents

Class CommandGetTables

Namespace
Arrow.Flight.Protocol.Sql
Assembly
Apache.Arrow.Flight.Sql.dll

Represents a request to retrieve the list of tables, and optionally their schemas, on a Flight SQL enabled backend. Used in the command member of FlightDescriptor for the following RPC calls:

  • GetSchema: return the Arrow schema of the query.
  • GetFlightInfo: execute the catalog metadata request.

The returned Arrow schema will be: < catalog_name: utf8, db_schema_name: utf8, table_name: utf8 not null, table_type: utf8 not null, [optional] table_schema: bytes not null (schema of the table as described in Schema.fbs::Schema, it is serialized as an IPC message.)

Fields on table_schema may contain the following metadata:

  • ARROW:FLIGHT:SQL:CATALOG_NAME - Table's catalog name
  • ARROW:FLIGHT:SQL:DB_SCHEMA_NAME - Database schema name
  • ARROW:FLIGHT:SQL:TABLE_NAME - Table name
  • ARROW:FLIGHT:SQL:TYPE_NAME - The data source-specific name for the data type of the column.
  • ARROW:FLIGHT:SQL:PRECISION - Column precision/size
  • ARROW:FLIGHT:SQL:SCALE - Column scale/decimal digits if applicable
  • ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise.
  • ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case-sensitive, "0" otherwise.
  • ARROW:FLIGHT:SQL:IS_READ_ONLY - "1" indicates if the column is read only, "0" otherwise.
  • ARROW:FLIGHT:SQL:IS_SEARCHABLE - "1" indicates if the column is searchable via WHERE clause, "0" otherwise.
  • 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. The returned data should be ordered by catalog_name, db_schema_name, table_name, then table_type, followed by table_schema if requested.
public sealed class CommandGetTables : IMessage<CommandGetTables>, IEquatable<CommandGetTables>, IDeepCloneable<CommandGetTables>, IBufferMessage, IMessage
Inheritance
CommandGetTables
Implements
IDeepCloneable<CommandGetTables>
IBufferMessage
IMessage
Inherited Members
Extension Methods

Constructors

CommandGetTables()

public CommandGetTables()

CommandGetTables(CommandGetTables)

public CommandGetTables(CommandGetTables other)

Parameters

other CommandGetTables

Fields

CatalogFieldNumber

Field number for the "catalog" field.

public const int CatalogFieldNumber = 1

Field Value

int

DbSchemaFilterPatternFieldNumber

Field number for the "db_schema_filter_pattern" field.

public const int DbSchemaFilterPatternFieldNumber = 2

Field Value

int

IncludeSchemaFieldNumber

Field number for the "include_schema" field.

public const int IncludeSchemaFieldNumber = 5

Field Value

int

TableNameFilterPatternFieldNumber

Field number for the "table_name_filter_pattern" field.

public const int TableNameFilterPatternFieldNumber = 3

Field Value

int

TableTypesFieldNumber

Field number for the "table_types" field.

public const int TableTypesFieldNumber = 4

Field Value

int

Properties

Catalog

Specifies the Catalog to search for the tables. An empty string retrieves those without a catalog. If omitted the catalog name should not be used to narrow the search.

public string Catalog { get; set; }

Property Value

string

DbSchemaFilterPattern

Specifies a filter pattern for schemas to search for. When no db_schema_filter_pattern is provided, all schemas matching other filters are searched. In the pattern string, two special characters can be used to denote matching rules:

  • "%" means to match any substring with 0 or more characters.
  • "_" means to match any one character.
public string DbSchemaFilterPattern { get; set; }

Property Value

string

Descriptor

public static MessageDescriptor Descriptor { get; }

Property Value

MessageDescriptor

HasCatalog

Gets whether the "catalog" field is set

public bool HasCatalog { get; }

Property Value

bool

HasDbSchemaFilterPattern

Gets whether the "db_schema_filter_pattern" field is set

public bool HasDbSchemaFilterPattern { get; }

Property Value

bool

HasTableNameFilterPattern

Gets whether the "table_name_filter_pattern" field is set

public bool HasTableNameFilterPattern { get; }

Property Value

bool

IncludeSchema

Specifies if the Arrow schema should be returned for found tables.

public bool IncludeSchema { get; set; }

Property Value

bool

Parser

public static MessageParser<CommandGetTables> Parser { get; }

Property Value

MessageParser<CommandGetTables>

TableNameFilterPattern

Specifies a filter pattern for tables to search for. When no table_name_filter_pattern is provided, all tables matching other filters are searched. In the pattern string, two special characters can be used to denote matching rules:

  • "%" means to match any substring with 0 or more characters.
  • "_" means to match any one character.
public string TableNameFilterPattern { get; set; }

Property Value

string

TableTypes

Specifies a filter of table types which must match. The table types depend on vendor/implementation. It is usually used to separate tables from views or system tables. TABLE, VIEW, and SYSTEM TABLE are commonly supported.

public RepeatedField<string> TableTypes { get; }

Property Value

RepeatedField<string>

Methods

CalculateSize()

Calculates the size of this message in Protocol Buffer wire format, in bytes.

public int CalculateSize()

Returns

int

The number of bytes required to write this message to a coded output stream.

ClearCatalog()

Clears the value of the "catalog" field

public void ClearCatalog()

ClearDbSchemaFilterPattern()

Clears the value of the "db_schema_filter_pattern" field

public void ClearDbSchemaFilterPattern()

ClearTableNameFilterPattern()

Clears the value of the "table_name_filter_pattern" field

public void ClearTableNameFilterPattern()

Clone()

Creates a deep clone of this object.

public CommandGetTables Clone()

Returns

CommandGetTables

A deep clone of this object.

Equals(CommandGetTables)

Indicates whether the current object is equal to another object of the same type.

public bool Equals(CommandGetTables other)

Parameters

other CommandGetTables

An object to compare with this object.

Returns

bool

true if the current object is equal to the other parameter; otherwise, false.

Equals(object)

Determines whether the specified object is equal to the current object.

public override bool Equals(object other)

Parameters

other object

Returns

bool

true if the specified object is equal to the current object; otherwise, false.

GetHashCode()

Serves as the default hash function.

public override int GetHashCode()

Returns

int

A hash code for the current object.

MergeFrom(CommandGetTables)

Merges the given message into this one.

public void MergeFrom(CommandGetTables other)

Parameters

other CommandGetTables

Remarks

See the user guide for precise merge semantics.

MergeFrom(CodedInputStream)

Merges the data from the specified coded input stream with the current message.

public void MergeFrom(CodedInputStream input)

Parameters

input CodedInputStream

Remarks

See the user guide for precise merge semantics.

ToString()

Returns a string that represents the current object.

public override string ToString()

Returns

string

A string that represents the current object.

WriteTo(CodedOutputStream)

Writes the data to the given coded output stream.

public void WriteTo(CodedOutputStream output)

Parameters

output CodedOutputStream

Coded output stream to write the data to. Must not be null.