This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 28e7f60cf7 Generate empty column at placeholder exec (#8553)
28e7f60cf7 is described below
commit 28e7f60cf7d4fb87eeaf4e4c1102eb54bfb67426
Author: Mustafa Akur <[email protected]>
AuthorDate: Fri Dec 15 15:00:10 2023 +0300
Generate empty column at placeholder exec (#8553)
---
datafusion/physical-plan/src/placeholder_row.rs | 7 ++++---
datafusion/sqllogictest/test_files/window.slt | 6 ++++++
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/datafusion/physical-plan/src/placeholder_row.rs
b/datafusion/physical-plan/src/placeholder_row.rs
index 94f3278853..3ab3de62f3 100644
--- a/datafusion/physical-plan/src/placeholder_row.rs
+++ b/datafusion/physical-plan/src/placeholder_row.rs
@@ -27,6 +27,7 @@ use crate::{memory::MemoryStream, DisplayFormatType,
ExecutionPlan, Partitioning
use arrow::array::{ArrayRef, NullArray};
use arrow::datatypes::{DataType, Field, Fields, Schema, SchemaRef};
use arrow::record_batch::RecordBatch;
+use arrow_array::RecordBatchOptions;
use datafusion_common::{internal_err, DataFusionError, Result};
use datafusion_execution::TaskContext;
@@ -59,9 +60,7 @@ impl PlaceholderRowExec {
fn data(&self) -> Result<Vec<RecordBatch>> {
Ok({
let n_field = self.schema.fields.len();
- // hack for https://github.com/apache/arrow-datafusion/pull/3242
- let n_field = if n_field == 0 { 1 } else { n_field };
- vec![RecordBatch::try_new(
+ vec![RecordBatch::try_new_with_options(
Arc::new(Schema::new(
(0..n_field)
.map(|i| {
@@ -75,6 +74,8 @@ impl PlaceholderRowExec {
ret
})
.collect(),
+ // Even if column number is empty we can generate single row.
+ &RecordBatchOptions::new().with_row_count(Some(1)),
)?]
})
}
diff --git a/datafusion/sqllogictest/test_files/window.slt
b/datafusion/sqllogictest/test_files/window.slt
index 7b628f9b6f..6198209aaa 100644
--- a/datafusion/sqllogictest/test_files/window.slt
+++ b/datafusion/sqllogictest/test_files/window.slt
@@ -3793,3 +3793,9 @@ select a,
----
1 1
2 1
+
+query I
+select rank() over (order by 1) rnk from (select 1 a union all select 2 a) x
+----
+1
+1