Skip to content

Commit b015bd9

Browse files
authored
feat(query): Independent system/information_schema database in different catalogs (#17863)
1 parent d937fcc commit b015bd9

File tree

35 files changed

+1271
-433
lines changed

35 files changed

+1271
-433
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/query/catalog/src/catalog/interface.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use std::any::Any;
1616
use std::fmt::Debug;
1717
use std::sync::Arc;
18+
use std::unimplemented;
1819

1920
use databend_common_ast::ast::Engine;
2021
use databend_common_exception::ErrorCode;

src/query/management/src/procedure/procedure_mgr.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ impl ProcedureMgr {
103103
Ok(dropped)
104104
}
105105

106-
//#[fastrace::trace]
106+
#[fastrace::trace]
107107
pub async fn get_procedure(
108108
&self,
109109
req: &GetProcedureReq,
@@ -121,6 +121,7 @@ impl ProcedureMgr {
121121
procedure_meta: seq_meta.data,
122122
}))
123123
}
124+
124125
#[fastrace::trace]
125126
pub async fn list_procedures(
126127
&self,

src/query/service/src/catalogs/default/database_catalog.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ impl Debug for DatabaseCatalog {
136136
impl DatabaseCatalog {
137137
#[async_backtrace::framed]
138138
pub async fn try_create_with_config(conf: InnerConfig) -> Result<DatabaseCatalog> {
139-
let immutable_catalog = ImmutableCatalog::try_create_with_config(&conf).await?;
139+
let immutable_catalog = ImmutableCatalog::try_create_with_config(Some(&conf), None)?;
140140
let mutable_catalog = MutableCatalog::try_create_with_config(conf).await?;
141141
let session_catalog = SessionCatalog::create(mutable_catalog, SessionState::default());
142142
let table_function_factory = TableFunctionFactory::create();

src/query/service/src/catalogs/default/immutable_catalog.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,22 @@ impl Debug for ImmutableCatalog {
117117

118118
impl ImmutableCatalog {
119119
#[async_backtrace::framed]
120-
pub async fn try_create_with_config(conf: &InnerConfig) -> Result<Self> {
120+
pub fn try_create_with_config(
121+
conf: Option<&InnerConfig>,
122+
catalog_name: Option<&String>,
123+
) -> Result<Self> {
121124
// The global db meta.
122125
let mut sys_db_meta = InMemoryMetas::create(SYS_DB_ID_BEGIN, SYS_TBL_ID_BEGIN);
123126
sys_db_meta.init_db("system");
124127
sys_db_meta.init_db("information_schema");
125128

126-
let sys_db = SystemDatabase::create(&mut sys_db_meta, conf);
127-
let info_schema_db = InformationSchemaDatabase::create(&mut sys_db_meta);
129+
let catalog_name = if let Some(ctl_name) = catalog_name {
130+
ctl_name
131+
} else {
132+
"default"
133+
};
134+
let sys_db = SystemDatabase::create(&mut sys_db_meta, conf, catalog_name);
135+
let info_schema_db = InformationSchemaDatabase::create(&mut sys_db_meta, catalog_name);
128136

129137
Ok(Self {
130138
info_schema_db: Arc::new(info_schema_db),
@@ -467,8 +475,6 @@ impl Catalog for ImmutableCatalog {
467475
))
468476
}
469477

470-
// Table index
471-
472478
#[async_backtrace::framed]
473479
async fn create_index(&self, _req: CreateIndexReq) -> Result<CreateIndexReply> {
474480
unimplemented!()

0 commit comments

Comments
 (0)