blob: 9696230af909edc2d6ec7f5579fbb8327b8e84bc [file] [log] [blame]
// 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 "Partitions.thrift"
include "Types.thrift"
include "Status.thrift"
struct TDdlResult {
// required in V1
1: optional Status.TStatus status
}
enum TCommonDdlType {
CREATE_DATABASE
DROP_DATABASE
CREATE_TABLE
DROP_TABLE
LOAD
}
// Parameters of CREATE DATABASE command
struct TCreateDbParams {
// database name to create
1: required string database_name
}
// Parameters of DROP DATABASE command
struct TDropDbParams {
// database name to drop
1: required string database_name
}
// database_name + table_name
struct TTableName {
1: required string db_name
2: required string table_name
}
// supported aggregation type
enum TAggType {
AGG_SUM
AGG_MIN
AGG_MAX
AGG_REPLACE
}
// column defination
//struct TColumn {
// // column name
// 1: required string column_name
//
// // column type
// 2: required Types.TColumnType column_type
//
// // aggregation type, if not set, this column is a KEY column, otherwise is a value column
// 3: optional TAggType agg_type
//
// // default value
// 4: optional string default_value
//}
enum THashType {
CRC32
}
// random partition info
struct TRandomPartitionDesc {
}
// hash partition info
struct THashPartitionDesc {
// column to compute hash value
1: required list<string> column_list
// hash buckets
2: required i32 hash_buckets
// type to compute hash value. if not set, use CRC32
3: optional THashType hash_type
}
// value used to represents one column value in one range value
struct TValue {
1: optional string value
// if this sign is set and is true, this value is stand for MAX value
2: optional bool max_sign
}
// one range value
struct TRangeValue {
1: required list<TValue> value_list
}
// range partition defination
struct TRangePartitionDesc {
// column used to compute range
1: required list<string> column_list
// range value for range, if not set, all in one range
2: optional list<TRangeValue> range_value
}
// partition info
struct TPartitionDesc {
// partition type
1: required Partitions.TPartitionType type
// hash buckets
2: required i32 partition_num
// hash partition information
3: optional THashPartitionDesc hash_partition
// range partition information
4: optional TRangePartitionDesc range_partition
// random partition infomation
5: optional TRandomPartitionDesc random_partition
}
// Parameters of CREATE TABLE command
struct TCreateTableParams {
// table name to create
1: required TTableName table_name
// column defination.
// 2: required list<TColumn> columns
// engine type, if not set, use the default type.
3: optional string engine_name
// if set and true, no error when there is already table with same name
4: optional bool if_not_exists
// partition info, if not set, use the default partition type which meta define.
5: optional TPartitionDesc partition_desc
// used to set row format, maybe columnar or row format
6: optional string row_format_type
// other properties
7: optional map<string, string> properties
}
// Parameters of DROP TABLE command
struct TDropTableParams {
// table name to drop
1: required TTableName table_name
// If true, no error is raised if the target db does not exist
2: optional bool if_exists
}
// Parameters to CREATE ROLLUP
struct TCreateRollupParams {
// table name which create rollup
1: required TTableName table_name
// column names ROLLUP contains
2: required list<string> column_names
// rollup name, if not set, meta will assign a default value
3: optional string rollup_name
// partition info, if not set, use the base table's
4: optional TPartitionDesc partition_desc
}
// Parameters to DROP ROLLUP
struct TDropRollupParams {
// table name which create rollup
1: required TTableName table_name
// rollup name to drop
2: required string rollup_name
}
// Parameters for SCHEMA CHANGE
// struct TShcemaChangeParams {
// // table name need to schema change
// 1: required TTableName table_name
//
// // column definations for this table
// 2: required list<TColumn> column_defs
//
// // rollup schema, map is 'rollup_name' -> 'list of column_name'
// 3: required map<string, list<string>> rollup_defs
// }
// Parameters to create function
struct TCreateFunctionParams {
// database name which function to create is in
1: required string db_name
// function name to create
2: required string function_name
// function argument type
3: required list<Types.TColumnType> argument_type
// function return type
4: required Types.TColumnType return_type
// function dynamic library path
5: required string so_file_path
// other properties
6: optional map<string, string> properties
}
// Parameters to drop function
struct TDropFunctionParams {
// database name which function to drop is in
1: required string db_name
// function name to drop
2: required string function_name
}
// enum TSetType {
// SESSION
// GLOBAL
// }
//
// // Parameters to SET opration
// struct TSetParams {
// // set type, GLOBAL\SESSION
// 1: required TSetType type
//
// // set pairs, one name and one Expr
// // 2: required map<string, TExpr> set_content
// }
struct TUserSpecification {
1: required string user_name
2: optional string host_name
}
// Parameters to create user
struct TCreateUserParams {
1: required TUserSpecification user_spec
// user's password
2: optional string password
}
// Parameters to drop user
struct TDropUserParams {
// user name to drop
1: required string user_spec
}
// Parameters to SET PASSWORD
struct TSetPasswordParams {
1: required TUserSpecification user_spec
// password will changed to after this opration
3: required string password
}
enum TPrivType {
PRIVILEGE_READ_ONLY
PRIVILEGE_READ_WRITE
}
// Parameters to GRANT
struct TGrantParams {
1: required TUserSpecification user_spec
// database to grant
3: required string db_name
// privileges to grant
4: required list<TPrivType> priv_types
}
// Data info
struct TDataSpecification {
// database name which table belongs to
1: required TTableName table_name
// all file pathes need to load
3: required list<string> file_path
// column names in file
4: optional list<string> columns
// column separator
5: optional string column_separator
// line separator
6: optional string line_separator
// if true, value will be multiply with -1
7: optional bool is_negative
}
struct TLabelName {
// database name which load_label belongs to
1: required string db_name
// load label which to be canceled.
2: required string load_label
}
// Parameters to LOAD file
struct TLoadParams {
// label belong to this load job, used when cancel load, show load
1: required TLabelName load_label
// data profiles used to load in this job
2: required list<TDataSpecification> data_profiles
// task info
3: optional map<string, string> properties
}
// Parameters to CANCEL LOAD file
struct TCancelLoadParams {
1: required TLabelName load_label
}
enum TPaloInternalServiceVersion {
V1
}
struct TMasterDdlRequest {
1: required TPaloInternalServiceVersion protocol_version
2: required TCommonDdlType ddl_type
3: optional TCreateDbParams create_db_params
4: optional TDropDbParams drop_db_params
// 5: optional TCreateTableParams create_table_params
6: optional TDropTableParams drop_table_params
7: optional TLoadParams load_params
8: optional TCancelLoadParams cancel_load_params
9: optional TCreateUserParams create_user_params
10: optional TDropUserParams drop_user_params
11: optional TCreateRollupParams create_rollup_params
12: optional TDropRollupParams drop_rollup_params
13: optional TCreateFunctionParams create_function_params
14: optional TDropFunctionParams drop_function_params
}
struct TMasterDdlResponse {
1: required TPaloInternalServiceVersion protocol_version
2: required TCommonDdlType ddl_type
3: optional Status.TStatus status
}