Files
doris/gensrc/thrift/Descriptors.thrift
zy-kkk 4a62d9e44b Revert "[2.1][improvement](jdbc catalog) Add catalog property to enable jdbc connection pool" (#42481)
Reverts apache/doris#42255

We have found that after closing the connection pool, there will be
class loading problems and connection release problems for some data
sources. We will remove this function first and re-add it after solving
and testing it completely.
2024-10-25 19:37:36 +08:00

398 lines
11 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 "Types.thrift"
include "Exprs.thrift"
include "Partitions.thrift"
struct TColumn {
1: required string column_name
2: required Types.TColumnType column_type
3: optional Types.TAggregationType aggregation_type
4: optional bool is_key
5: optional bool is_allow_null
6: optional string default_value
7: optional bool is_bloom_filter_column
8: optional Exprs.TExpr define_expr
9: optional bool visible = true
10: optional list<TColumn> children_column
11: optional i32 col_unique_id = -1
12: optional bool has_bitmap_index = false
13: optional bool has_ngram_bf_index = false
14: optional i32 gram_size
15: optional i32 gram_bf_size
16: optional string aggregation
17: optional bool result_is_nullable
18: optional bool is_auto_increment = false;
19: optional i32 cluster_key_id = -1
}
struct TSlotDescriptor {
1: required Types.TSlotId id
2: required Types.TTupleId parent
3: required Types.TTypeDesc slotType
4: required i32 columnPos // in originating table
5: required i32 byteOffset // deprecated
6: required i32 nullIndicatorByte
7: required i32 nullIndicatorBit
8: required string colName;
9: required i32 slotIdx
10: required bool isMaterialized
11: optional i32 col_unique_id = -1
12: optional bool is_key = false
// If set to false, then such slots will be ignored during
// materialize them.Used to optmize to read less data and less memory usage
13: optional bool need_materialize = true
14: optional bool is_auto_increment = false;
// subcolumn path info list for semi structure column(variant)
15: optional list<string> column_paths
16: optional string col_default_value
17: optional Types.TPrimitiveType primitive_type = Types.TPrimitiveType.INVALID_TYPE
}
struct TTupleDescriptor {
1: required Types.TTupleId id
2: required i32 byteSize // deprecated
3: required i32 numNullBytes // deprecated
4: optional Types.TTableId tableId
5: optional i32 numNullSlots // deprecated
}
enum THdfsFileFormat {
TEXT = 0,
LZO_TEXT = 1,
RC_FILE = 2,
SEQUENCE_FILE =3,
AVRO = 4,
PARQUET = 5
}
enum TSchemaTableType {
SCH_AUTHORS = 0,
SCH_CHARSETS = 1,
SCH_COLLATIONS = 2,
SCH_COLLATION_CHARACTER_SET_APPLICABILITY = 3,
SCH_COLUMNS = 4,
SCH_COLUMN_PRIVILEGES = 5,
SCH_CREATE_TABLE = 6,
SCH_ENGINES = 7,
SCH_EVENTS = 8,
SCH_FILES = 9,
SCH_GLOBAL_STATUS = 10,
SCH_GLOBAL_VARIABLES = 11,
SCH_KEY_COLUMN_USAGE = 12,
SCH_OPEN_TABLES = 13,
SCH_PARTITIONS = 14,
SCH_PLUGINS = 15,
SCH_PROCESSLIST = 16,
SCH_PROFILES = 17,
SCH_REFERENTIAL_CONSTRAINTS = 18,
SCH_PROCEDURES = 19,
SCH_SCHEMATA = 20,
SCH_SCHEMA_PRIVILEGES = 21,
SCH_SESSION_STATUS = 22,
SCH_SESSION_VARIABLES = 23,
SCH_STATISTICS = 24,
SCH_STATUS = 25,
SCH_TABLES = 26,
SCH_TABLE_CONSTRAINTS = 27,
SCH_TABLE_NAMES = 28,
SCH_TABLE_PRIVILEGES = 29,
SCH_TRIGGERS = 30,
SCH_USER_PRIVILEGES = 31,
SCH_VARIABLES = 32,
SCH_VIEWS = 33,
SCH_INVALID = 34,
SCH_ROWSETS = 35
SCH_BACKENDS = 36,
SCH_COLUMN_STATISTICS = 37,
SCH_PARAMETERS = 38,
SCH_METADATA_NAME_IDS = 39,
SCH_PROFILING = 40,
SCH_BACKEND_ACTIVE_TASKS = 41,
SCH_ACTIVE_QUERIES = 42,
SCH_WORKLOAD_GROUPS = 43,
SCH_USER = 44,
SCH_PROCS_PRIV = 45,
SCH_WORKLOAD_POLICY = 46,
SCH_TABLE_OPTIONS = 47,
SCH_WORKLOAD_GROUP_PRIVILEGES = 48,
SCH_WORKLOAD_GROUP_RESOURCE_USAGE = 49,
SCH_TABLE_PROPERTIES = 50,
SCH_FILE_CACHE_STATISTICS = 51,
SCH_CATALOG_META_CACHE_STATISTICS = 52;
}
enum THdfsCompression {
NONE = 0,
DEFAULT = 1,
GZIP = 2,
DEFLATE = 3,
BZIP2 = 4,
SNAPPY = 5,
SNAPPY_BLOCKED = 6 // Used by sequence and rc files but not stored in the metadata.
}
enum TIndexType {
BITMAP = 0,
INVERTED = 1,
BLOOMFILTER = 2,
NGRAM_BF = 3
}
// Mapping from names defined by Avro to the enum.
// We permit gzip and bzip2 in addition.
const map<string, THdfsCompression> COMPRESSION_MAP = {
"": THdfsCompression.NONE,
"none": THdfsCompression.NONE,
"deflate": THdfsCompression.DEFAULT,
"gzip": THdfsCompression.GZIP,
"bzip2": THdfsCompression.BZIP2,
"snappy": THdfsCompression.SNAPPY
}
struct TOlapTableIndexTablets {
1: required i64 index_id
2: required list<i64> tablets
}
// its a closed-open range
struct TOlapTablePartition {
1: required i64 id
// deprecated, use 'start_keys' and 'end_keys' instead
2: optional Exprs.TExprNode start_key
3: optional Exprs.TExprNode end_key
// how many tablets in one partition
4: required i32 num_buckets
5: required list<TOlapTableIndexTablets> indexes
6: optional list<Exprs.TExprNode> start_keys
7: optional list<Exprs.TExprNode> end_keys
8: optional list<list<Exprs.TExprNode>> in_keys
9: optional bool is_mutable = true
// only used in List Partition
10: optional bool is_default_partition;
// only used in random distribution scenario to make data distributed even
11: optional i64 load_tablet_idx
}
struct TOlapTablePartitionParam {
1: required i64 db_id
2: required i64 table_id
3: required i64 version
// used to split a logical table to multiple paritions
// deprecated, use 'partition_columns' instead
4: optional string partition_column
// used to split a partition to multiple tablets
5: optional list<string> distributed_columns
// partitions
6: required list<TOlapTablePartition> partitions
7: optional list<string> partition_columns
8: optional list<Exprs.TExpr> partition_function_exprs
9: optional bool enable_automatic_partition
10: optional Partitions.TPartitionType partition_type
// insert overwrite partition(*)
11: optional bool enable_auto_detect_overwrite
12: optional i64 overwrite_group_id
13: optional bool partitions_is_fake = false
}
struct TOlapTableIndex {
1: optional string index_name
2: optional list<string> columns
3: optional TIndexType index_type
4: optional string comment
5: optional i64 index_id
6: optional map<string, string> properties
}
struct TOlapTableIndexSchema {
1: required i64 id
2: required list<string> columns
3: required i32 schema_hash
4: optional list<TColumn> columns_desc
5: optional list<TOlapTableIndex> indexes_desc
6: optional Exprs.TExpr where_clause
}
struct TOlapTableSchemaParam {
1: required i64 db_id
2: required i64 table_id
3: required i64 version
// Logical columns, contain all column that in logical table
4: required list<TSlotDescriptor> slot_descs
5: required TTupleDescriptor tuple_desc
6: required list<TOlapTableIndexSchema> indexes
7: optional bool is_dynamic_schema // deprecated
8: optional bool is_partial_update
9: optional list<string> partial_update_input_columns
10: optional bool is_strict_mode = false
11: optional string auto_increment_column
12: optional i32 auto_increment_column_unique_id = -1
}
struct TTabletLocation {
1: required i64 tablet_id
2: required list<i64> node_ids
}
struct TOlapTableLocationParam {
1: required i64 db_id
2: required i64 table_id
3: required i64 version
4: required list<TTabletLocation> tablets
}
struct TNodeInfo {
1: required i64 id
2: required i64 option
3: required string host
// used to transfer data between nodes
4: required i32 async_internal_port
}
struct TPaloNodesInfo {
1: required i64 version
2: required list<TNodeInfo> nodes
}
struct TOlapTable {
1: required string tableName
}
struct TMySQLTable {
1: required string host
2: required string port
3: required string user
4: required string passwd
5: required string db
6: required string table
7: required string charset
}
struct TOdbcTable {
1: optional string host
2: optional string port
3: optional string user
4: optional string passwd
5: optional string db
6: optional string table
7: optional string driver
8: optional Types.TOdbcTableType type
}
struct TEsTable {
}
struct TSchemaTable {
1: required TSchemaTableType tableType
}
struct TBrokerTable {
}
struct THiveTable {
1: required string db_name
2: required string table_name
3: required map<string, string> properties
}
struct TIcebergTable {
1: required string db_name
2: required string table_name
3: required map<string, string> properties
}
struct THudiTable {
1: optional string dbName
2: optional string tableName
3: optional map<string, string> properties
}
struct TJdbcTable {
1: optional string jdbc_url
2: optional string jdbc_table_name
3: optional string jdbc_user
4: optional string jdbc_password
5: optional string jdbc_driver_url
6: optional string jdbc_resource_name
7: optional string jdbc_driver_class
8: optional string jdbc_driver_checksum
9: optional i32 connection_pool_min_size
10: optional i32 connection_pool_max_size
11: optional i32 connection_pool_max_wait_time
12: optional i32 connection_pool_max_life_time
13: optional bool connection_pool_keep_alive
14: optional i64 catalog_id
}
struct TMCTable {
1: optional string region // deprecated
2: optional string project
3: optional string table
4: optional string access_key
5: optional string secret_key
6: optional string public_access // deprecated
7: optional string odps_url // deprecated
8: optional string tunnel_url // deprecated
9: optional string endpoint
10: optional string quota
}
// "Union" of all table types.
struct TTableDescriptor {
1: required Types.TTableId id
2: required Types.TTableType tableType
3: required i32 numCols
4: required i32 numClusteringCols
// Unqualified name of table
7: required string tableName;
// Name of the database that the table belongs to
8: required string dbName;
10: optional TMySQLTable mysqlTable
11: optional TOlapTable olapTable
12: optional TSchemaTable schemaTable
14: optional TBrokerTable BrokerTable
15: optional TEsTable esTable
16: optional TOdbcTable odbcTable
17: optional THiveTable hiveTable
18: optional TIcebergTable icebergTable
19: optional THudiTable hudiTable
20: optional TJdbcTable jdbcTable
21: optional TMCTable mcTable
}
struct TDescriptorTable {
1: optional list<TSlotDescriptor> slotDescriptors;
2: required list<TTupleDescriptor> tupleDescriptors;
// all table descriptors referenced by tupleDescriptors
3: optional list<TTableDescriptor> tableDescriptors;
}