fix: execute sql query in another catalog (#1457)

This commit is contained in:
fys
2023-04-25 10:30:35 +08:00
committed by GitHub
parent 69acf32914
commit 2287db7ff7

View File

@@ -16,14 +16,13 @@ use std::sync::Arc;
use async_trait::async_trait;
use bytes::{Buf, Bytes, BytesMut};
use catalog::datafusion::catalog_adapter::DfCatalogProviderAdapter;
use catalog::CatalogManagerRef;
use common_catalog::consts::DEFAULT_CATALOG_NAME;
use datafusion::prelude::SessionContext;
use datafusion_expr::LogicalPlan;
use datafusion_substrait::logical_plan::consumer::from_substrait_plan;
use datafusion_substrait::logical_plan::producer::to_substrait_plan;
use prost::Message;
use query::datafusion::DfCatalogListAdapter;
use snafu::ResultExt;
use substrait_proto::proto::Plan;
@@ -44,15 +43,8 @@ impl SubstraitPlan for DFLogicalSubstraitConvertor {
catalog_manager: CatalogManagerRef,
) -> Result<Self::Plan, Self::Error> {
let mut context = SessionContext::new();
context.register_catalog(
DEFAULT_CATALOG_NAME,
Arc::new(DfCatalogProviderAdapter::new(
catalog_manager
.catalog(DEFAULT_CATALOG_NAME)
.unwrap()
.unwrap(),
)),
);
let df_catalog_list = Arc::new(DfCatalogListAdapter::new(catalog_manager));
context.register_catalog_list(df_catalog_list);
let plan = Plan::decode(message).context(DecodeRelSnafu)?;
let df_plan = from_substrait_plan(&mut context, &plan)