1use const_format::concatcp;
16
17pub const SYSTEM_CATALOG_NAME: &str = "system";
18pub const INFORMATION_SCHEMA_NAME: &str = "information_schema";
19pub const PG_CATALOG_NAME: &str = "pg_catalog";
20pub const SYSTEM_CATALOG_TABLE_NAME: &str = "system_catalog";
21pub const DEFAULT_CATALOG_NAME: &str = env!("DEFAULT_CATALOG_NAME");
22pub const DEFAULT_SCHEMA_NAME: &str = "public";
23pub const DEFAULT_PRIVATE_SCHEMA_NAME: &str = concatcp!(DEFAULT_CATALOG_NAME, "_private");
24
25pub const MIN_USER_FLOW_ID: u32 = 1024;
28pub const MIN_USER_TABLE_ID: u32 = 1024;
31pub const MAX_SYS_TABLE_ID: u32 = MIN_USER_TABLE_ID - 1;
33pub const SYSTEM_CATALOG_TABLE_ID: u32 = 0;
35pub const SCRIPTS_TABLE_ID: u32 = 1;
37pub const NUMBERS_TABLE_ID: u32 = 2;
39
40pub const INFORMATION_SCHEMA_TABLES_TABLE_ID: u32 = 3;
43pub const INFORMATION_SCHEMA_COLUMNS_TABLE_ID: u32 = 4;
45pub const INFORMATION_SCHEMA_ENGINES_TABLE_ID: u32 = 5;
47pub const INFORMATION_SCHEMA_COLUMN_PRIVILEGES_TABLE_ID: u32 = 6;
49pub const INFORMATION_SCHEMA_COLUMN_STATISTICS_TABLE_ID: u32 = 7;
51pub const INFORMATION_SCHEMA_BUILD_INFO_TABLE_ID: u32 = 8;
53pub const INFORMATION_SCHEMA_CHARACTER_SETS_TABLE_ID: u32 = 9;
55pub const INFORMATION_SCHEMA_COLLATIONS_TABLE_ID: u32 = 10;
57pub const INFORMATION_SCHEMA_COLLATION_CHARACTER_SET_APPLICABILITY_TABLE_ID: u32 = 11;
59pub const INFORMATION_SCHEMA_CHECK_CONSTRAINTS_TABLE_ID: u32 = 12;
61pub const INFORMATION_SCHEMA_EVENTS_TABLE_ID: u32 = 13;
63pub const INFORMATION_SCHEMA_FILES_TABLE_ID: u32 = 14;
65pub const INFORMATION_SCHEMA_SCHEMATA_TABLE_ID: u32 = 15;
67pub const INFORMATION_SCHEMA_KEY_COLUMN_USAGE_TABLE_ID: u32 = 16;
69pub const INFORMATION_SCHEMA_OPTIMIZER_TRACE_TABLE_ID: u32 = 17;
71pub const INFORMATION_SCHEMA_PARAMETERS_TABLE_ID: u32 = 18;
73pub const INFORMATION_SCHEMA_PROFILING_TABLE_ID: u32 = 19;
75pub const INFORMATION_SCHEMA_REFERENTIAL_CONSTRAINTS_TABLE_ID: u32 = 20;
77pub const INFORMATION_SCHEMA_ROUTINES_TABLE_ID: u32 = 21;
79pub const INFORMATION_SCHEMA_SCHEMA_PRIVILEGES_TABLE_ID: u32 = 22;
81pub const INFORMATION_SCHEMA_TABLE_PRIVILEGES_TABLE_ID: u32 = 23;
83pub const INFORMATION_SCHEMA_TRIGGERS_TABLE_ID: u32 = 24;
85pub const INFORMATION_SCHEMA_GLOBAL_STATUS_TABLE_ID: u32 = 25;
87pub const INFORMATION_SCHEMA_SESSION_STATUS_TABLE_ID: u32 = 26;
89pub const INFORMATION_SCHEMA_RUNTIME_METRICS_TABLE_ID: u32 = 27;
91pub const INFORMATION_SCHEMA_PARTITIONS_TABLE_ID: u32 = 28;
93pub const INFORMATION_SCHEMA_REGION_PEERS_TABLE_ID: u32 = 29;
95pub const INFORMATION_SCHEMA_TABLE_CONSTRAINTS_TABLE_ID: u32 = 30;
97pub const INFORMATION_SCHEMA_CLUSTER_INFO_TABLE_ID: u32 = 31;
99pub const INFORMATION_SCHEMA_VIEW_TABLE_ID: u32 = 32;
101pub const INFORMATION_SCHEMA_FLOW_TABLE_ID: u32 = 33;
103pub const INFORMATION_SCHEMA_PROCEDURE_INFO_TABLE_ID: u32 = 34;
105pub const INFORMATION_SCHEMA_REGION_STATISTICS_TABLE_ID: u32 = 35;
107pub const INFORMATION_SCHEMA_PROCESS_LIST_TABLE_ID: u32 = 36;
109pub const INFORMATION_SCHEMA_SSTS_MANIFEST_TABLE_ID: u32 = 37;
111pub const INFORMATION_SCHEMA_SSTS_STORAGE_TABLE_ID: u32 = 38;
113pub const INFORMATION_SCHEMA_SSTS_INDEX_META_TABLE_ID: u32 = 39;
115
116pub const PG_CATALOG_TABLE_ID_START: u32 = 256;
120pub const MITO_ENGINE: &str = "mito";
124pub const MITO2_ENGINE: &str = "mito2";
125pub const METRIC_ENGINE: &str = "metric";
126
127pub fn default_engine() -> &'static str {
128    MITO_ENGINE
129}
130
131pub const FILE_ENGINE: &str = "file";
132
133pub const SEMANTIC_TYPE_PRIMARY_KEY: &str = "TAG";
134pub const SEMANTIC_TYPE_FIELD: &str = "FIELD";
135pub const SEMANTIC_TYPE_TIME_INDEX: &str = "TIMESTAMP";
136
137pub fn is_readonly_schema(schema: &str) -> bool {
138    matches!(schema, INFORMATION_SCHEMA_NAME)
139}
140
141pub const TRACE_ID_COLUMN: &str = "trace_id";
143pub const SPAN_ID_COLUMN: &str = "span_id";
144pub const SPAN_NAME_COLUMN: &str = "span_name";
145pub const SERVICE_NAME_COLUMN: &str = "service_name";
146pub const PARENT_SPAN_ID_COLUMN: &str = "parent_span_id";
147pub const TRACE_TABLE_NAME: &str = "opentelemetry_traces";
148pub const TRACE_TABLE_NAME_SESSION_KEY: &str = "trace_table_name";
149pub fn trace_services_table_name(trace_table_name: &str) -> String {
153    format!("{}_services", trace_table_name)
154}
155
156pub fn trace_operations_table_name(trace_table_name: &str) -> String {
158    format!("{}_operations", trace_table_name)
159}
160