feat: impl show index and show columns (#3577)

* feat: impl show index and show columns

* fix: show index from database

* fix: canonicalize table name

* refactor: show parsers
This commit is contained in:
dennis zhuang
2024-03-29 18:34:52 +00:00
committed by GitHub
parent 18d676802a
commit 4a5bb698a9
18 changed files with 846 additions and 71 deletions
+4
View File
@@ -239,6 +239,10 @@ impl StatementExecutor {
Ok(Output::new_with_affected_rows(0))
}
Statement::ShowVariables(show_variable) => self.show_variable(show_variable, query_ctx),
Statement::ShowColumns(show_columns) => {
self.show_columns(show_columns, query_ctx).await
}
Statement::ShowIndex(show_index) => self.show_index(show_index, query_ctx).await,
}
}
+23 -1
View File
@@ -21,7 +21,7 @@ use session::context::QueryContextRef;
use snafu::ResultExt;
use sql::ast::Ident;
use sql::statements::create::Partitions;
use sql::statements::show::{ShowDatabases, ShowTables, ShowVariables};
use sql::statements::show::{ShowColumns, ShowDatabases, ShowIndex, ShowTables, ShowVariables};
use table::TableRef;
use crate::error::{self, ExecuteStatementSnafu, Result};
@@ -50,6 +50,28 @@ impl StatementExecutor {
.context(ExecuteStatementSnafu)
}
#[tracing::instrument(skip_all)]
pub(super) async fn show_columns(
&self,
stmt: ShowColumns,
query_ctx: QueryContextRef,
) -> Result<Output> {
query::sql::show_columns(stmt, &self.query_engine, &self.catalog_manager, query_ctx)
.await
.context(ExecuteStatementSnafu)
}
#[tracing::instrument(skip_all)]
pub(super) async fn show_index(
&self,
stmt: ShowIndex,
query_ctx: QueryContextRef,
) -> Result<Output> {
query::sql::show_index(stmt, &self.query_engine, &self.catalog_manager, query_ctx)
.await
.context(ExecuteStatementSnafu)
}
#[tracing::instrument(skip_all)]
pub async fn show_create_table(
&self,