| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319 |
- // Licensed to the Apache Software Foundation (ASF) under one
- // or more contributor license agreements. See the NOTICE file
- // distributed with this work for additional information
- // regarding copyright ownership. The ASF licenses this file
- // to you under the Apache License, Version 2.0 (the
- // "License"); you may not use this file except in compliance
- // with the License. You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- // Coding Conventions for this file:
- //
- // Structs/Enums/Unions
- // * Struct, Enum, and Union names begin with a "T",
- // and use a capital letter for each new word, with no underscores.
- // * All fields should be declared as either optional or required.
- //
- // Functions
- // * Function names start with a capital letter and have a capital letter for
- // each new word, with no underscores.
- // * Each function should take exactly one parameter, named TFunctionNameReq,
- // and should return either void or TFunctionNameResp. This convention allows
- // incremental updates.
- //
- // Services
- // * Service names begin with the letter "T", use a capital letter for each
- // new word (with no underscores), and end with the word "Service".
- namespace java org.apache.hive.service.rpc.thrift
- namespace cpp apache.hive.service.rpc.thrift
- // List of protocol versions. A new token should be
- // added to the end of this list every time a change is made.
- enum TProtocolVersion {
- HIVE_CLI_SERVICE_PROTOCOL_V1,
- // V2 adds support for asynchronous execution
- HIVE_CLI_SERVICE_PROTOCOL_V2
- // V3 add varchar type, primitive type qualifiers
- HIVE_CLI_SERVICE_PROTOCOL_V3
- // V4 add decimal precision/scale, char type
- HIVE_CLI_SERVICE_PROTOCOL_V4
- // V5 adds error details when GetOperationStatus returns in error state
- HIVE_CLI_SERVICE_PROTOCOL_V5
- // V6 uses binary type for binary payload (was string) and uses columnar result set
- HIVE_CLI_SERVICE_PROTOCOL_V6
- // V7 adds support for delegation token based connection
- HIVE_CLI_SERVICE_PROTOCOL_V7
- // V8 adds support for interval types
- HIVE_CLI_SERVICE_PROTOCOL_V8
- // V9 adds support for serializing ResultSets in SerDe
- HIVE_CLI_SERVICE_PROTOCOL_V9
- // V10 adds support for in place updates via GetOperationStatus
- HIVE_CLI_SERVICE_PROTOCOL_V10
- // V11 adds timestamp with local time zone type
- HIVE_CLI_SERVICE_PROTOCOL_V11
- }
- enum TTypeId {
- BOOLEAN_TYPE,
- TINYINT_TYPE,
- SMALLINT_TYPE,
- INT_TYPE,
- BIGINT_TYPE,
- FLOAT_TYPE,
- DOUBLE_TYPE,
- STRING_TYPE,
- TIMESTAMP_TYPE,
- BINARY_TYPE,
- ARRAY_TYPE,
- MAP_TYPE,
- STRUCT_TYPE,
- UNION_TYPE,
- USER_DEFINED_TYPE,
- DECIMAL_TYPE,
- NULL_TYPE,
- DATE_TYPE,
- VARCHAR_TYPE,
- CHAR_TYPE,
- INTERVAL_YEAR_MONTH_TYPE,
- INTERVAL_DAY_TIME_TYPE,
- TIMESTAMPLOCALTZ_TYPE
- }
- const set<TTypeId> PRIMITIVE_TYPES = [
- TTypeId.BOOLEAN_TYPE,
- TTypeId.TINYINT_TYPE,
- TTypeId.SMALLINT_TYPE,
- TTypeId.INT_TYPE,
- TTypeId.BIGINT_TYPE,
- TTypeId.FLOAT_TYPE,
- TTypeId.DOUBLE_TYPE,
- TTypeId.STRING_TYPE,
- TTypeId.TIMESTAMP_TYPE,
- TTypeId.BINARY_TYPE,
- TTypeId.DECIMAL_TYPE,
- TTypeId.NULL_TYPE,
- TTypeId.DATE_TYPE,
- TTypeId.VARCHAR_TYPE,
- TTypeId.CHAR_TYPE,
- TTypeId.INTERVAL_YEAR_MONTH_TYPE,
- TTypeId.INTERVAL_DAY_TIME_TYPE,
- TTypeId.TIMESTAMPLOCALTZ_TYPE
- ]
- const set<TTypeId> COMPLEX_TYPES = [
- TTypeId.ARRAY_TYPE
- TTypeId.MAP_TYPE
- TTypeId.STRUCT_TYPE
- TTypeId.UNION_TYPE
- TTypeId.USER_DEFINED_TYPE
- ]
- const set<TTypeId> COLLECTION_TYPES = [
- TTypeId.ARRAY_TYPE
- TTypeId.MAP_TYPE
- ]
- const map<TTypeId,string> TYPE_NAMES = {
- TTypeId.BOOLEAN_TYPE: "BOOLEAN",
- TTypeId.TINYINT_TYPE: "TINYINT",
- TTypeId.SMALLINT_TYPE: "SMALLINT",
- TTypeId.INT_TYPE: "INT",
- TTypeId.BIGINT_TYPE: "BIGINT",
- TTypeId.FLOAT_TYPE: "FLOAT",
- TTypeId.DOUBLE_TYPE: "DOUBLE",
- TTypeId.STRING_TYPE: "STRING",
- TTypeId.TIMESTAMP_TYPE: "TIMESTAMP",
- TTypeId.BINARY_TYPE: "BINARY",
- TTypeId.ARRAY_TYPE: "ARRAY",
- TTypeId.MAP_TYPE: "MAP",
- TTypeId.STRUCT_TYPE: "STRUCT",
- TTypeId.UNION_TYPE: "UNIONTYPE",
- TTypeId.DECIMAL_TYPE: "DECIMAL",
- TTypeId.NULL_TYPE: "NULL"
- TTypeId.DATE_TYPE: "DATE"
- TTypeId.VARCHAR_TYPE: "VARCHAR"
- TTypeId.CHAR_TYPE: "CHAR"
- TTypeId.INTERVAL_YEAR_MONTH_TYPE: "INTERVAL_YEAR_MONTH"
- TTypeId.INTERVAL_DAY_TIME_TYPE: "INTERVAL_DAY_TIME"
- TTypeId.TIMESTAMPLOCALTZ_TYPE: "TIMESTAMP WITH LOCAL TIME ZONE"
- }
- // Thrift does not support recursively defined types or forward declarations,
- // which makes it difficult to represent Hive's nested types.
- // To get around these limitations TTypeDesc employs a type list that maps
- // integer "pointers" to TTypeEntry objects. The following examples show
- // how different types are represented using this scheme:
- //
- // "INT":
- // TTypeDesc {
- // types = [
- // TTypeEntry.primitive_entry {
- // type = INT_TYPE
- // }
- // ]
- // }
- //
- // "ARRAY<INT>":
- // TTypeDesc {
- // types = [
- // TTypeEntry.array_entry {
- // object_type_ptr = 1
- // },
- // TTypeEntry.primitive_entry {
- // type = INT_TYPE
- // }
- // ]
- // }
- //
- // "MAP<INT,STRING>":
- // TTypeDesc {
- // types = [
- // TTypeEntry.map_entry {
- // key_type_ptr = 1
- // value_type_ptr = 2
- // },
- // TTypeEntry.primitive_entry {
- // type = INT_TYPE
- // },
- // TTypeEntry.primitive_entry {
- // type = STRING_TYPE
- // }
- // ]
- // }
- typedef i32 TTypeEntryPtr
- // Valid TTypeQualifiers key names
- const string CHARACTER_MAXIMUM_LENGTH = "characterMaximumLength"
- // Type qualifier key name for decimal
- const string PRECISION = "precision"
- const string SCALE = "scale"
- union TTypeQualifierValue {
- 1: optional i32 i32Value
- 2: optional string stringValue
- }
- // Type qualifiers for primitive type.
- struct TTypeQualifiers {
- 1: required map <string, TTypeQualifierValue> qualifiers
- }
- // Type entry for a primitive type.
- struct TPrimitiveTypeEntry {
- // The primitive type token. This must satisfy the condition
- // that type is in the PRIMITIVE_TYPES set.
- 1: required TTypeId type
- 2: optional TTypeQualifiers typeQualifiers
- }
- // Type entry for an ARRAY type.
- struct TArrayTypeEntry {
- 1: required TTypeEntryPtr objectTypePtr
- }
- // Type entry for a MAP type.
- struct TMapTypeEntry {
- 1: required TTypeEntryPtr keyTypePtr
- 2: required TTypeEntryPtr valueTypePtr
- }
- // Type entry for a STRUCT type.
- struct TStructTypeEntry {
- 1: required map<string, TTypeEntryPtr> nameToTypePtr
- }
- // Type entry for a UNIONTYPE type.
- struct TUnionTypeEntry {
- 1: required map<string, TTypeEntryPtr> nameToTypePtr
- }
- struct TUserDefinedTypeEntry {
- // The fully qualified name of the class implementing this type.
- 1: required string typeClassName
- }
- // We use a union here since Thrift does not support inheritance.
- union TTypeEntry {
- 1: TPrimitiveTypeEntry primitiveEntry
- 2: TArrayTypeEntry arrayEntry
- 3: TMapTypeEntry mapEntry
- 4: TStructTypeEntry structEntry
- 5: TUnionTypeEntry unionEntry
- 6: TUserDefinedTypeEntry userDefinedTypeEntry
- }
- // Type descriptor for columns.
- struct TTypeDesc {
- // The "top" type is always the first element of the list.
- // If the top type is an ARRAY, MAP, STRUCT, or UNIONTYPE
- // type, then subsequent elements represent nested types.
- 1: required list<TTypeEntry> types
- }
- // A result set column descriptor.
- struct TColumnDesc {
- // The name of the column
- 1: required string columnName
- // The type descriptor for this column
- 2: required TTypeDesc typeDesc
- // The ordinal position of this column in the schema
- 3: required i32 position
- 4: optional string comment
- }
- // Metadata used to describe the schema (column names, types, comments)
- // of result sets.
- struct TTableSchema {
- 1: required list<TColumnDesc> columns
- }
- // A Boolean column value.
- struct TBoolValue {
- // NULL if value is unset.
- 1: optional bool value
- }
- // A Byte column value.
- struct TByteValue {
- // NULL if value is unset.
- 1: optional byte value
- }
- // A signed, 16 bit column value.
- struct TI16Value {
- // NULL if value is unset
- 1: optional i16 value
- }
- // A signed, 32 bit column value
- struct TI32Value {
- // NULL if value is unset
- 1: optional i32 value
- }
- // A signed 64 bit column value
- struct TI64Value {
- // NULL if value is unset
- 1: optional i64 value
- }
- // A floating point 64 bit column value
- struct TDoubleValue {
- // NULL if value is unset
- 1: optional double value
- }
- struct TStringValue {
- // NULL if value is unset
- 1: optional string value
- }
- // A single column value in a result set.
- // Note that Hive's type system is richer than Thrift's,
- // so in some cases we have to map multiple Hive types
- // to the same Thrift type. On the client-side this is
- // disambiguated by looking at the Schema of the
- // result set.
- union TColumnValue {
- 1: TBoolValue boolVal // BOOLEAN
- 2: TByteValue byteVal // TINYINT
- 3: TI16Value i16Val // SMALLINT
- 4: TI32Value i32Val // INT
- 5: TI64Value i64Val // BIGINT, TIMESTAMP
- 6: TDoubleValue doubleVal // FLOAT, DOUBLE
- 7: TStringValue stringVal // STRING, LIST, MAP, STRUCT, UNIONTYPE, BINARY, DECIMAL, NULL, INTERVAL_YEAR_MONTH, INTERVAL_DAY_TIME
- }
- // Represents a row in a rowset.
- struct TRow {
- 1: required list<TColumnValue> colVals
- }
- struct TBoolColumn {
- 1: required list<bool> values
- 2: required binary nulls
- }
- struct TByteColumn {
- 1: required list<byte> values
- 2: required binary nulls
- }
- struct TI16Column {
- 1: required list<i16> values
- 2: required binary nulls
- }
- struct TI32Column {
- 1: required list<i32> values
- 2: required binary nulls
- }
- struct TI64Column {
- 1: required list<i64> values
- 2: required binary nulls
- }
- struct TDoubleColumn {
- 1: required list<double> values
- 2: required binary nulls
- }
- struct TStringColumn {
- 1: required list<string> values
- 2: required binary nulls
- }
- struct TBinaryColumn {
- 1: required list<binary> values
- 2: required binary nulls
- }
- // Note that Hive's type system is richer than Thrift's,
- // so in some cases we have to map multiple Hive types
- // to the same Thrift type. On the client-side this is
- // disambiguated by looking at the Schema of the
- // result set.
- union TColumn {
- 1: TBoolColumn boolVal // BOOLEAN
- 2: TByteColumn byteVal // TINYINT
- 3: TI16Column i16Val // SMALLINT
- 4: TI32Column i32Val // INT
- 5: TI64Column i64Val // BIGINT, TIMESTAMP
- 6: TDoubleColumn doubleVal // FLOAT, DOUBLE
- 7: TStringColumn stringVal // STRING, LIST, MAP, STRUCT, UNIONTYPE, DECIMAL, NULL
- 8: TBinaryColumn binaryVal // BINARY
- }
- // Represents a rowset
- struct TRowSet {
- // The starting row offset of this rowset.
- 1: required i64 startRowOffset
- 2: required list<TRow> rows
- 3: optional list<TColumn> columns
- 4: optional binary binaryColumns
- 5: optional i32 columnCount
- }
- // The return status code contained in each response.
- enum TStatusCode {
- SUCCESS_STATUS,
- SUCCESS_WITH_INFO_STATUS,
- STILL_EXECUTING_STATUS,
- ERROR_STATUS,
- INVALID_HANDLE_STATUS
- }
- // The return status of a remote request
- struct TStatus {
- 1: required TStatusCode statusCode
- // If status is SUCCESS_WITH_INFO, info_msgs may be populated with
- // additional diagnostic information.
- 2: optional list<string> infoMessages
- // If status is ERROR, then the following fields may be set
- 3: optional string sqlState // as defined in the ISO/IEF CLI specification
- 4: optional i32 errorCode // internal error code
- 5: optional string errorMessage
- }
- // The state of an operation (i.e. a query or other
- // asynchronous operation that generates a result set)
- // on the server.
- enum TOperationState {
- // The operation has been initialized
- INITIALIZED_STATE,
- // The operation is running. In this state the result
- // set is not available.
- RUNNING_STATE,
- // The operation has completed. When an operation is in
- // this state its result set may be fetched.
- FINISHED_STATE,
- // The operation was canceled by a client
- CANCELED_STATE,
- // The operation was closed by a client
- CLOSED_STATE,
- // The operation failed due to an error
- ERROR_STATE,
- // The operation is in an unrecognized state
- UKNOWN_STATE,
- // The operation is in an pending state
- PENDING_STATE,
- // The operation is in an timedout state
- TIMEDOUT_STATE,
- }
- // A string identifier. This is interpreted literally.
- typedef string TIdentifier
- // A search pattern.
- //
- // Valid search pattern characters:
- // '_': Any single character.
- // '%': Any sequence of zero or more characters.
- // '\': Escape character used to include special characters,
- // e.g. '_', '%', '\'. If a '\' precedes a non-special
- // character it has no special meaning and is interpreted
- // literally.
- typedef string TPattern
- // A search pattern or identifier. Used as input
- // parameter for many of the catalog functions.
- typedef string TPatternOrIdentifier
- struct THandleIdentifier {
- // 16 byte globally unique identifier
- // This is the public ID of the handle and
- // can be used for reporting.
- 1: required binary guid,
- // 16 byte secret generated by the server
- // and used to verify that the handle is not
- // being hijacked by another user.
- 2: required binary secret,
- }
- // Client-side handle to persistent
- // session information on the server-side.
- struct TSessionHandle {
- 1: required THandleIdentifier sessionId
- }
- // The subtype of an OperationHandle.
- enum TOperationType {
- EXECUTE_STATEMENT,
- GET_TYPE_INFO,
- GET_CATALOGS,
- GET_SCHEMAS,
- GET_TABLES,
- GET_TABLE_TYPES,
- GET_COLUMNS,
- GET_FUNCTIONS,
- UNKNOWN,
- }
- // Client-side reference to a task running
- // asynchronously on the server.
- struct TOperationHandle {
- 1: required THandleIdentifier operationId
- 2: required TOperationType operationType
- // If hasResultSet = TRUE, then this operation
- // generates a result set that can be fetched.
- // Note that the result set may be empty.
- //
- // If hasResultSet = FALSE, then this operation
- // does not generate a result set, and calling
- // GetResultSetMetadata or FetchResults against
- // this OperationHandle will generate an error.
- 3: required bool hasResultSet
- // For operations that don't generate result sets,
- // modifiedRowCount is either:
- //
- // 1) The number of rows that were modified by
- // the DML operation (e.g. number of rows inserted,
- // number of rows deleted, etc).
- //
- // 2) 0 for operations that don't modify or add rows.
- //
- // 3) < 0 if the operation is capable of modifiying rows,
- // but Hive is unable to determine how many rows were
- // modified. For example, Hive's LOAD DATA command
- // doesn't generate row count information because
- // Hive doesn't inspect the data as it is loaded.
- //
- // modifiedRowCount is unset if the operation generates
- // a result set.
- 4: optional double modifiedRowCount
- }
- // OpenSession()
- //
- // Open a session (connection) on the server against
- // which operations may be executed.
- struct TOpenSessionReq {
- // The version of the HiveServer2 protocol that the client is using.
- 1: required TProtocolVersion client_protocol = TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V10
- // Username and password for authentication.
- // Depending on the authentication scheme being used,
- // this information may instead be provided by a lower
- // protocol layer, in which case these fields may be
- // left unset.
- 2: optional string username
- 3: optional string password
- // Configuration overlay which is applied when the session is
- // first created.
- 4: optional map<string, string> configuration
- }
- struct TOpenSessionResp {
- 1: required TStatus status
- // The protocol version that the server is using.
- 2: required TProtocolVersion serverProtocolVersion = TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V10
- // Session Handle
- 3: optional TSessionHandle sessionHandle
- // The configuration settings for this session.
- 4: optional map<string, string> configuration
- }
- struct TSetClientInfoReq {
- 1: required TSessionHandle sessionHandle,
- 2: optional map<string, string> configuration
- }
- struct TSetClientInfoResp {
- 1: required TStatus status
- }
- // CloseSession()
- //
- // Closes the specified session and frees any resources
- // currently allocated to that session. Any open
- // operations in that session will be canceled.
- struct TCloseSessionReq {
- 1: required TSessionHandle sessionHandle
- }
- struct TCloseSessionResp {
- 1: required TStatus status
- }
- enum TGetInfoType {
- CLI_MAX_DRIVER_CONNECTIONS = 0,
- CLI_MAX_CONCURRENT_ACTIVITIES = 1,
- CLI_DATA_SOURCE_NAME = 2,
- CLI_FETCH_DIRECTION = 8,
- CLI_SERVER_NAME = 13,
- CLI_SEARCH_PATTERN_ESCAPE = 14,
- CLI_DBMS_NAME = 17,
- CLI_DBMS_VER = 18,
- CLI_ACCESSIBLE_TABLES = 19,
- CLI_ACCESSIBLE_PROCEDURES = 20,
- CLI_CURSOR_COMMIT_BEHAVIOR = 23,
- CLI_DATA_SOURCE_READ_ONLY = 25,
- CLI_DEFAULT_TXN_ISOLATION = 26,
- CLI_IDENTIFIER_CASE = 28,
- CLI_IDENTIFIER_QUOTE_CHAR = 29,
- CLI_MAX_COLUMN_NAME_LEN = 30,
- CLI_MAX_CURSOR_NAME_LEN = 31,
- CLI_MAX_SCHEMA_NAME_LEN = 32,
- CLI_MAX_CATALOG_NAME_LEN = 34,
- CLI_MAX_TABLE_NAME_LEN = 35,
- CLI_SCROLL_CONCURRENCY = 43,
- CLI_TXN_CAPABLE = 46,
- CLI_USER_NAME = 47,
- CLI_TXN_ISOLATION_OPTION = 72,
- CLI_INTEGRITY = 73,
- CLI_GETDATA_EXTENSIONS = 81,
- CLI_NULL_COLLATION = 85,
- CLI_ALTER_TABLE = 86,
- CLI_ORDER_BY_COLUMNS_IN_SELECT = 90,
- CLI_SPECIAL_CHARACTERS = 94,
- CLI_MAX_COLUMNS_IN_GROUP_BY = 97,
- CLI_MAX_COLUMNS_IN_INDEX = 98,
- CLI_MAX_COLUMNS_IN_ORDER_BY = 99,
- CLI_MAX_COLUMNS_IN_SELECT = 100,
- CLI_MAX_COLUMNS_IN_TABLE = 101,
- CLI_MAX_INDEX_SIZE = 102,
- CLI_MAX_ROW_SIZE = 104,
- CLI_MAX_STATEMENT_LEN = 105,
- CLI_MAX_TABLES_IN_SELECT = 106,
- CLI_MAX_USER_NAME_LEN = 107,
- CLI_OJ_CAPABILITIES = 115,
- CLI_XOPEN_CLI_YEAR = 10000,
- CLI_CURSOR_SENSITIVITY = 10001,
- CLI_DESCRIBE_PARAMETER = 10002,
- CLI_CATALOG_NAME = 10003,
- CLI_COLLATION_SEQ = 10004,
- CLI_MAX_IDENTIFIER_LEN = 10005,
- CLI_ODBC_KEYWORDS = 10006
- }
- union TGetInfoValue {
- 1: string stringValue
- 2: i16 smallIntValue
- 3: i32 integerBitmask
- 4: i32 integerFlag
- 5: i32 binaryValue
- 6: i64 lenValue
- }
- // GetInfo()
- //
- // This function is based on ODBC's CLIGetInfo() function.
- // The function returns general information about the data source
- // using the same keys as ODBC.
- struct TGetInfoReq {
- // The sesssion to run this request against
- 1: required TSessionHandle sessionHandle
- 2: required TGetInfoType infoType
- }
- struct TGetInfoResp {
- 1: required TStatus status
- 2: required TGetInfoValue infoValue
- }
- // ExecuteStatement()
- //
- // Execute a statement.
- // The returned OperationHandle can be used to check on the
- // status of the statement, and to fetch results once the
- // statement has finished executing.
- struct TExecuteStatementReq {
- // The session to execute the statement against
- 1: required TSessionHandle sessionHandle
- // The statement to be executed (DML, DDL, SET, etc)
- 2: required string statement
- // Configuration properties that are overlayed on top of the
- // the existing session configuration before this statement
- // is executed. These properties apply to this statement
- // only and will not affect the subsequent state of the Session.
- 3: optional map<string, string> confOverlay
- // Execute asynchronously when runAsync is true
- 4: optional bool runAsync = false
- // The number of seconds after which the query will timeout on the server
- 5: optional i64 queryTimeout = 0
- }
- struct TExecuteStatementResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetTypeInfo()
- //
- // Get information about types supported by the HiveServer instance.
- // The information is returned as a result set which can be fetched
- // using the OperationHandle provided in the response.
- //
- // Refer to the documentation for ODBC's CLIGetTypeInfo function for
- // the format of the result set.
- struct TGetTypeInfoReq {
- // The session to run this request against.
- 1: required TSessionHandle sessionHandle
- }
- struct TGetTypeInfoResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetCatalogs()
- //
- // Returns the list of catalogs (databases)
- // Results are ordered by TABLE_CATALOG
- //
- // Resultset columns :
- // col1
- // name: TABLE_CAT
- // type: STRING
- // desc: Catalog name. NULL if not applicable.
- //
- struct TGetCatalogsReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- }
- struct TGetCatalogsResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetSchemas()
- //
- // Retrieves the schema names available in this database.
- // The results are ordered by TABLE_CATALOG and TABLE_SCHEM.
- // col1
- // name: TABLE_SCHEM
- // type: STRING
- // desc: schema name
- // col2
- // name: TABLE_CATALOG
- // type: STRING
- // desc: catalog name
- struct TGetSchemasReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- // Name of the catalog. Must not contain a search pattern.
- 2: optional TIdentifier catalogName
- // schema name or pattern
- 3: optional TPatternOrIdentifier schemaName
- }
- struct TGetSchemasResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetTables()
- //
- // Returns a list of tables with catalog, schema, and table
- // type information. The information is returned as a result
- // set which can be fetched using the OperationHandle
- // provided in the response.
- // Results are ordered by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, and TABLE_NAME
- //
- // Result Set Columns:
- //
- // col1
- // name: TABLE_CAT
- // type: STRING
- // desc: Catalog name. NULL if not applicable.
- //
- // col2
- // name: TABLE_SCHEM
- // type: STRING
- // desc: Schema name.
- //
- // col3
- // name: TABLE_NAME
- // type: STRING
- // desc: Table name.
- //
- // col4
- // name: TABLE_TYPE
- // type: STRING
- // desc: The table type, e.g. "TABLE", "VIEW", etc.
- //
- // col5
- // name: REMARKS
- // type: STRING
- // desc: Comments about the table
- //
- struct TGetTablesReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- // Name of the catalog or a search pattern.
- 2: optional TPatternOrIdentifier catalogName
- // Name of the schema or a search pattern.
- 3: optional TPatternOrIdentifier schemaName
- // Name of the table or a search pattern.
- 4: optional TPatternOrIdentifier tableName
- // List of table types to match
- // e.g. "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
- // "LOCAL TEMPORARY", "ALIAS", "SYNONYM", etc.
- 5: optional list<string> tableTypes
- }
- struct TGetTablesResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetTableTypes()
- //
- // Returns the table types available in this database.
- // The results are ordered by table type.
- //
- // col1
- // name: TABLE_TYPE
- // type: STRING
- // desc: Table type name.
- struct TGetTableTypesReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- }
- struct TGetTableTypesResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetColumns()
- //
- // Returns a list of columns in the specified tables.
- // The information is returned as a result set which can be fetched
- // using the OperationHandle provided in the response.
- // Results are ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME,
- // and ORDINAL_POSITION.
- //
- // Result Set Columns are the same as those for the ODBC CLIColumns
- // function.
- //
- struct TGetColumnsReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- // Name of the catalog. Must not contain a search pattern.
- 2: optional TIdentifier catalogName
- // Schema name or search pattern
- 3: optional TPatternOrIdentifier schemaName
- // Table name or search pattern
- 4: optional TPatternOrIdentifier tableName
- // Column name or search pattern
- 5: optional TPatternOrIdentifier columnName
- }
- struct TGetColumnsResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetFunctions()
- //
- // Returns a list of functions supported by the data source. The
- // behavior of this function matches
- // java.sql.DatabaseMetaData.getFunctions() both in terms of
- // inputs and outputs.
- //
- // Result Set Columns:
- //
- // col1
- // name: FUNCTION_CAT
- // type: STRING
- // desc: Function catalog (may be null)
- //
- // col2
- // name: FUNCTION_SCHEM
- // type: STRING
- // desc: Function schema (may be null)
- //
- // col3
- // name: FUNCTION_NAME
- // type: STRING
- // desc: Function name. This is the name used to invoke the function.
- //
- // col4
- // name: REMARKS
- // type: STRING
- // desc: Explanatory comment on the function.
- //
- // col5
- // name: FUNCTION_TYPE
- // type: SMALLINT
- // desc: Kind of function. One of:
- // * functionResultUnknown - Cannot determine if a return value or a table
- // will be returned.
- // * functionNoTable - Does not a return a table.
- // * functionReturnsTable - Returns a table.
- //
- // col6
- // name: SPECIFIC_NAME
- // type: STRING
- // desc: The name which uniquely identifies this function within its schema.
- // In this case this is the fully qualified class name of the class
- // that implements this function.
- //
- struct TGetFunctionsReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- // A catalog name; must match the catalog name as it is stored in the
- // database; "" retrieves those without a catalog; null means
- // that the catalog name should not be used to narrow the search.
- 2: optional TIdentifier catalogName
- // A schema name pattern; must match the schema name as it is stored
- // in the database; "" retrieves those without a schema; null means
- // that the schema name should not be used to narrow the search.
- 3: optional TPatternOrIdentifier schemaName
- // A function name pattern; must match the function name as it is stored
- // in the database.
- 4: required TPatternOrIdentifier functionName
- }
- struct TGetFunctionsResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- struct TGetPrimaryKeysReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- // Name of the catalog.
- 2: optional TIdentifier catalogName
- // Name of the schema.
- 3: optional TIdentifier schemaName
- // Name of the table.
- 4: optional TIdentifier tableName
- }
- struct TGetPrimaryKeysResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- struct TGetCrossReferenceReq {
- // Session to run this request against
- 1: required TSessionHandle sessionHandle
- // Name of the parent catalog.
- 2: optional TIdentifier parentCatalogName
- // Name of the parent schema.
- 3: optional TIdentifier parentSchemaName
- // Name of the parent table.
- 4: optional TIdentifier parentTableName
- // Name of the foreign catalog.
- 5: optional TIdentifier foreignCatalogName
- // Name of the foreign schema.
- 6: optional TIdentifier foreignSchemaName
- // Name of the foreign table.
- 7: optional TIdentifier foreignTableName
- }
- struct TGetCrossReferenceResp {
- 1: required TStatus status
- 2: optional TOperationHandle operationHandle
- }
- // GetOperationStatus()
- //
- // Get the status of an operation running on the server.
- struct TGetOperationStatusReq {
- // Session to run this request against
- 1: required TOperationHandle operationHandle
- // optional arguments to get progress information
- 2: optional bool getProgressUpdate
- }
- // TProgressUpdateResp was defined below, but it's used by TGetOperationStatusResp so had to be moved up
- struct TProgressUpdateResp {
- 1: required list<string> headerNames
- 2: required list<list<string>> rows
- 3: required double progressedPercentage
- 4: required TJobExecutionStatus status
- 5: required string footerSummary
- 6: required i64 startTime
- }
- struct TGetOperationStatusResp {
- 1: required TStatus status
- 2: optional TOperationState operationState
- // If operationState is ERROR_STATE, then the following fields may be set
- // sqlState as defined in the ISO/IEF CLI specification
- 3: optional string sqlState
- // Internal error code
- 4: optional i32 errorCode
- // Error message
- 5: optional string errorMessage
- // List of statuses of sub tasks
- 6: optional string taskStatus
- // When was the operation started
- 7: optional i64 operationStarted
- // When was the operation completed
- 8: optional i64 operationCompleted
- // If the operation has the result
- 9: optional bool hasResultSet
- 10: optional TProgressUpdateResp progressUpdateResponse
- 11: optional i64 numModifiedRows
- }
- // CancelOperation()
- //
- // Cancels processing on the specified operation handle and
- // frees any resources which were allocated.
- struct TCancelOperationReq {
- // Operation to cancel
- 1: required TOperationHandle operationHandle
- }
- struct TCancelOperationResp {
- 1: required TStatus status
- }
- // CloseOperation()
- //
- // Given an operation in the FINISHED, CANCELED,
- // or ERROR states, CloseOperation() will free
- // all of the resources which were allocated on
- // the server to service the operation.
- struct TCloseOperationReq {
- 1: required TOperationHandle operationHandle
- }
- struct TCloseOperationResp {
- 1: required TStatus status
- }
- // GetResultSetMetadata()
- //
- // Retrieves schema information for the specified operation
- struct TGetResultSetMetadataReq {
- // Operation for which to fetch result set schema information
- 1: required TOperationHandle operationHandle
- }
- struct TGetResultSetMetadataResp {
- 1: required TStatus status
- 2: optional TTableSchema schema
- }
- enum TFetchOrientation {
- // Get the next rowset. The fetch offset is ignored.
- FETCH_NEXT,
- // Get the previous rowset. The fetch offset is ignored.
- // NOT SUPPORTED
- FETCH_PRIOR,
- // Return the rowset at the given fetch offset relative
- // to the curren rowset.
- // NOT SUPPORTED
- FETCH_RELATIVE,
- // Return the rowset at the specified fetch offset.
- // NOT SUPPORTED
- FETCH_ABSOLUTE,
- // Get the first rowset in the result set.
- FETCH_FIRST,
- // Get the last rowset in the result set.
- // NOT SUPPORTED
- FETCH_LAST
- }
- // FetchResults()
- //
- // Fetch rows from the server corresponding to
- // a particular OperationHandle.
- struct TFetchResultsReq {
- // Operation from which to fetch results.
- 1: required TOperationHandle operationHandle
- // The fetch orientation. For V1 this must be either
- // FETCH_NEXT or FETCH_FIRST. Defaults to FETCH_NEXT.
- 2: required TFetchOrientation orientation = TFetchOrientation.FETCH_NEXT
- // Max number of rows that should be returned in
- // the rowset.
- 3: required i64 maxRows
- // The type of a fetch results request. 0 represents Query output. 1 represents Log
- 4: optional i16 fetchType = 0
- }
- struct TFetchResultsResp {
- 1: required TStatus status
- // TRUE if there are more rows left to fetch from the server.
- 2: optional bool hasMoreRows
- // The rowset. This is optional so that we have the
- // option in the future of adding alternate formats for
- // representing result set data, e.g. delimited strings,
- // binary encoded, etc.
- 3: optional TRowSet results
- }
- // GetDelegationToken()
- // Retrieve delegation token for the current user
- struct TGetDelegationTokenReq {
- // session handle
- 1: required TSessionHandle sessionHandle
- // userid for the proxy user
- 2: required string owner
- // designated renewer userid
- 3: required string renewer
- }
- struct TGetDelegationTokenResp {
- // status of the request
- 1: required TStatus status
- // delegation token string
- 2: optional string delegationToken
- }
- // CancelDelegationToken()
- // Cancel the given delegation token
- struct TCancelDelegationTokenReq {
- // session handle
- 1: required TSessionHandle sessionHandle
- // delegation token to cancel
- 2: required string delegationToken
- }
- struct TCancelDelegationTokenResp {
- // status of the request
- 1: required TStatus status
- }
- // RenewDelegationToken()
- // Renew the given delegation token
- struct TRenewDelegationTokenReq {
- // session handle
- 1: required TSessionHandle sessionHandle
- // delegation token to renew
- 2: required string delegationToken
- }
- struct TRenewDelegationTokenResp {
- // status of the request
- 1: required TStatus status
- }
- enum TJobExecutionStatus {
- IN_PROGRESS,
- COMPLETE,
- NOT_AVAILABLE
- }
- struct TGetQueryIdReq {
- 1: required TOperationHandle operationHandle
- }
- struct TGetQueryIdResp {
- 1: required string queryId
- }
- // GetLog()
- //
- // Fetch operation log from the server corresponding to
- // a particular OperationHandle.
- struct TGetLogReq {
- // Operation whose log is requested
- 1: required TOperationHandle operationHandle
- }
- struct TGetLogResp {
- 1: required TStatus status
- 2: required string log
- }
- service TCLIService {
- TOpenSessionResp OpenSession(1:TOpenSessionReq req);
- TCloseSessionResp CloseSession(1:TCloseSessionReq req);
- TGetInfoResp GetInfo(1:TGetInfoReq req);
- TExecuteStatementResp ExecuteStatement(1:TExecuteStatementReq req);
- TGetTypeInfoResp GetTypeInfo(1:TGetTypeInfoReq req);
- TGetCatalogsResp GetCatalogs(1:TGetCatalogsReq req);
- TGetSchemasResp GetSchemas(1:TGetSchemasReq req);
- TGetTablesResp GetTables(1:TGetTablesReq req);
- TGetTableTypesResp GetTableTypes(1:TGetTableTypesReq req);
- TGetColumnsResp GetColumns(1:TGetColumnsReq req);
- TGetFunctionsResp GetFunctions(1:TGetFunctionsReq req);
- TGetPrimaryKeysResp GetPrimaryKeys(1:TGetPrimaryKeysReq req);
- TGetCrossReferenceResp GetCrossReference(1:TGetCrossReferenceReq req);
- TGetOperationStatusResp GetOperationStatus(1:TGetOperationStatusReq req);
- TCancelOperationResp CancelOperation(1:TCancelOperationReq req);
- TCloseOperationResp CloseOperation(1:TCloseOperationReq req);
- TGetResultSetMetadataResp GetResultSetMetadata(1:TGetResultSetMetadataReq req);
- TFetchResultsResp FetchResults(1:TFetchResultsReq req);
- TGetDelegationTokenResp GetDelegationToken(1:TGetDelegationTokenReq req);
- TCancelDelegationTokenResp CancelDelegationToken(1:TCancelDelegationTokenReq req);
- TRenewDelegationTokenResp RenewDelegationToken(1:TRenewDelegationTokenReq req);
- TGetQueryIdResp GetQueryId(1:TGetQueryIdReq req);
- TSetClientInfoResp SetClientInfo(1:TSetClientInfoReq req);
- // Not present in Hive 0.13, re-added for backwards compatibility.
- TGetLogResp GetLog(1:TGetLogReq req);
- }
|