This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new d24228a6b9 Minor: Change from `&mut SessionContext` to
`&SessionContext` in substrait (#7965)
d24228a6b9 is described below
commit d24228a6b9552f2dce166836e60c1b928116933f
Author: yi wang <[email protected]>
AuthorDate: Sun Oct 29 19:34:29 2023 +0800
Minor: Change from `&mut SessionContext` to `&SessionContext` in substrait
(#7965)
* Lower &mut SessionContext in substrait
* rm mut ctx in tests
---
datafusion/substrait/src/logical_plan/consumer.rs | 4 +--
datafusion/substrait/src/physical_plan/consumer.rs | 2 +-
.../tests/cases/roundtrip_logical_plan.rs | 30 +++++++++++-----------
.../tests/cases/roundtrip_physical_plan.rs | 4 +--
datafusion/substrait/tests/cases/serialize.rs | 4 +--
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/datafusion/substrait/src/logical_plan/consumer.rs
b/datafusion/substrait/src/logical_plan/consumer.rs
index ae65a2c7d9..a151216524 100644
--- a/datafusion/substrait/src/logical_plan/consumer.rs
+++ b/datafusion/substrait/src/logical_plan/consumer.rs
@@ -177,7 +177,7 @@ fn split_eq_and_noneq_join_predicate_with_nulls_equality(
/// Convert Substrait Plan to DataFusion DataFrame
pub async fn from_substrait_plan(
- ctx: &mut SessionContext,
+ ctx: &SessionContext,
plan: &Plan,
) -> Result<LogicalPlan> {
// Register function extension
@@ -219,7 +219,7 @@ pub async fn from_substrait_plan(
/// Convert Substrait Rel to DataFusion DataFrame
#[async_recursion]
pub async fn from_substrait_rel(
- ctx: &mut SessionContext,
+ ctx: &SessionContext,
rel: &Rel,
extensions: &HashMap<u32, &String>,
) -> Result<LogicalPlan> {
diff --git a/datafusion/substrait/src/physical_plan/consumer.rs
b/datafusion/substrait/src/physical_plan/consumer.rs
index 7788ba0a69..1dab1f9d5e 100644
--- a/datafusion/substrait/src/physical_plan/consumer.rs
+++ b/datafusion/substrait/src/physical_plan/consumer.rs
@@ -38,7 +38,7 @@ use substrait::proto::{
/// Convert Substrait Rel to DataFusion ExecutionPlan
#[async_recursion]
pub async fn from_substrait_rel(
- _ctx: &mut SessionContext,
+ _ctx: &SessionContext,
rel: &Rel,
_extensions: &HashMap<u32, &String>,
) -> Result<Arc<dyn ExecutionPlan>> {
diff --git a/datafusion/substrait/tests/cases/roundtrip_logical_plan.rs
b/datafusion/substrait/tests/cases/roundtrip_logical_plan.rs
index 32416125de..ca2b4d48c4 100644
--- a/datafusion/substrait/tests/cases/roundtrip_logical_plan.rs
+++ b/datafusion/substrait/tests/cases/roundtrip_logical_plan.rs
@@ -606,7 +606,7 @@ async fn new_test_grammar() -> Result<()> {
#[tokio::test]
async fn extension_logical_plan() -> Result<()> {
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let validation_bytes = "MockUserDefinedLogicalPlan".as_bytes().to_vec();
let ext_plan = LogicalPlan::Extension(Extension {
node: Arc::new(MockUserDefinedLogicalPlan {
@@ -617,7 +617,7 @@ async fn extension_logical_plan() -> Result<()> {
});
let proto = to_substrait_plan(&ext_plan, &ctx)?;
- let plan2 = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan2 = from_substrait_plan(&ctx, &proto).await?;
let plan1str = format!("{ext_plan:?}");
let plan2str = format!("{plan2:?}");
@@ -712,11 +712,11 @@ async fn verify_post_join_filter_value(proto: Box<Plan>)
-> Result<()> {
}
async fn assert_expected_plan(sql: &str, expected_plan_str: &str) ->
Result<()> {
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let df = ctx.sql(sql).await?;
let plan = df.into_optimized_plan()?;
let proto = to_substrait_plan(&plan, &ctx)?;
- let plan2 = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan2 = from_substrait_plan(&ctx, &proto).await?;
let plan2 = ctx.state().optimize(&plan2)?;
let plan2str = format!("{plan2:?}");
assert_eq!(expected_plan_str, &plan2str);
@@ -724,11 +724,11 @@ async fn assert_expected_plan(sql: &str,
expected_plan_str: &str) -> Result<()>
}
async fn roundtrip_fill_na(sql: &str) -> Result<()> {
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let df = ctx.sql(sql).await?;
let plan1 = df.into_optimized_plan()?;
let proto = to_substrait_plan(&plan1, &ctx)?;
- let plan2 = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan2 = from_substrait_plan(&ctx, &proto).await?;
let plan2 = ctx.state().optimize(&plan2)?;
// Format plan string and replace all None's with 0
@@ -743,15 +743,15 @@ async fn test_alias(sql_with_alias: &str, sql_no_alias:
&str) -> Result<()> {
// Since we ignore the SubqueryAlias in the producer, the result should be
// the same as producing a Substrait plan from the same query without
aliases
// sql_with_alias -> substrait -> logical plan = sql_no_alias -> substrait
-> logical plan
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let df_a = ctx.sql(sql_with_alias).await?;
let proto_a = to_substrait_plan(&df_a.into_optimized_plan()?, &ctx)?;
- let plan_with_alias = from_substrait_plan(&mut ctx, &proto_a).await?;
+ let plan_with_alias = from_substrait_plan(&ctx, &proto_a).await?;
let df = ctx.sql(sql_no_alias).await?;
let proto = to_substrait_plan(&df.into_optimized_plan()?, &ctx)?;
- let plan = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan = from_substrait_plan(&ctx, &proto).await?;
println!("{plan_with_alias:#?}");
println!("{plan:#?}");
@@ -763,11 +763,11 @@ async fn test_alias(sql_with_alias: &str, sql_no_alias:
&str) -> Result<()> {
}
async fn roundtrip(sql: &str) -> Result<()> {
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let df = ctx.sql(sql).await?;
let plan = df.into_optimized_plan()?;
let proto = to_substrait_plan(&plan, &ctx)?;
- let plan2 = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan2 = from_substrait_plan(&ctx, &proto).await?;
let plan2 = ctx.state().optimize(&plan2)?;
println!("{plan:#?}");
@@ -780,11 +780,11 @@ async fn roundtrip(sql: &str) -> Result<()> {
}
async fn roundtrip_verify_post_join_filter(sql: &str) -> Result<()> {
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let df = ctx.sql(sql).await?;
let plan = df.into_optimized_plan()?;
let proto = to_substrait_plan(&plan, &ctx)?;
- let plan2 = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan2 = from_substrait_plan(&ctx, &proto).await?;
let plan2 = ctx.state().optimize(&plan2)?;
println!("{plan:#?}");
@@ -799,11 +799,11 @@ async fn roundtrip_verify_post_join_filter(sql: &str) ->
Result<()> {
}
async fn roundtrip_all_types(sql: &str) -> Result<()> {
- let mut ctx = create_all_type_context().await?;
+ let ctx = create_all_type_context().await?;
let df = ctx.sql(sql).await?;
let plan = df.into_optimized_plan()?;
let proto = to_substrait_plan(&plan, &ctx)?;
- let plan2 = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan2 = from_substrait_plan(&ctx, &proto).await?;
let plan2 = ctx.state().optimize(&plan2)?;
println!("{plan:#?}");
diff --git a/datafusion/substrait/tests/cases/roundtrip_physical_plan.rs
b/datafusion/substrait/tests/cases/roundtrip_physical_plan.rs
index 3e5e757e4c..b64dd2c138 100644
--- a/datafusion/substrait/tests/cases/roundtrip_physical_plan.rs
+++ b/datafusion/substrait/tests/cases/roundtrip_physical_plan.rs
@@ -62,10 +62,10 @@ async fn parquet_exec() -> Result<()> {
let substrait_rel =
producer::to_substrait_rel(parquet_exec.as_ref(), &mut
extension_info)?;
- let mut ctx = SessionContext::new();
+ let ctx = SessionContext::new();
let parquet_exec_roundtrip =
- consumer::from_substrait_rel(&mut ctx, substrait_rel.as_ref(),
&HashMap::new())
+ consumer::from_substrait_rel(&ctx, substrait_rel.as_ref(),
&HashMap::new())
.await?;
let expected = format!("{}",
displayable(parquet_exec.as_ref()).indent(true));
diff --git a/datafusion/substrait/tests/cases/serialize.rs
b/datafusion/substrait/tests/cases/serialize.rs
index d6dc5d7e58..f6736ca222 100644
--- a/datafusion/substrait/tests/cases/serialize.rs
+++ b/datafusion/substrait/tests/cases/serialize.rs
@@ -30,7 +30,7 @@ mod tests {
#[tokio::test]
async fn serialize_simple_select() -> Result<()> {
- let mut ctx = create_context().await?;
+ let ctx = create_context().await?;
let path = "tests/simple_select.bin";
let sql = "SELECT a, b FROM data";
// Test reference
@@ -42,7 +42,7 @@ mod tests {
// Read substrait plan from file
let proto = serializer::deserialize(path).await?;
// Check plan equality
- let plan = from_substrait_plan(&mut ctx, &proto).await?;
+ let plan = from_substrait_plan(&ctx, &proto).await?;
let plan_str_ref = format!("{plan_ref:?}");
let plan_str = format!("{plan:?}");
assert_eq!(plan_str_ref, plan_str);