Skip to content

Commit 0807031

Browse files
authored
Bump datafusion version (#20164)
1 parent ad3eb7c commit 0807031

File tree

4 files changed

+24
-27
lines changed

4 files changed

+24
-27
lines changed

plugins/engine-datafusion/Cargo.toml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,23 @@ members = [
66

77
[workspace.dependencies]
88
# DataFusion dependencies
9-
datafusion = "50.0.0"
10-
datafusion-expr = "50.0.0"
11-
datafusion-datasource = "50.0.0"
12-
arrow-json = "56.2"
13-
arrow = { version = "56.2", features = ["ffi", "ipc_compression"] }
14-
#arrow = "55.2.0"
15-
arrow-array = "56.2.0"
16-
arrow-schema = "56.2.0"
17-
arrow-buffer = "56.2.0"
9+
datafusion = "51.0.0"
10+
datafusion-expr = "51.0.0"
11+
datafusion-datasource = "51.0.0"
12+
arrow-json = "57.1.0"
13+
arrow = { version = "57.1.0", features = ["ffi", "ipc_compression"] }
14+
arrow-array = "57.1.0"
15+
arrow-schema = "57.1.0"
16+
arrow-buffer = "57.1.0"
1817
downcast-rs = "1.2"
1918

2019

2120
# JNI dependencies
2221
jni = "0.21"
2322

2423
# Substrait support
25-
datafusion-substrait = "50.0.0"
26-
prost = "0.13"
24+
datafusion-substrait = "51.0.0"
25+
prost = "0.14"
2726

2827

2928
# Async runtime
@@ -43,10 +42,10 @@ thiserror = "1.0"
4342
# Logging
4443
log = "0.4"
4544
# Parquet support
46-
parquet = "54.0.0"
45+
parquet = "57.1.0"
4746

4847
# Object store for file access
49-
object_store = "=0.12.3"
48+
object_store = "=0.12.4"
5049
url = "2.0"
5150

5251
# Substrait support

plugins/engine-datafusion/jni/src/listing_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1314,7 +1314,7 @@ impl TableProvider for ListingTable {
13141314
.with_file_groups(partitioned_file_lists)
13151315
.with_constraints(self.constraints.clone())
13161316
.with_statistics(statistics)
1317-
.with_projection(projection.cloned())
1317+
.with_projection_indices(projection.cloned())
13181318
.with_limit(limit)
13191319
.with_output_ordering(output_ordering)
13201320
.with_table_partition_cols(table_partition_cols)

plugins/engine-datafusion/jni/src/query_executor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ pub async fn execute_fetch_phase(
259259
parquet_schema.clone(),
260260
file_source,
261261
)
262-
.with_projection(Option::from(projection_index.clone()))
262+
.with_projection_indices(Some(projection_index.clone()))
263263
.with_file_group(file_group)
264264
.build();
265265

plugins/engine-datafusion/jni/src/row_id_optimizer.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66
* compatible open source license.
77
*/
88

9-
use std::fs;
109
use std::sync::Arc;
1110

12-
use arrow::datatypes::{DataType, Field, Fields, Schema};
11+
use arrow::datatypes::{Field, Fields, Schema};
1312
use arrow_schema::SchemaRef;
14-
use datafusion::physical_plan::projection::new_projections_for_columns;
1513
use datafusion::{
1614
common::tree_node::{Transformed, TreeNode, TreeNodeRecursion},
1715
config::ConfigOptions,
@@ -21,10 +19,11 @@ use datafusion::{
2119
},
2220
error::DataFusionError,
2321
logical_expr::Operator,
24-
physical_expr::{PhysicalExpr, expressions::{BinaryExpr, Column}},
22+
physical_expr::{expressions::{BinaryExpr, Column}, PhysicalExpr},
2523
physical_optimizer::PhysicalOptimizerRule,
26-
physical_plan::{ExecutionPlan, filter::FilterExec, projection::{ProjectionExec, ProjectionExpr}},
24+
physical_plan::{projection::{ProjectionExec, ProjectionExpr}, ExecutionPlan},
2725
};
26+
use datafusion_datasource::TableSchema;
2827

2928
#[derive(Debug)]
3029
pub struct ProjectRowIdOptimizer;
@@ -37,8 +36,7 @@ impl ProjectRowIdOptimizer {
3736
datasource_exec_schema: SchemaRef,
3837
) -> (SchemaRef, Vec<usize>) {
3938
// Clone projection and add new field index
40-
let mut projections = datasource.projection.clone().unwrap_or_default();
41-
let file_source_schema = datasource.file_schema.clone();
39+
let file_source_schema = datasource.file_schema();
4240

4341
let mut new_projections = vec![];
4442

@@ -52,8 +50,8 @@ impl ProjectRowIdOptimizer {
5250
// fields.push(Arc::new(Field::new(field.name(), field.data_type().clone(), field.is_nullable())));
5351
// }
5452
// }
55-
56-
if !projections.contains(&file_source_schema.index_of("___row_id").unwrap()) {
53+
if !new_projections.contains(&file_source_schema.index_of("___row_id").unwrap()) {
54+
// if !projections.contains(&file_source_schema.index_of("___row_id").unwrap()) {
5755
new_projections.push(file_source_schema.index_of("___row_id").unwrap());
5856

5957
// let field = file_source_schema.field_with_name(&*"___row_id").expect("Field ___row_id not found in file_source_schema");
@@ -133,8 +131,8 @@ impl ProjectRowIdOptimizer {
133131
let (new_schema, new_projections) =
134132
self.build_updated_file_source_schema(datasource, data_source_exec_schema.clone());
135133
let file_scan_config = FileScanConfigBuilder::from(datasource.clone())
136-
.with_source(datasource.file_source.with_schema(new_schema.clone()))
137-
.with_projection(Some(new_projections))
134+
.with_source(datasource.file_source.with_schema(TableSchema::from_file_schema(new_schema.clone())))
135+
.with_projection_indices(Some(new_projections))
138136
.build();
139137

140138
let new_datasource = DataSourceExec::from_data_source(file_scan_config);
@@ -161,7 +159,7 @@ impl PhysicalOptimizerRule for ProjectRowIdOptimizer {
161159
.as_any()
162160
.downcast_ref::<FileScanConfig>()
163161
.expect("DataSource not found");
164-
let schema = datasource.file_schema.clone();
162+
let schema = datasource.file_schema();
165163
schema
166164
.field_with_name("___row_id")
167165
.expect("Field ___row_id missing");

0 commit comments

Comments
 (0)