Skip to content

Commit 1a7a9a5

Browse files
committed
feat: add select from share db and show tables from share db SQL support
1 parent 87fe5ab commit 1a7a9a5

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/meta/api/src/schema_api_impl.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,13 @@ impl<KV: KVApi> SchemaApi for KV {
882882
let (_, db_id, db_meta_seq, db_meta) =
883883
get_db_or_err(self, &tenant_dbname, "create_table").await?;
884884

885+
// cannot operate on shared database
886+
if let Some(from_share) = db_meta.from_share {
887+
return Err(MetaError::AppError(AppError::ShareHasNoGrantedPrivilege(
888+
ShareHasNoGrantedPrivilege::new(&from_share.tenant, &from_share.share_name),
889+
)));
890+
}
891+
885892
// Get table by tenant,db_id, table_name to assert absence.
886893

887894
let dbid_tbname = DBIdTableName {
@@ -1028,6 +1035,13 @@ impl<KV: KVApi> SchemaApi for KV {
10281035
let (_, db_id, db_meta_seq, db_meta) =
10291036
get_db_or_err(self, &tenant_dbname, "drop_table").await?;
10301037

1038+
// cannot operate on shared database
1039+
if let Some(from_share) = db_meta.from_share {
1040+
return Err(MetaError::AppError(AppError::ShareHasNoGrantedPrivilege(
1041+
ShareHasNoGrantedPrivilege::new(&from_share.tenant, &from_share.share_name),
1042+
)));
1043+
}
1044+
10311045
// Get table by tenant,db_id, table_name to assert presence.
10321046

10331047
let dbid_tbname = DBIdTableName {
@@ -1154,6 +1168,13 @@ impl<KV: KVApi> SchemaApi for KV {
11541168
let (_, db_id, db_meta_seq, db_meta) =
11551169
get_db_or_err(self, &tenant_dbname, "undrop_table").await?;
11561170

1171+
// cannot operate on shared database
1172+
if let Some(from_share) = db_meta.from_share {
1173+
return Err(MetaError::AppError(AppError::ShareHasNoGrantedPrivilege(
1174+
ShareHasNoGrantedPrivilege::new(&from_share.tenant, &from_share.share_name),
1175+
)));
1176+
}
1177+
11571178
// Get table by tenant,db_id, table_name to assert presence.
11581179

11591180
let dbid_tbname = DBIdTableName {
@@ -1308,6 +1329,13 @@ impl<KV: KVApi> SchemaApi for KV {
13081329
let (_, db_id, db_meta_seq, db_meta) =
13091330
get_db_or_err(self, &tenant_dbname, "rename_table").await?;
13101331

1332+
// cannot operate on shared database
1333+
if let Some(from_share) = db_meta.from_share {
1334+
return Err(MetaError::AppError(AppError::ShareHasNoGrantedPrivilege(
1335+
ShareHasNoGrantedPrivilege::new(&from_share.tenant, &from_share.share_name),
1336+
)));
1337+
}
1338+
13111339
// Get table by db_id, table_name to assert presence.
13121340

13131341
let dbid_tbname = DBIdTableName {

0 commit comments

Comments
 (0)