Skip to content

Commit a30cd2f

Browse files
authored
Update DataFusion version (#82)
1 parent 4da5c5d commit a30cd2f

File tree

8 files changed

+166
-91
lines changed

8 files changed

+166
-91
lines changed

Cargo.lock

Lines changed: 129 additions & 63 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7-
datafusion = { version = "48.0.0" }
8-
datafusion-proto = { version = "48.0.0" }
7+
datafusion = { version = "49.0.0" }
8+
datafusion-proto = { version = "49.0.0" }
99
arrow-flight = "55.2.0"
1010
async-trait = "0.1.88"
1111
tokio = { version = "1.46.1", features = ["full"] }

rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[toolchain]
2-
channel = "1.83.0"
2+
channel = "1.85.1"
33
profile = "default"

src/errors/datafusion_error.rs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,13 @@ impl DataFusionErrorProto {
184184
match inner {
185185
DataFusionErrorInnerProto::ArrowError(err) => {
186186
let (err, ctx) = err.to_arrow_error();
187-
DataFusionError::ArrowError(err, ctx)
187+
DataFusionError::ArrowError(Box::new(err), ctx)
188188
}
189189
DataFusionErrorInnerProto::ParquetError(err) => {
190-
DataFusionError::ParquetError(err.to_parquet_error())
190+
DataFusionError::ParquetError(Box::new(err.to_parquet_error()))
191191
}
192192
DataFusionErrorInnerProto::ObjectStoreError(err) => {
193-
DataFusionError::ObjectStore(err.to_object_store_error())
193+
DataFusionError::ObjectStore(Box::new(err.to_object_store_error()))
194194
}
195195
DataFusionErrorInnerProto::IoError(err) => {
196196
let (err, _) = err.to_io_error();
@@ -200,7 +200,7 @@ impl DataFusionErrorProto {
200200
let backtrace = err.backtrace.clone();
201201
let err = err.err.as_ref().map(|err| err.to_parser_error());
202202
let err = err.unwrap_or(ParserError::ParserError("".to_string()));
203-
DataFusionError::SQL(err, backtrace)
203+
DataFusionError::SQL(Box::new(err), backtrace)
204204
}
205205
DataFusionErrorInnerProto::NotImplemented(msg) => {
206206
DataFusionError::NotImplemented(msg.clone())
@@ -212,7 +212,7 @@ impl DataFusionErrorProto {
212212
}
213213
DataFusionErrorInnerProto::Schema(err) => {
214214
let (err, backtrace) = err.to_schema_error();
215-
DataFusionError::SchemaError(err, Box::new(backtrace))
215+
DataFusionError::SchemaError(Box::new(err), Box::new(backtrace))
216216
}
217217
DataFusionErrorInnerProto::Execution(msg) => DataFusionError::Execution(msg.clone()),
218218
// We cannot build JoinErrors ourselves, so instead we map it to internal.
@@ -283,30 +283,32 @@ mod tests {
283283
fn test_datafusion_error_roundtrip() {
284284
let test_cases = vec![
285285
DataFusionError::ArrowError(
286-
ArrowError::ComputeError("compute".to_string()),
286+
Box::new(ArrowError::ComputeError("compute".to_string())),
287287
Some("arrow context".to_string()),
288288
),
289-
DataFusionError::ParquetError(ParquetError::General("parquet error".to_string())),
290-
DataFusionError::ObjectStore(ObjectStoreError::NotFound {
289+
DataFusionError::ParquetError(Box::new(ParquetError::General(
290+
"parquet error".to_string(),
291+
))),
292+
DataFusionError::ObjectStore(Box::new(ObjectStoreError::NotFound {
291293
path: "test/path".to_string(),
292294
source: Box::new(std::io::Error::new(ErrorKind::NotFound, "not found")),
293-
}),
295+
})),
294296
DataFusionError::IoError(IoError::new(
295297
ErrorKind::PermissionDenied,
296298
"permission denied",
297299
)),
298300
DataFusionError::SQL(
299-
ParserError::ParserError("sql parse error".to_string()),
301+
Box::new(ParserError::ParserError("sql parse error".to_string())),
300302
Some("sql backtrace".to_string()),
301303
),
302304
DataFusionError::NotImplemented("not implemented".to_string()),
303305
DataFusionError::Internal("internal error".to_string()),
304306
DataFusionError::Plan("plan error".to_string()),
305307
DataFusionError::Configuration("config error".to_string()),
306308
DataFusionError::SchemaError(
307-
SchemaError::AmbiguousReference {
308-
field: datafusion::common::Column::new_unqualified("test_field"),
309-
},
309+
Box::new(SchemaError::AmbiguousReference {
310+
field: Box::new(datafusion::common::Column::new_unqualified("test_field")),
311+
}),
310312
Box::new(None),
311313
),
312314
DataFusionError::Execution("execution error".to_string()),
@@ -377,7 +379,7 @@ mod tests {
377379
#[test]
378380
fn test_sql_error_with_backtrace() {
379381
let sql_error = DataFusionError::SQL(
380-
ParserError::ParserError("syntax error".to_string()),
382+
Box::new(ParserError::ParserError("syntax error".to_string())),
381383
Some("test backtrace".to_string()),
382384
);
383385

src/errors/schema_error.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,12 @@ impl SchemaErrorProto {
220220

221221
let err = match inner {
222222
SchemaErrorInnerProto::AmbiguousReference(err) => SchemaError::AmbiguousReference {
223-
field: err
224-
.field
225-
.as_ref()
226-
.map(|v| v.to_column())
227-
.unwrap_or(Column::new_unqualified("".to_string())),
223+
field: Box::new(
224+
err.field
225+
.as_ref()
226+
.map(|v| v.to_column())
227+
.unwrap_or(Column::new_unqualified("".to_string())),
228+
),
228229
},
229230
SchemaErrorInnerProto::DuplicateQualifiedField(err) => {
230231
SchemaError::DuplicateQualifiedField {
@@ -266,7 +267,7 @@ mod tests {
266267
fn test_schema_error_roundtrip() {
267268
let test_cases = vec![
268269
SchemaError::AmbiguousReference {
269-
field: Column::new_unqualified("test_field"),
270+
field: Box::new(Column::new_unqualified("test_field")),
270271
},
271272
SchemaError::DuplicateQualifiedField {
272273
qualifier: Box::new(TableReference::bare("table")),

src/physical_optimizer.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ mod tests {
223223
┌───── Stage 3 Task: partitions: 0,unassigned]
224224
│partitions [out:1 <-- in:1 ] ProjectionExec: expr=[count(*)@0 as count(*), RainToday@1 as RainToday]
225225
│partitions [out:1 <-- in:4 ] SortPreservingMergeExec: [count(Int64(1))@2 ASC NULLS LAST]
226-
│partitions [out:4 <-- in:4 ] SortExec: expr=[count(Int64(1))@2 ASC NULLS LAST], preserve_partitioning=[true]
226+
│partitions [out:4 <-- in:4 ] SortExec: expr=[count(*)@0 ASC NULLS LAST], preserve_partitioning=[true]
227227
│partitions [out:4 <-- in:4 ] ProjectionExec: expr=[count(Int64(1))@1 as count(*), RainToday@0 as RainToday, count(Int64(1))@1 as count(Int64(1))]
228228
│partitions [out:4 <-- in:4 ] AggregateExec: mode=FinalPartitioned, gby=[RainToday@0 as RainToday], aggr=[count(Int64(1))]
229229
│partitions [out:4 <-- in:4 ] CoalesceBatchesExec: target_batch_size=8192
@@ -253,7 +253,7 @@ mod tests {
253253
┌───── Stage 3 Task: partitions: 0,unassigned]
254254
│partitions [out:1 <-- in:1 ] ProjectionExec: expr=[count(*)@0 as count(*), RainToday@1 as RainToday]
255255
│partitions [out:1 <-- in:4 ] SortPreservingMergeExec: [count(Int64(1))@2 ASC NULLS LAST]
256-
│partitions [out:4 <-- in:4 ] SortExec: expr=[count(Int64(1))@2 ASC NULLS LAST], preserve_partitioning=[true]
256+
│partitions [out:4 <-- in:4 ] SortExec: expr=[count(*)@0 ASC NULLS LAST], preserve_partitioning=[true]
257257
│partitions [out:4 <-- in:4 ] ProjectionExec: expr=[count(Int64(1))@1 as count(*), RainToday@0 as RainToday, count(Int64(1))@1 as count(Int64(1))]
258258
│partitions [out:4 <-- in:4 ] AggregateExec: mode=FinalPartitioned, gby=[RainToday@0 as RainToday], aggr=[count(Int64(1))]
259259
│partitions [out:4 <-- in:4 ] CoalesceBatchesExec: target_batch_size=8192

src/plan/codec.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ pub struct ArrowFlightReadExecProto {
156156
mod tests {
157157
use super::*;
158158
use datafusion::arrow::datatypes::{DataType, Field};
159+
use datafusion::physical_expr::LexOrdering;
159160
use datafusion::{
160161
execution::registry::MemoryFunctionRegistry,
161162
physical_expr::{expressions::col, expressions::Column, Partitioning, PhysicalSortExpr},
@@ -257,7 +258,10 @@ mod tests {
257258
expr: col("d", &schema)?,
258259
options: Default::default(),
259260
};
260-
let sort = Arc::new(SortExec::new(vec![sort_expr].into(), flight.clone()));
261+
let sort = Arc::new(SortExec::new(
262+
LexOrdering::new(vec![sort_expr]).unwrap(),
263+
flight.clone(),
264+
));
261265

262266
let plan: Arc<dyn ExecutionPlan> = Arc::new(PartitionIsolatorExec::new(sort.clone(), 2));
263267

tests/custom_extension_codec.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ mod tests {
136136
LexOrdering::new(vec![PhysicalSortExpr::new(
137137
col("numbers", &plan.schema())?,
138138
SortOptions::new(true, false),
139-
)]),
139+
)])
140+
.unwrap(),
140141
plan,
141142
));
142143

@@ -155,7 +156,8 @@ mod tests {
155156
LexOrdering::new(vec![PhysicalSortExpr::new(
156157
col("numbers", &plan.schema())?,
157158
SortOptions::new(true, false),
158-
)]),
159+
)])
160+
.unwrap(),
159161
plan,
160162
));
161163
}

0 commit comments

Comments
 (0)