1202 lines
34 KiB
Thrift
1202 lines
34 KiB
Thrift
// 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.
|
|
|
|
namespace cpp doris
|
|
namespace java org.apache.doris.thrift
|
|
|
|
include "Status.thrift"
|
|
include "Types.thrift"
|
|
include "PaloInternalService.thrift"
|
|
include "PlanNodes.thrift"
|
|
include "Planner.thrift"
|
|
include "Descriptors.thrift"
|
|
include "Data.thrift"
|
|
include "Exprs.thrift"
|
|
include "RuntimeProfile.thrift"
|
|
include "MasterService.thrift"
|
|
include "AgentService.thrift"
|
|
|
|
// These are supporting structs for JniFrontend.java, which serves as the glue
|
|
// between our C++ execution environment and the Java frontend.
|
|
|
|
struct TSetSessionParams {
|
|
1: required string user
|
|
}
|
|
|
|
struct TAuthenticateParams {
|
|
1: required string user
|
|
2: required string passwd
|
|
}
|
|
|
|
struct TColumnDesc {
|
|
1: required string columnName
|
|
2: required Types.TPrimitiveType columnType
|
|
3: optional i32 columnLength
|
|
4: optional i32 columnPrecision
|
|
5: optional i32 columnScale
|
|
6: optional bool isAllowNull
|
|
7: optional string columnKey
|
|
8: optional list<TColumnDesc> children
|
|
}
|
|
|
|
// A column definition; used by CREATE TABLE and DESCRIBE <table> statements. A column
|
|
// definition has a different meaning (and additional fields) from a column descriptor,
|
|
// so this is a separate struct from TColumnDesc.
|
|
struct TColumnDef {
|
|
1: required TColumnDesc columnDesc
|
|
2: optional string comment
|
|
}
|
|
|
|
// Arguments to DescribeTable, which returns a list of column descriptors for a
|
|
// given table
|
|
struct TDescribeTableParams {
|
|
1: optional string db
|
|
2: required string table_name
|
|
3: optional string user // deprecated
|
|
4: optional string user_ip // deprecated
|
|
5: optional Types.TUserIdentity current_user_ident // to replace the user and user ip
|
|
6: optional bool show_hidden_columns = false
|
|
7: optional string catalog
|
|
}
|
|
|
|
// Results of a call to describeTable()
|
|
struct TDescribeTableResult {
|
|
1: required list<TColumnDef> columns
|
|
}
|
|
|
|
// Arguments to DescribeTables, which returns a list of column descriptors for
|
|
// given tables
|
|
struct TDescribeTablesParams {
|
|
1: optional string db
|
|
2: required list<string> tables_name
|
|
3: optional string user // deprecated
|
|
4: optional string user_ip // deprecated
|
|
5: optional Types.TUserIdentity current_user_ident // to replace the user and user ip
|
|
6: optional bool show_hidden_columns = false
|
|
7: optional string catalog
|
|
}
|
|
|
|
// Results of a call to describeTable()
|
|
struct TDescribeTablesResult {
|
|
// tables_offset means that the offset for each table in columns
|
|
1: required list<i32> tables_offset
|
|
2: required list<TColumnDef> columns
|
|
}
|
|
|
|
struct TShowVariableRequest {
|
|
1: required i64 threadId
|
|
2: required Types.TVarType varType
|
|
}
|
|
|
|
// Results of a call to describeTable()
|
|
struct TShowVariableResult {
|
|
1: required map<string, string> variables
|
|
}
|
|
|
|
// Valid table file formats
|
|
enum TFileFormat {
|
|
PARQUETFILE,
|
|
RCFILE,
|
|
SEQUENCEFILE,
|
|
TEXTFILE,
|
|
}
|
|
|
|
// set type
|
|
enum TSetType {
|
|
OPT_DEFAULT,
|
|
OPT_GLOBAL,
|
|
OPT_SESSION,
|
|
}
|
|
|
|
// The row format specifies how to interpret the fields (columns) and lines (rows) in a
|
|
// data file when creating a new table.
|
|
struct TTableRowFormat {
|
|
// Optional terminator string used to delimit fields (columns) in the table
|
|
1: optional string field_terminator
|
|
|
|
// Optional terminator string used to delimit lines (rows) in a table
|
|
2: optional string line_terminator
|
|
|
|
// Optional string used to specify a special escape character sequence
|
|
3: optional string escaped_by
|
|
}
|
|
|
|
|
|
// Represents a single item in a partition spec (column name + value)
|
|
struct TPartitionKeyValue {
|
|
// Partition column name
|
|
1: required string name,
|
|
|
|
// Partition value
|
|
2: required string value
|
|
}
|
|
|
|
// Per-client session state
|
|
struct TSessionState {
|
|
// The default database, changed by USE <database> queries.
|
|
1: required string database
|
|
|
|
// The user who this session belongs to.
|
|
2: required string user
|
|
|
|
// The user who this session belongs to.
|
|
3: required i64 connection_id
|
|
}
|
|
|
|
struct TClientRequest {
|
|
// select stmt to be executed
|
|
1: required string stmt
|
|
|
|
// query options
|
|
2: required PaloInternalService.TQueryOptions queryOptions
|
|
|
|
// session state
|
|
3: required TSessionState sessionState;
|
|
}
|
|
|
|
|
|
// Parameters for SHOW DATABASES commands
|
|
struct TExplainParams {
|
|
// Optional pattern to match database names. If not set, all databases are returned.
|
|
1: required string explain
|
|
}
|
|
|
|
struct TSetVar{
|
|
1: required TSetType type
|
|
2: required string variable
|
|
3: required Exprs.TExpr value
|
|
}
|
|
// Parameters for Set commands
|
|
struct TSetParams {
|
|
// Optional pattern to match database names. If not set, all databases are returned.
|
|
1: required list<TSetVar> set_vars
|
|
}
|
|
|
|
struct TKillParams {
|
|
// Optional pattern to match database names. If not set, all databases are returned.
|
|
1: required bool is_kill_connection
|
|
2: required i64 connection_id
|
|
}
|
|
|
|
struct TCommonDdlParams {
|
|
//1: required Ddl.TCommonDdlType ddl_type
|
|
//2: optional Ddl.TCreateDbParams create_db_params
|
|
//3: optional Ddl.TCreateTableParams create_table_params
|
|
//4: optional Ddl.TLoadParams load_params
|
|
}
|
|
|
|
// Parameters for the USE db command
|
|
struct TUseDbParams {
|
|
1: required string db
|
|
}
|
|
|
|
struct TResultSetMetadata {
|
|
1: required list<TColumnDesc> columnDescs
|
|
}
|
|
|
|
// Result of call to PaloPlanService/JniFrontend.CreateQueryRequest()
|
|
struct TQueryExecRequest {
|
|
// global descriptor tbl for all fragments
|
|
1: optional Descriptors.TDescriptorTable desc_tbl
|
|
|
|
// fragments[i] may consume the output of fragments[j > i];
|
|
// fragments[0] is the root fragment and also the coordinator fragment, if
|
|
// it is unpartitioned.
|
|
2: required list<Planner.TPlanFragment> fragments
|
|
|
|
// Specifies the destination fragment of the output of each fragment.
|
|
// parent_fragment_idx.size() == fragments.size() - 1 and
|
|
// fragments[i] sends its output to fragments[dest_fragment_idx[i-1]]
|
|
3: optional list<i32> dest_fragment_idx
|
|
|
|
// A map from scan node ids to a list of scan range locations.
|
|
// The node ids refer to scan nodes in fragments[].plan_tree
|
|
4: optional map<Types.TPlanNodeId, list<Planner.TScanRangeLocations>>
|
|
per_node_scan_ranges
|
|
|
|
// Metadata of the query result set (only for select)
|
|
5: optional TResultSetMetadata result_set_metadata
|
|
|
|
7: required PaloInternalService.TQueryGlobals query_globals
|
|
|
|
// The statement type governs when the coordinator can judge a query to be finished.
|
|
// DML queries are complete after Wait(), SELECTs may not be.
|
|
9: required Types.TStmtType stmt_type
|
|
|
|
// The statement type governs when the coordinator can judge a query to be finished.
|
|
// DML queries are complete after Wait(), SELECTs may not be.
|
|
10: optional bool is_block_query;
|
|
}
|
|
|
|
enum TDdlType {
|
|
USE,
|
|
DESCRIBE,
|
|
SET,
|
|
EXPLAIN,
|
|
KILL,
|
|
COMMON
|
|
}
|
|
|
|
struct TDdlExecRequest {
|
|
1: required TDdlType ddl_type
|
|
|
|
// Parameters for USE commands
|
|
2: optional TUseDbParams use_db_params;
|
|
|
|
// Parameters for DESCRIBE table commands
|
|
3: optional TDescribeTableParams describe_table_params
|
|
|
|
10: optional TExplainParams explain_params
|
|
|
|
11: optional TSetParams set_params
|
|
12: optional TKillParams kill_params
|
|
//13: optional Ddl.TMasterDdlRequest common_params
|
|
}
|
|
|
|
// Results of an EXPLAIN
|
|
struct TExplainResult {
|
|
// each line in the explain plan occupies an entry in the list
|
|
1: required list<Data.TResultRow> results
|
|
}
|
|
|
|
// Result of call to createExecRequest()
|
|
struct TExecRequest {
|
|
1: required Types.TStmtType stmt_type;
|
|
|
|
2: optional string sql_stmt;
|
|
|
|
// Globally unique id for this request. Assigned by the planner.
|
|
3: required Types.TUniqueId request_id
|
|
|
|
// Copied from the corresponding TClientRequest
|
|
4: required PaloInternalService.TQueryOptions query_options;
|
|
|
|
// TQueryExecRequest for the backend
|
|
// Set iff stmt_type is QUERY or DML
|
|
5: optional TQueryExecRequest query_exec_request
|
|
|
|
// Set iff stmt_type is DDL
|
|
6: optional TDdlExecRequest ddl_exec_request
|
|
|
|
// Metadata of the query result set (not set for DML)
|
|
7: optional TResultSetMetadata result_set_metadata
|
|
|
|
// Result of EXPLAIN. Set iff stmt_type is EXPLAIN
|
|
8: optional TExplainResult explain_result
|
|
}
|
|
|
|
// Arguments to getDbNames, which returns a list of dbs that match an optional
|
|
// pattern
|
|
struct TGetDbsParams {
|
|
// If not set, match every database
|
|
1: optional string pattern
|
|
2: optional string user // deprecated
|
|
3: optional string user_ip // deprecated
|
|
4: optional Types.TUserIdentity current_user_ident // to replace the user and user ip
|
|
5: optional string catalog
|
|
6: optional bool get_null_catalog //if catalog is empty , get dbName ="NULL" and dbId = -1.
|
|
}
|
|
|
|
// getDbNames returns a list of database names , database ids and catalog names ,catalog ids
|
|
struct TGetDbsResult {
|
|
1: optional list<string> dbs
|
|
2: optional list<string> catalogs
|
|
3: optional list<i64> db_ids
|
|
4: optional list<i64> catalog_ids
|
|
}
|
|
|
|
// Arguments to getTableNames, which returns a list of tables that match an
|
|
// optional pattern.
|
|
struct TGetTablesParams {
|
|
// If not set, match tables in all DBs
|
|
1: optional string db
|
|
|
|
// If not set, match every table
|
|
2: optional string pattern
|
|
3: optional string user // deprecated
|
|
4: optional string user_ip // deprecated
|
|
5: optional Types.TUserIdentity current_user_ident // to replace the user and user ip
|
|
6: optional string type
|
|
7: optional string catalog
|
|
}
|
|
|
|
struct TTableStatus {
|
|
1: required string name
|
|
2: required string type
|
|
3: required string comment
|
|
4: optional string engine
|
|
5: optional i64 last_check_time
|
|
6: optional i64 create_time
|
|
7: optional string ddl_sql
|
|
8: optional i64 update_time
|
|
9: optional i64 check_time
|
|
10: optional string collation
|
|
11: optional i64 rows;
|
|
12: optional i64 avg_row_length
|
|
13: optional i64 data_length;
|
|
}
|
|
|
|
struct TListTableStatusResult {
|
|
1: required list<TTableStatus> tables
|
|
}
|
|
|
|
struct TTableMetadataNameIds {
|
|
1: optional string name
|
|
2: optional i64 id
|
|
}
|
|
|
|
struct TListTableMetadataNameIdsResult {
|
|
1: optional list<TTableMetadataNameIds> tables
|
|
}
|
|
|
|
// getTableNames returns a list of unqualified table names
|
|
struct TGetTablesResult {
|
|
1: list<string> tables
|
|
}
|
|
|
|
struct TPrivilegeStatus {
|
|
1: optional string table_name
|
|
2: optional string privilege_type
|
|
3: optional string grantee
|
|
4: optional string schema
|
|
5: optional string is_grantable
|
|
}
|
|
|
|
struct TListPrivilegesResult{
|
|
1: required list<TPrivilegeStatus> privileges
|
|
}
|
|
|
|
struct TReportExecStatusResult {
|
|
// required in V1
|
|
1: optional Status.TStatus status
|
|
}
|
|
|
|
// Service Protocol Details
|
|
enum FrontendServiceVersion {
|
|
V1
|
|
}
|
|
|
|
// The results of an INSERT query, sent to the coordinator as part of
|
|
// TReportExecStatusParams
|
|
struct TReportExecStatusParams {
|
|
1: required FrontendServiceVersion protocol_version
|
|
|
|
// required in V1
|
|
2: optional Types.TUniqueId query_id
|
|
|
|
// passed into ExecPlanFragment() as TExecPlanFragmentParams.backend_num
|
|
// required in V1
|
|
3: optional i32 backend_num
|
|
|
|
// required in V1
|
|
4: optional Types.TUniqueId fragment_instance_id
|
|
|
|
// Status of fragment execution; any error status means it's done.
|
|
// required in V1
|
|
5: optional Status.TStatus status
|
|
|
|
// If true, fragment finished executing.
|
|
// required in V1
|
|
6: optional bool done
|
|
|
|
// cumulative profile
|
|
// required in V1
|
|
7: optional RuntimeProfile.TRuntimeProfileTree profile
|
|
|
|
// New errors that have not been reported to the coordinator
|
|
// optional in V1
|
|
9: optional list<string> error_log
|
|
|
|
// URL of files need to load
|
|
// optional
|
|
10: optional list<string> delta_urls
|
|
11: optional map<string, string> load_counters
|
|
12: optional string tracking_url
|
|
|
|
// export files
|
|
13: optional list<string> export_files
|
|
|
|
14: optional list<Types.TTabletCommitInfo> commitInfos
|
|
|
|
15: optional i64 loaded_rows
|
|
|
|
16: optional i64 backend_id
|
|
|
|
17: optional i64 loaded_bytes
|
|
|
|
18: optional list<Types.TErrorTabletInfo> errorTabletInfos
|
|
|
|
19: optional i32 fragment_id
|
|
|
|
20: optional PaloInternalService.TQueryType query_type
|
|
|
|
21: optional RuntimeProfile.TRuntimeProfileTree loadChannelProfile
|
|
|
|
22: optional i32 finished_scan_ranges
|
|
}
|
|
|
|
struct TFeResult {
|
|
1: required FrontendServiceVersion protocolVersion
|
|
2: required Status.TStatus status
|
|
}
|
|
|
|
struct TMasterOpRequest {
|
|
1: required string user
|
|
2: required string db
|
|
3: required string sql
|
|
// Deprecated
|
|
4: optional Types.TResourceInfo resourceInfo
|
|
5: optional string cluster
|
|
6: optional i64 execMemLimit // deprecated, move into query_options
|
|
7: optional i32 queryTimeout // deprecated, move into query_options
|
|
8: optional string user_ip
|
|
9: optional string time_zone // deprecated, move into session_variables
|
|
10: optional i64 stmt_id
|
|
11: optional i64 sqlMode // deprecated, move into session_variables
|
|
12: optional i64 loadMemLimit // deprecated, move into query_options
|
|
13: optional bool enableStrictMode // deprecated, move into session_variables
|
|
// this can replace the "user" field
|
|
14: optional Types.TUserIdentity current_user_ident
|
|
15: optional i32 stmtIdx // the idx of the sql in multi statements
|
|
16: optional PaloInternalService.TQueryOptions query_options
|
|
17: optional Types.TUniqueId query_id // when this is a query, we translate this query id to master
|
|
18: optional i64 insert_visible_timeout_ms // deprecated, move into session_variables
|
|
19: optional map<string, string> session_variables
|
|
20: optional bool foldConstantByBe
|
|
21: optional map<string, string> trace_carrier
|
|
22: optional string clientNodeHost
|
|
23: optional i32 clientNodePort
|
|
24: optional bool syncJournalOnly // if set to true, this request means to do nothing but just sync max journal id of master
|
|
25: optional string defaultCatalog
|
|
}
|
|
|
|
struct TColumnDefinition {
|
|
1: required string columnName;
|
|
2: required Types.TColumnType columnType;
|
|
3: optional Types.TAggregationType aggType;
|
|
4: optional string defaultValue;
|
|
}
|
|
|
|
struct TShowResultSetMetaData {
|
|
1: required list<TColumnDefinition> columns;
|
|
}
|
|
|
|
struct TShowResultSet {
|
|
1: required TShowResultSetMetaData metaData;
|
|
2: required list<list<string>> resultRows;
|
|
}
|
|
|
|
struct TMasterOpResult {
|
|
1: required i64 maxJournalId;
|
|
2: required binary packet;
|
|
3: optional TShowResultSet resultSet;
|
|
4: optional Types.TUniqueId queryId;
|
|
5: optional string status;
|
|
}
|
|
|
|
struct TUpdateExportTaskStatusRequest {
|
|
1: required FrontendServiceVersion protocolVersion
|
|
2: required Types.TUniqueId taskId
|
|
3: required PaloInternalService.TExportStatusResult taskStatus
|
|
}
|
|
|
|
struct TLoadTxnBeginRequest {
|
|
1: optional string cluster
|
|
2: required string user
|
|
3: required string passwd
|
|
4: required string db
|
|
5: required string tbl
|
|
6: optional string user_ip
|
|
7: required string label
|
|
8: optional i64 timestamp // deprecated, use request_id instead
|
|
9: optional i64 auth_code
|
|
// The real value of timeout should be i32. i64 ensures the compatibility of interface.
|
|
10: optional i64 timeout
|
|
11: optional Types.TUniqueId request_id
|
|
12: optional string token
|
|
}
|
|
|
|
struct TLoadTxnBeginResult {
|
|
1: required Status.TStatus status
|
|
2: optional i64 txnId
|
|
3: optional string job_status // if label already used, set status of existing job
|
|
4: optional i64 db_id
|
|
}
|
|
|
|
struct TBeginTxnRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string passwd
|
|
4: optional string db
|
|
5: optional list<i64> table_ids
|
|
6: optional string user_ip
|
|
7: optional string label
|
|
8: optional i64 auth_code
|
|
// The real value of timeout should be i32. i64 ensures the compatibility of interface.
|
|
9: optional i64 timeout
|
|
10: optional Types.TUniqueId request_id
|
|
11: optional string token
|
|
}
|
|
|
|
struct TBeginTxnResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i64 txn_id
|
|
3: optional string job_status // if label already used, set status of existing job
|
|
4: optional i64 db_id
|
|
}
|
|
|
|
// StreamLoad request, used to load a streaming to engine
|
|
struct TStreamLoadPutRequest {
|
|
1: optional string cluster
|
|
2: required string user
|
|
3: required string passwd
|
|
4: required string db
|
|
5: required string tbl
|
|
6: optional string user_ip
|
|
|
|
// and use this to assgin to OlapTableSink
|
|
7: required Types.TUniqueId loadId
|
|
8: required i64 txnId
|
|
|
|
9: required Types.TFileType fileType
|
|
10: required PlanNodes.TFileFormatType formatType
|
|
|
|
// only valid when file_type is FILE_LOCAL
|
|
11: optional string path
|
|
|
|
// describe how table's column map to field in source file
|
|
// slot descriptor stands for field of source file
|
|
12: optional string columns
|
|
// filters that applied on data
|
|
13: optional string where
|
|
// only valid when file type is CSV
|
|
14: optional string columnSeparator
|
|
|
|
15: optional string partitions
|
|
16: optional i64 auth_code
|
|
17: optional bool negative
|
|
18: optional i32 timeout
|
|
19: optional bool strictMode
|
|
20: optional string timezone
|
|
21: optional i64 execMemLimit
|
|
22: optional bool isTempPartition
|
|
23: optional bool strip_outer_array
|
|
24: optional string jsonpaths
|
|
25: optional i64 thrift_rpc_timeout_ms
|
|
26: optional string json_root
|
|
27: optional Types.TMergeType merge_type
|
|
28: optional string delete_condition
|
|
29: optional string sequence_col
|
|
30: optional bool num_as_string
|
|
31: optional bool fuzzy_parse
|
|
32: optional string line_delimiter
|
|
33: optional bool read_json_by_line
|
|
34: optional string token
|
|
35: optional i32 send_batch_parallelism
|
|
36: optional double max_filter_ratio
|
|
37: optional bool load_to_single_tablet
|
|
38: optional string header_type
|
|
39: optional string hidden_columns
|
|
40: optional PlanNodes.TFileCompressType compress_type
|
|
41: optional i64 file_size // only for stream load with parquet or orc
|
|
42: optional bool trim_double_quotes // trim double quotes for csv
|
|
43: optional i32 skip_lines // csv skip line num, only used when csv header_type is not set.
|
|
44: optional bool enable_profile
|
|
45: optional bool partial_update
|
|
46: optional list<string> table_names
|
|
47: optional string load_sql // insert into sql used by stream load
|
|
48: optional i64 backend_id
|
|
49: optional i32 version // version 1 means use load_sql
|
|
50: optional string label
|
|
// only valid when file type is CSV
|
|
51: optional i8 enclose
|
|
// only valid when file type is CSV
|
|
52: optional i8 escape
|
|
53: optional bool memtable_on_sink_node;
|
|
}
|
|
|
|
struct TStreamLoadPutResult {
|
|
1: required Status.TStatus status
|
|
// valid when status is OK
|
|
2: optional PaloInternalService.TExecPlanFragmentParams params
|
|
3: optional PaloInternalService.TPipelineFragmentParams pipeline_params
|
|
}
|
|
|
|
struct TStreamLoadMultiTablePutResult {
|
|
1: required Status.TStatus status
|
|
// valid when status is OK
|
|
2: optional list<PaloInternalService.TExecPlanFragmentParams> params
|
|
3: optional list<PaloInternalService.TPipelineFragmentParams> pipeline_params
|
|
}
|
|
|
|
struct TStreamLoadWithLoadStatusResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i64 txn_id
|
|
3: optional i64 total_rows
|
|
4: optional i64 loaded_rows
|
|
5: optional i64 filtered_rows
|
|
6: optional i64 unselected_rows
|
|
}
|
|
|
|
struct TKafkaRLTaskProgress {
|
|
1: required map<i32,i64> partitionCmtOffset
|
|
}
|
|
|
|
struct TRLTaskTxnCommitAttachment {
|
|
1: required Types.TLoadSourceType loadSourceType
|
|
2: required Types.TUniqueId id
|
|
3: required i64 jobId
|
|
4: optional i64 loadedRows
|
|
5: optional i64 filteredRows
|
|
6: optional i64 unselectedRows
|
|
7: optional i64 receivedBytes
|
|
8: optional i64 loadedBytes
|
|
9: optional i64 loadCostMs
|
|
10: optional TKafkaRLTaskProgress kafkaRLTaskProgress
|
|
11: optional string errorLogUrl
|
|
}
|
|
|
|
struct TTxnCommitAttachment {
|
|
1: required Types.TLoadType loadType
|
|
2: optional TRLTaskTxnCommitAttachment rlTaskTxnCommitAttachment
|
|
// 3: optional TMiniLoadTxnCommitAttachment mlTxnCommitAttachment
|
|
}
|
|
|
|
struct TLoadTxnCommitRequest {
|
|
1: optional string cluster
|
|
2: required string user
|
|
3: required string passwd
|
|
4: required string db
|
|
5: required string tbl
|
|
6: optional string user_ip
|
|
7: required i64 txnId
|
|
8: required bool sync
|
|
9: optional list<Types.TTabletCommitInfo> commitInfos
|
|
10: optional i64 auth_code
|
|
11: optional TTxnCommitAttachment txnCommitAttachment
|
|
12: optional i64 thrift_rpc_timeout_ms
|
|
13: optional string token
|
|
14: optional i64 db_id
|
|
15: optional list<string> tbls
|
|
}
|
|
|
|
struct TLoadTxnCommitResult {
|
|
1: required Status.TStatus status
|
|
}
|
|
|
|
struct TCommitTxnRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string passwd
|
|
4: optional string db
|
|
5: optional string user_ip
|
|
6: optional i64 txn_id
|
|
7: optional list<Types.TTabletCommitInfo> commit_infos
|
|
8: optional i64 auth_code
|
|
9: optional TTxnCommitAttachment txn_commit_attachment
|
|
10: optional i64 thrift_rpc_timeout_ms
|
|
11: optional string token
|
|
12: optional i64 db_id
|
|
}
|
|
|
|
struct TCommitTxnResult {
|
|
1: optional Status.TStatus status
|
|
}
|
|
|
|
struct TLoadTxn2PCRequest {
|
|
1: optional string cluster
|
|
2: required string user
|
|
3: required string passwd
|
|
4: optional string db
|
|
5: optional string user_ip
|
|
6: optional i64 txnId
|
|
7: optional string operation
|
|
8: optional i64 auth_code
|
|
9: optional string token
|
|
10: optional i64 thrift_rpc_timeout_ms
|
|
}
|
|
|
|
struct TLoadTxn2PCResult {
|
|
1: required Status.TStatus status
|
|
}
|
|
|
|
struct TRollbackTxnRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string passwd
|
|
4: optional string db
|
|
5: optional string user_ip
|
|
6: optional i64 txn_id
|
|
7: optional string reason
|
|
9: optional i64 auth_code
|
|
10: optional TTxnCommitAttachment txn_commit_attachment
|
|
11: optional string token
|
|
12: optional i64 db_id
|
|
}
|
|
|
|
struct TRollbackTxnResult {
|
|
1: optional Status.TStatus status
|
|
}
|
|
|
|
struct TLoadTxnRollbackRequest {
|
|
1: optional string cluster
|
|
2: required string user
|
|
3: required string passwd
|
|
4: required string db
|
|
5: required string tbl
|
|
6: optional string user_ip
|
|
7: required i64 txnId
|
|
8: optional string reason
|
|
9: optional i64 auth_code
|
|
10: optional TTxnCommitAttachment txnCommitAttachment
|
|
11: optional string token
|
|
12: optional i64 db_id
|
|
13: optional list<string> tbls
|
|
}
|
|
|
|
struct TLoadTxnRollbackResult {
|
|
1: required Status.TStatus status
|
|
}
|
|
|
|
struct TSnapshotLoaderReportRequest {
|
|
1: required i64 job_id
|
|
2: required i64 task_id
|
|
3: required Types.TTaskType task_type
|
|
4: optional i32 finished_num
|
|
5: optional i32 total_num
|
|
}
|
|
|
|
enum TFrontendPingFrontendStatusCode {
|
|
OK = 0,
|
|
FAILED = 1
|
|
}
|
|
|
|
struct TFrontendPingFrontendRequest {
|
|
1: required i32 clusterId
|
|
2: required string token
|
|
}
|
|
|
|
struct TDiskInfo {
|
|
1: required string dirType
|
|
2: required string dir
|
|
3: required string filesystem
|
|
4: required i64 blocks
|
|
5: required i64 used
|
|
6: required i64 available
|
|
7: required i32 useRate
|
|
8: required string mountedOn
|
|
}
|
|
|
|
struct TFrontendPingFrontendResult {
|
|
1: required TFrontendPingFrontendStatusCode status
|
|
2: required string msg
|
|
3: required i32 queryPort
|
|
4: required i32 rpcPort
|
|
5: required i64 replayedJournalId
|
|
6: required string version
|
|
7: optional i64 lastStartupTime
|
|
8: optional list<TDiskInfo> diskInfos
|
|
9: optional i64 processUUID
|
|
}
|
|
|
|
struct TPropertyVal {
|
|
1: optional string strVal
|
|
2: optional i32 intVal
|
|
3: optional i64 longVal
|
|
4: optional bool boolVal
|
|
}
|
|
|
|
struct TWaitingTxnStatusRequest {
|
|
1: optional i64 db_id
|
|
2: optional i64 txn_id
|
|
3: optional string label
|
|
}
|
|
|
|
struct TWaitingTxnStatusResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i32 txn_status_id
|
|
}
|
|
|
|
struct TInitExternalCtlMetaRequest {
|
|
1: optional i64 catalogId
|
|
2: optional i64 dbId
|
|
3: optional i64 tableId
|
|
}
|
|
|
|
struct TInitExternalCtlMetaResult {
|
|
1: optional i64 maxJournalId;
|
|
2: optional string status;
|
|
}
|
|
|
|
enum TSchemaTableName {
|
|
// BACKENDS = 0,
|
|
METADATA_TABLE = 1,
|
|
}
|
|
|
|
struct TMetadataTableRequestParams {
|
|
1: optional Types.TMetadataType metadata_type
|
|
2: optional PlanNodes.TIcebergMetadataParams iceberg_metadata_params
|
|
3: optional PlanNodes.TBackendsMetadataParams backends_metadata_params
|
|
4: optional list<string> columns_name
|
|
5: optional PlanNodes.TFrontendsMetadataParams frontends_metadata_params
|
|
6: optional Types.TUserIdentity current_user_ident
|
|
}
|
|
|
|
struct TFetchSchemaTableDataRequest {
|
|
1: optional string cluster_name
|
|
2: optional TSchemaTableName schema_table_name
|
|
3: optional TMetadataTableRequestParams metada_table_params
|
|
}
|
|
|
|
struct TFetchSchemaTableDataResult {
|
|
1: required Status.TStatus status
|
|
2: optional list<Data.TRow> data_batch;
|
|
}
|
|
|
|
// Only support base table add columns
|
|
struct TAddColumnsRequest {
|
|
1: optional i64 table_id
|
|
2: optional list<TColumnDef> addColumns
|
|
3: optional string table_name
|
|
4: optional string db_name
|
|
5: optional bool allow_type_conflict
|
|
}
|
|
|
|
// Only support base table add columns
|
|
struct TAddColumnsResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i64 table_id
|
|
3: optional list<Descriptors.TColumn> allColumns
|
|
4: optional i32 schema_version
|
|
}
|
|
|
|
struct TMySqlLoadAcquireTokenResult {
|
|
1: optional Status.TStatus status
|
|
2: optional string token
|
|
}
|
|
|
|
struct TTabletCooldownInfo {
|
|
1: optional Types.TTabletId tablet_id
|
|
2: optional Types.TReplicaId cooldown_replica_id
|
|
3: optional Types.TUniqueId cooldown_meta_id
|
|
}
|
|
|
|
struct TConfirmUnusedRemoteFilesRequest {
|
|
1: optional list<TTabletCooldownInfo> confirm_list
|
|
}
|
|
|
|
struct TConfirmUnusedRemoteFilesResult {
|
|
1: optional list<Types.TTabletId> confirmed_tablets
|
|
}
|
|
|
|
enum TPrivilegeHier {
|
|
GLOBAL = 0,
|
|
CATALOG = 1,
|
|
DATABASE = 2,
|
|
TABLE = 3,
|
|
COLUMNS = 4,
|
|
RESOURSE = 5,
|
|
}
|
|
|
|
struct TPrivilegeCtrl {
|
|
1: required TPrivilegeHier priv_hier
|
|
2: optional string ctl
|
|
3: optional string db
|
|
4: optional string tbl
|
|
5: optional set<string> cols
|
|
6: optional string res
|
|
}
|
|
|
|
enum TPrivilegeType {
|
|
NONE = -1,
|
|
SHOW = 0,
|
|
SHOW_RESOURCES = 1,
|
|
GRANT = 2,
|
|
ADMIN = 3,
|
|
LOAD = 4,
|
|
ALTER = 5,
|
|
USAGE = 6,
|
|
CREATE = 7,
|
|
ALL = 8,
|
|
OPERATOR = 9,
|
|
DROP = 10
|
|
}
|
|
|
|
struct TCheckAuthRequest {
|
|
1: optional string cluster
|
|
2: required string user
|
|
3: required string passwd
|
|
4: optional string user_ip
|
|
5: optional TPrivilegeCtrl priv_ctrl
|
|
6: optional TPrivilegeType priv_type
|
|
7: optional i64 thrift_rpc_timeout_ms
|
|
}
|
|
|
|
struct TCheckAuthResult {
|
|
1: required Status.TStatus status
|
|
}
|
|
|
|
enum TQueryStatsType {
|
|
CATALOG = 0,
|
|
DATABASE = 1,
|
|
TABLE = 2,
|
|
TABLE_ALL = 3,
|
|
TABLE_ALL_VERBOSE = 4,
|
|
TABLET = 5,
|
|
TABLETS = 6
|
|
}
|
|
|
|
struct TGetQueryStatsRequest {
|
|
1: optional TQueryStatsType type
|
|
2: optional string catalog
|
|
3: optional string db
|
|
4: optional string tbl
|
|
5: optional i64 replica_id
|
|
6: optional list<i64> replica_ids
|
|
}
|
|
|
|
struct TTableQueryStats {
|
|
1: optional string field
|
|
2: optional i64 query_stats
|
|
3: optional i64 filter_stats
|
|
}
|
|
|
|
struct TTableIndexQueryStats {
|
|
1: optional string index_name
|
|
2: optional list<TTableQueryStats> table_stats
|
|
}
|
|
|
|
struct TQueryStatsResult {
|
|
1: optional Status.TStatus status
|
|
2: optional map<string, i64> simple_result
|
|
3: optional list<TTableQueryStats> table_stats
|
|
4: optional list<TTableIndexQueryStats> table_verbos_stats
|
|
5: optional map<i64, i64> tablet_stats
|
|
}
|
|
|
|
struct TGetBinlogRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string passwd
|
|
4: optional string db
|
|
5: optional string table
|
|
6: optional i64 table_id
|
|
7: optional string user_ip
|
|
8: optional string token
|
|
9: optional i64 prev_commit_seq
|
|
}
|
|
|
|
enum TBinlogType {
|
|
UPSERT = 0,
|
|
ADD_PARTITION = 1,
|
|
CREATE_TABLE = 2,
|
|
DROP_PARTITION = 3,
|
|
DROP_TABLE = 4,
|
|
ALTER_JOB = 5,
|
|
MODIFY_TABLE_ADD_OR_DROP_COLUMNS = 6,
|
|
DUMMY = 7,
|
|
ALTER_DATABASE_PROPERTY = 8,
|
|
MODIFY_TABLE_PROPERTY = 9,
|
|
BARRIER = 10,
|
|
MODIFY_PARTITIONS = 11,
|
|
REPLACE_PARTITIONS = 12,
|
|
}
|
|
|
|
struct TBinlog {
|
|
1: optional i64 commit_seq
|
|
2: optional i64 timestamp
|
|
3: optional TBinlogType type
|
|
4: optional i64 db_id
|
|
5: optional list<i64> table_ids
|
|
6: optional string data
|
|
7: optional i64 belong // belong == -1 if type is not DUMMY
|
|
8: optional i64 table_ref // only use for gc
|
|
9: optional bool remove_enable_cache
|
|
}
|
|
|
|
struct TGetBinlogResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i64 next_commit_seq
|
|
3: optional list<TBinlog> binlogs
|
|
4: optional string fe_version
|
|
5: optional i64 fe_meta_version
|
|
}
|
|
|
|
struct TGetTabletReplicaInfosRequest {
|
|
1: required list<i64> tablet_ids
|
|
}
|
|
|
|
struct TGetTabletReplicaInfosResult {
|
|
1: optional Status.TStatus status
|
|
2: optional map<i64, list<Types.TReplicaInfo>> tablet_replica_infos
|
|
3: optional string token
|
|
}
|
|
|
|
enum TSnapshotType {
|
|
REMOTE = 0,
|
|
LOCAL = 1,
|
|
}
|
|
|
|
struct TGetSnapshotRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string passwd
|
|
4: optional string db
|
|
5: optional string table
|
|
6: optional string token
|
|
7: optional string label_name
|
|
8: optional string snapshot_name
|
|
9: optional TSnapshotType snapshot_type
|
|
}
|
|
|
|
struct TGetSnapshotResult {
|
|
1: optional Status.TStatus status
|
|
2: optional binary meta
|
|
3: optional binary job_info
|
|
}
|
|
|
|
struct TTableRef {
|
|
1: optional string table
|
|
}
|
|
|
|
struct TRestoreSnapshotRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string passwd
|
|
4: optional string db
|
|
5: optional string table
|
|
6: optional string token
|
|
7: optional string label_name
|
|
8: optional string repo_name
|
|
9: optional list<TTableRef> table_refs
|
|
10: optional map<string, string> properties
|
|
11: optional binary meta
|
|
12: optional binary job_info
|
|
}
|
|
|
|
struct TRestoreSnapshotResult {
|
|
1: optional Status.TStatus status
|
|
}
|
|
|
|
struct TGetMasterTokenRequest {
|
|
1: optional string cluster
|
|
2: optional string user
|
|
3: optional string password
|
|
}
|
|
|
|
struct TGetMasterTokenResult {
|
|
1: optional Status.TStatus status
|
|
2: optional string token
|
|
}
|
|
|
|
typedef TGetBinlogRequest TGetBinlogLagRequest
|
|
|
|
struct TGetBinlogLagResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i64 lag
|
|
}
|
|
|
|
struct TUpdateFollowerStatsCacheRequest {
|
|
1: optional string key;
|
|
2: list<string> statsRows;
|
|
}
|
|
|
|
struct TAutoIncrementRangeRequest {
|
|
1: optional i64 db_id;
|
|
2: optional i64 table_id;
|
|
3: optional i64 column_id;
|
|
4: optional i64 length
|
|
5: optional i64 lower_bound // if set, values in result range must larger than `lower_bound`
|
|
}
|
|
|
|
struct TAutoIncrementRangeResult {
|
|
1: optional Status.TStatus status
|
|
2: optional i64 start
|
|
3: optional i64 length
|
|
}
|
|
|
|
service FrontendService {
|
|
TGetDbsResult getDbNames(1: TGetDbsParams params)
|
|
TGetTablesResult getTableNames(1: TGetTablesParams params)
|
|
TDescribeTableResult describeTable(1: TDescribeTableParams params)
|
|
TDescribeTablesResult describeTables(1: TDescribeTablesParams params)
|
|
TShowVariableResult showVariables(1: TShowVariableRequest params)
|
|
TReportExecStatusResult reportExecStatus(1: TReportExecStatusParams params)
|
|
|
|
MasterService.TMasterResult finishTask(1: MasterService.TFinishTaskRequest request)
|
|
MasterService.TMasterResult report(1: MasterService.TReportRequest request)
|
|
// Deprecated
|
|
MasterService.TFetchResourceResult fetchResource()
|
|
|
|
TMasterOpResult forward(1: TMasterOpRequest params)
|
|
|
|
TListTableStatusResult listTableStatus(1: TGetTablesParams params)
|
|
TListTableMetadataNameIdsResult listTableMetadataNameIds(1: TGetTablesParams params)
|
|
TListPrivilegesResult listTablePrivilegeStatus(1: TGetTablesParams params)
|
|
TListPrivilegesResult listSchemaPrivilegeStatus(1: TGetTablesParams params)
|
|
TListPrivilegesResult listUserPrivilegeStatus(1: TGetTablesParams params)
|
|
|
|
TFeResult updateExportTaskStatus(1: TUpdateExportTaskStatusRequest request)
|
|
|
|
TLoadTxnBeginResult loadTxnBegin(1: TLoadTxnBeginRequest request)
|
|
TLoadTxnCommitResult loadTxnPreCommit(1: TLoadTxnCommitRequest request)
|
|
TLoadTxn2PCResult loadTxn2PC(1: TLoadTxn2PCRequest request)
|
|
TLoadTxnCommitResult loadTxnCommit(1: TLoadTxnCommitRequest request)
|
|
TLoadTxnRollbackResult loadTxnRollback(1: TLoadTxnRollbackRequest request)
|
|
|
|
TBeginTxnResult beginTxn(1: TBeginTxnRequest request)
|
|
TCommitTxnResult commitTxn(1: TCommitTxnRequest request)
|
|
TRollbackTxnResult rollbackTxn(1: TRollbackTxnRequest request)
|
|
TGetBinlogResult getBinlog(1: TGetBinlogRequest request)
|
|
TGetSnapshotResult getSnapshot(1: TGetSnapshotRequest request)
|
|
TRestoreSnapshotResult restoreSnapshot(1: TRestoreSnapshotRequest request)
|
|
|
|
TWaitingTxnStatusResult waitingTxnStatus(1: TWaitingTxnStatusRequest request)
|
|
|
|
TStreamLoadPutResult streamLoadPut(1: TStreamLoadPutRequest request)
|
|
|
|
TStreamLoadMultiTablePutResult streamLoadMultiTablePut(1: TStreamLoadPutRequest request)
|
|
|
|
Status.TStatus snapshotLoaderReport(1: TSnapshotLoaderReportRequest request)
|
|
|
|
TFrontendPingFrontendResult ping(1: TFrontendPingFrontendRequest request)
|
|
|
|
TAddColumnsResult addColumns(1: TAddColumnsRequest request)
|
|
|
|
TInitExternalCtlMetaResult initExternalCtlMeta(1: TInitExternalCtlMetaRequest request)
|
|
|
|
TFetchSchemaTableDataResult fetchSchemaTableData(1: TFetchSchemaTableDataRequest request)
|
|
|
|
TMySqlLoadAcquireTokenResult acquireToken()
|
|
|
|
TConfirmUnusedRemoteFilesResult confirmUnusedRemoteFiles(1: TConfirmUnusedRemoteFilesRequest request)
|
|
|
|
TCheckAuthResult checkAuth(1: TCheckAuthRequest request)
|
|
|
|
TQueryStatsResult getQueryStats(1: TGetQueryStatsRequest request)
|
|
|
|
TGetTabletReplicaInfosResult getTabletReplicaInfos(1: TGetTabletReplicaInfosRequest request)
|
|
|
|
TGetMasterTokenResult getMasterToken(1: TGetMasterTokenRequest request)
|
|
|
|
TGetBinlogLagResult getBinlogLag(1: TGetBinlogLagRequest request)
|
|
|
|
Status.TStatus updateStatsCache(1: TUpdateFollowerStatsCacheRequest request)
|
|
|
|
TAutoIncrementRangeResult getAutoIncrementRange(1: TAutoIncrementRangeRequest request)
|
|
}
|