Skip to content

Commit 6104b6e

Browse files
authored
feat: upgrade to datafusion 51 (#146)
* feat: upgrade to datafusion 51 * refactor: use datafusion reexported arrow
1 parent 6abd1c4 commit 6104b6e

File tree

4 files changed

+14
-16
lines changed

4 files changed

+14
-16
lines changed

Cargo.toml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@ rust-version = "1.73"
3232
all-features = true
3333

3434
[dependencies]
35-
arrow = { version = "56.0", features = ["prettyprint", "chrono-tz"] }
3635
async-trait = { version = "0.1.77" }
3736
bytes = "1.4"
38-
datafusion = "50.0"
39-
datafusion-datasource = "50.0"
37+
datafusion = "51.0"
38+
datafusion-datasource = "51.0"
4039
futures = { version = "0.3", default-features = false, features = ["std"] }
4140
futures-util = { version = "0.3" }
4241
object_store = { version = "0.12" }
43-
orc-rust = { version = "0.6.3", features = ["async"] }
42+
orc-rust = { version = "0.7", features = ["async"] }
4443
tokio = { version = "1.28", features = [
4544
"io-util",
4645
"sync",

src/file_format.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ use std::collections::HashMap;
2020
use std::fmt::Debug;
2121
use std::sync::Arc;
2222

23-
use arrow::datatypes::Schema;
24-
use datafusion::arrow::datatypes::SchemaRef;
23+
use datafusion::arrow::datatypes::{Schema, SchemaRef};
2524
use datafusion::common::Statistics;
2625
use datafusion::datasource::file_format::file_compression_type::FileCompressionType;
2726
use datafusion::datasource::file_format::FileFormat;

src/file_source.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
// under the License.
1717

1818
use crate::physical_exec::OrcOpener;
19-
use arrow::datatypes::SchemaRef;
2019
use datafusion::common::Statistics;
2120
use datafusion::datasource::physical_plan::{FileOpener, FileScanConfig, FileSource};
2221
use datafusion::physical_plan::metrics::ExecutionPlanMetricsSet;
22+
use datafusion_datasource::TableSchema;
2323
use object_store::ObjectStore;
2424
use std::any::Any;
2525
use std::sync::Arc;
@@ -62,7 +62,7 @@ impl FileSource for OrcSource {
6262
})
6363
}
6464

65-
fn with_schema(&self, _schema: SchemaRef) -> Arc<dyn FileSource> {
65+
fn with_schema(&self, _schema: TableSchema) -> Arc<dyn FileSource> {
6666
Arc::new(self.clone())
6767
}
6868

src/physical_exec.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717

1818
use std::sync::Arc;
1919

20-
use arrow::error::ArrowError;
2120
use datafusion::arrow::datatypes::SchemaRef;
22-
use datafusion::datasource::physical_plan::{FileMeta, FileOpenFuture, FileOpener, FileScanConfig};
21+
use datafusion::arrow::error::ArrowError;
22+
use datafusion::datasource::physical_plan::{FileOpenFuture, FileOpener, FileScanConfig};
2323
use datafusion::error::Result;
2424
use datafusion_datasource::PartitionedFile;
2525
use orc_rust::projection::ProjectionMask;
@@ -45,21 +45,21 @@ impl OrcOpener {
4545
) -> Self {
4646
let projection = config
4747
.file_column_projection_indices()
48-
.unwrap_or_else(|| (0..config.file_schema.fields().len()).collect());
48+
.unwrap_or_else(|| (0..config.file_schema().fields().len()).collect());
4949

5050
Self {
5151
projection,
5252
batch_size: config.batch_size.unwrap_or(batch_size),
53-
table_schema: config.file_schema.clone(),
53+
table_schema: config.file_schema().clone(),
5454
object_store,
5555
}
5656
}
5757
}
5858

5959
impl FileOpener for OrcOpener {
60-
fn open(&self, file_meta: FileMeta, _: PartitionedFile) -> Result<FileOpenFuture> {
61-
let reader =
62-
ObjectStoreReader::new(self.object_store.clone(), file_meta.object_meta.clone());
60+
fn open(&self, file: PartitionedFile) -> Result<FileOpenFuture> {
61+
let object_meta = &file.object_meta;
62+
let reader = ObjectStoreReader::new(self.object_store.clone(), object_meta.clone());
6363
let batch_size = self.batch_size;
6464
let projected_schema = SchemaRef::from(self.table_schema.project(&self.projection)?);
6565

@@ -78,7 +78,7 @@ impl FileOpener for OrcOpener {
7878
}
7979
let projection_mask =
8080
ProjectionMask::roots(builder.file_metadata().root_data_type(), projection);
81-
if let Some(range) = file_meta.range.clone() {
81+
if let Some(range) = file.range.clone() {
8282
let range = range.start as usize..range.end as usize;
8383
builder = builder.with_file_byte_range(range);
8484
}

0 commit comments

Comments
 (0)