Skip to content

Commit b2497ae

Browse files
Initial integration tests
1 parent 6a03bbc commit b2497ae

31 files changed

Lines changed: 497 additions & 1868 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ package.json
66
.DS_Store
77
.vscode/settings.json
88
.cargo
9+
tpch_sf1.db

Cargo.toml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
resolver = "2"
33

44
members = [
5-
"datafusion-federation"
5+
"datafusion-federation",
6+
"integration-test"
67
]
78

89
[workspace.package]
@@ -21,6 +22,12 @@ datafusion-federation = { path = "./datafusion-federation", version = "0.4.2" }
2122
futures = "0.3.31"
2223
tokio = { version = "1.41", features = ["full"] }
2324

24-
#[patch.crates-io]
25-
#duckdb = { git = "https://github.com/spiceai/duckdb-rs.git", rev = "2e24b958e44ec7419290249e27a15f1a19703fff" }
25+
[patch.crates-io]
26+
duckdb = { git = "https://github.com/spiceai/duckdb-rs.git", rev = "2e24b958e44ec7419290249e27a15f1a19703fff" } # spiceai-1.1.3-backported-arrow-54
2627

28+
datafusion-federation = { path = "./datafusion-federation" }
29+
30+
datafusion = { git = "https://github.com/spiceai/datafusion.git", rev = "987d143985657065c8fc4d3d347a2010fbf36fe4" } # spiceai-46
31+
datafusion-expr = { git = "https://github.com/spiceai/datafusion.git", rev = "987d143985657065c8fc4d3d347a2010fbf36fe4" } # spiceai-46
32+
datafusion-physical-expr = { git = "https://github.com/spiceai/datafusion.git", rev = "987d143985657065c8fc4d3d347a2010fbf36fe4" } # spiceai-46
33+
datafusion-physical-plan = { git = "https://github.com/spiceai/datafusion.git", rev = "987d143985657065c8fc4d3d347a2010fbf36fe4" } # spiceai-46

datafusion-federation/src/analyzer/mod.rs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@ mod scan_result;
33
use crate::FederationProvider;
44
use crate::{FederatedTableProviderAdaptor, FederatedTableSource, FederationProviderRef};
55
use datafusion::logical_expr::{col, expr::InSubquery, LogicalPlanBuilder};
6-
use datafusion::optimizer::decorrelate_predicate_subquery::DecorrelatePredicateSubquery;
7-
use datafusion::optimizer::eliminate_join::EliminateJoin;
86
use datafusion::optimizer::eliminate_nested_union::EliminateNestedUnion;
97
use datafusion::optimizer::push_down_filter::PushDownFilter;
10-
use datafusion::optimizer::replace_distinct_aggregate::ReplaceDistinctWithAggregate;
11-
use datafusion::optimizer::scalar_subquery_to_join::ScalarSubqueryToJoin;
12-
use datafusion::optimizer::simplify_expressions::SimplifyExpressions;
138
use datafusion::optimizer::{Optimizer, OptimizerContext};
149
use datafusion::{
1510
common::tree_node::{Transformed, TreeNode, TreeNodeRecursion},
@@ -24,7 +19,7 @@ use scan_result::ScanResult;
2419
use std::collections::HashMap;
2520
use std::sync::Arc;
2621

27-
use optimize_projections::OptimizeProjections;
22+
pub use optimize_projections::OptimizeProjections;
2823

2924
mod optimize_projections;
3025

@@ -72,11 +67,6 @@ impl Default for FederationAnalyzerRule {
7267
Self {
7368
optimizer: Optimizer::with_rules(vec![
7469
Arc::new(EliminateNestedUnion::new()),
75-
Arc::new(SimplifyExpressions::new()),
76-
Arc::new(ReplaceDistinctWithAggregate::new()),
77-
Arc::new(EliminateJoin::new()),
78-
Arc::new(DecorrelatePredicateSubquery::new()),
79-
Arc::new(ScalarSubqueryToJoin::new()),
8070
Arc::new(PushDownFilter::new()),
8171
Arc::new(OptimizeProjections::new()),
8272
]),

datafusion-federation/src/sql/analyzer/rewrite_table_scan.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,7 @@ mod tests {
840840
),
841841
(
842842
"SELECT foo.df_table.a FROM foo.df_table",
843-
r#"SELECT remote_table.a FROM "default".remote_table"#,
843+
r#"SELECT a FROM "default".remote_table"#,
844844
),
845845
(
846846
"SELECT MIN(a) FROM foo.df_table",

datafusion-federation/src/sql/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ mod tests {
584584
});
585585

586586
let expected = vec![
587-
r#"SELECT "table".a, "table".b, "table".c FROM "default"."table" UNION ALL SELECT "Table".a, "Table".b, "Table".c FROM "default"."Table"(1) AS Table"#,
587+
r#"SELECT a, b, c FROM "default"."table" UNION ALL SELECT a, b, c FROM "default"."Table"(1) AS Table"#,
588588
];
589589

590590
assert_eq!(

integration-test/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ publish = false
1010
[dependencies]
1111
anyhow = "1.0.98"
1212
duckdb = "1.1.3"
13-
datafusion-table-providers = { git = "https://github.com/datafusion-contrib/datafusion-table-providers.git", rev = "dddeb8cf1c0b12968cb599aa22497920b3eadfdc", features = ["duckdb", "duckdb-federation"] } #spiceai
13+
datafusion-table-providers = { git = "https://github.com/datafusion-contrib/datafusion-table-providers.git", rev = "11e6ee6ce966bed75bfdf75204193503f1593cef", features = ["duckdb", "duckdb-federation"] } # phillip/250527-federation-upgrade
1414
datafusion = { workspace = true }
1515
tokio = { version = "1.35", features = ["rt", "rt-multi-thread", "macros"] }
1616
async-trait.workspace = true
1717
tonic = "0.12.2"
1818
futures.workspace = true
1919
insta = { version = "1.42.0", features = ["filters"]}
2020
chrono = "0.4.31"
21-
datafusion-federation.path = "../datafusion-federation"
21+
datafusion-federation.workspace = true

integration-test/snapshots/explain/federation_integration_tests__tpch_tpch_q10_explain.snap

Lines changed: 20 additions & 20 deletions
Large diffs are not rendered by default.

integration-test/snapshots/explain/federation_integration_tests__tpch_tpch_q11_explain.snap

Lines changed: 25 additions & 26 deletions
Large diffs are not rendered by default.

integration-test/snapshots/explain/federation_integration_tests__tpch_tpch_q12_explain.snap

Lines changed: 15 additions & 15 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)