Skip to content

Commit 72a86ec

Browse files
committed
some work
Signed-off-by: Adam Gutglick <[email protected]>
1 parent 1b73409 commit 72a86ec

File tree

8 files changed

+290
-725
lines changed

8 files changed

+290
-725
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,3 +334,20 @@ lto = false
334334
[profile.bench_assert]
335335
debug-assertions = true
336336
inherits = "bench"
337+
338+
[patch.crates-io]
339+
datafusion = { version = "51", default-features = false, features = [
340+
"sql",
341+
], git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
342+
datafusion-catalog = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
343+
datafusion-common = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
344+
datafusion-common-runtime = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
345+
datafusion-datasource = { version = "51", default-features = false, git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
346+
datafusion-execution = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
347+
datafusion-expr = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
348+
datafusion-functions = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
349+
datafusion-physical-expr = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
350+
datafusion-physical-expr-adapter = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
351+
datafusion-physical-expr-common = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
352+
datafusion-physical-plan = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }
353+
datafusion-pruning = { version = "51", git = "https://github.com/apache/datafusion", rev = "47df535d2cd5aac5ad5a92bdc837f38e05ea0f0f" }

vortex-datafusion/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use vortex::expr::stats::Precision;
1010

1111
mod convert;
1212
mod persistent;
13-
pub mod vendor;
1413

1514
pub use convert::exprs::ExpressionConvertor;
1615
pub use persistent::*;

vortex-datafusion/src/persistent/format.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,17 @@ use datafusion_common::Result as DFResult;
1717
use datafusion_common::Statistics;
1818
use datafusion_common::config::ConfigField;
1919
use datafusion_common::config_namespace;
20+
use datafusion_common::internal_datafusion_err;
2021
use datafusion_common::not_impl_err;
2122
use datafusion_common::parsers::CompressionTypeVariant;
2223
use datafusion_common::stats::Precision;
2324
use datafusion_common_runtime::SpawnedTask;
25+
use datafusion_datasource::TableSchema;
2426
use datafusion_datasource::file::FileSource;
2527
use datafusion_datasource::file_compression_type::FileCompressionType;
2628
use datafusion_datasource::file_format::FileFormat;
2729
use datafusion_datasource::file_format::FileFormatFactory;
2830
use datafusion_datasource::file_scan_config::FileScanConfig;
29-
use datafusion_datasource::file_scan_config::FileScanConfigBuilder;
3031
use datafusion_datasource::file_sink_config::FileSinkConfig;
3132
use datafusion_datasource::sink::DataSinkExec;
3233
use datafusion_datasource::source::DataSourceExec;
@@ -363,6 +364,7 @@ impl FileFormat for VortexFormat {
363364
is_constant.as_exact().map(|_| Precision::Exact(1))
364365
})
365366
.unwrap_or(Precision::Absent),
367+
byte_size: Precision::Absent,
366368
}
367369
})
368370
.collect::<Vec<_>>();
@@ -386,14 +388,12 @@ impl FileFormat for VortexFormat {
386388
_state: &dyn Session,
387389
file_scan_config: FileScanConfig,
388390
) -> DFResult<Arc<dyn ExecutionPlan>> {
389-
let source = VortexSource::new(self.session.clone(), self.file_cache.clone());
390-
let source = Arc::new(source);
391+
// We make sure the scan's source is the right type, but we don't have anything else to do here.
392+
if !file_scan_config.file_source().as_any().is::<VortexSource>() {
393+
return Err(internal_datafusion_err!("Expected VortexSource"));
394+
}
391395

392-
Ok(DataSourceExec::from_data_source(
393-
FileScanConfigBuilder::from(file_scan_config)
394-
.with_source(source)
395-
.build(),
396-
))
396+
Ok(DataSourceExec::from_data_source(file_scan_config))
397397
}
398398

399399
async fn create_writer_physical_plan(
@@ -413,8 +413,9 @@ impl FileFormat for VortexFormat {
413413
Ok(Arc::new(DataSinkExec::new(input, sink, order_requirements)) as _)
414414
}
415415

416-
fn file_source(&self) -> Arc<dyn FileSource> {
416+
fn file_source(&self, table_schema: TableSchema) -> Arc<dyn FileSource> {
417417
Arc::new(VortexSource::new(
418+
table_schema,
418419
self.session.clone(),
419420
self.file_cache.clone(),
420421
))

0 commit comments

Comments
 (0)