You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/07/16 19:43:27 UTC
(datafusion) branch gh-readonly-queue/main/pr-23295-0840e5c4e94100e118868dfef8f9dbb1bc61bde3 created (now 7aab4e8bd3)
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a change to branch gh-readonly-queue/main/pr-23295-0840e5c4e94100e118868dfef8f9dbb1bc61bde3
in repository https://gitbox.apache.org/repos/asf/datafusion.git
at 7aab4e8bd3 chore: deprecate record_batch macro in favor of upstream one (#23295)
This branch includes the following new commits:
new 7aab4e8bd3 chore: deprecate record_batch macro in favor of upstream one (#23295)
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org
(datafusion) 01/01: chore: deprecate record_batch macro in favor of upstream one (#23295)
Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-23295-0840e5c4e94100e118868dfef8f9dbb1bc61bde3
in repository https://gitbox.apache.org/repos/asf/datafusion.git
commit 7aab4e8bd387ff7ee602bac4789523c784e042b1
Author: Burak Şen <bu...@gmail.com>
AuthorDate: Thu Jul 16 22:43:03 2026 +0300
chore: deprecate record_batch macro in favor of upstream one (#23295)
## Which issue does this PR close?
- Closes #13037.
## Rationale for this change
This was a long standing thing in the backlog. record_batch! was added
in arrow; however, it did not support vectors. Then I've created a PR in
arrow a while ago https://github.com/apache/arrow-rs/pull/9522. Once
that was released this macro can be deprecated
## What changes are included in this PR?
Mark record_batch! macro deprecated and use arrow one in relevant
places.
## Are these changes tested?
Yes
## Are there any user-facing changes?
Users will see a deprecation notice if they are using this macro
---
.../execution_monitoring/memory_pool_execution_plan.rs | 2 +-
.../examples/ffi/ffi_example_table_provider/src/lib.rs | 5 +++--
datafusion/common/src/test_util.rs | 11 ++++++++++-
datafusion/core/tests/macro_hygiene/mod.rs | 4 ++++
datafusion/datasource-parquet/src/opener/mod.rs | 4 ++--
datafusion/datasource/src/projection.rs | 5 +++--
datafusion/ffi/src/record_batch_stream.rs | 2 +-
datafusion/ffi/src/tests/catalog.rs | 2 +-
datafusion/ffi/src/tests/mod.rs | 3 +--
datafusion/ffi/tests/ffi_udaf.rs | 3 +--
datafusion/ffi/tests/ffi_udf.rs | 3 +--
datafusion/physical-expr-adapter/src/schema_rewriter.rs | 5 +++--
12 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/datafusion-examples/examples/execution_monitoring/memory_pool_execution_plan.rs b/datafusion-examples/examples/execution_monitoring/memory_pool_execution_plan.rs
index eab813b7ee..ca765774d1 100644
--- a/datafusion-examples/examples/execution_monitoring/memory_pool_execution_plan.rs
+++ b/datafusion-examples/examples/execution_monitoring/memory_pool_execution_plan.rs
@@ -26,9 +26,9 @@
//! - Handle memory pressure by spilling to disk
//! - Release memory when done
+use arrow::array::record_batch;
use arrow::record_batch::RecordBatch;
use arrow_schema::SchemaRef;
-use datafusion::common::record_batch;
use datafusion::common::{exec_datafusion_err, internal_err};
use datafusion::datasource::{DefaultTableSource, memory::MemTable};
use datafusion::error::Result;
diff --git a/datafusion-examples/examples/ffi/ffi_example_table_provider/src/lib.rs b/datafusion-examples/examples/ffi/ffi_example_table_provider/src/lib.rs
index 7894e97f37..29b04d0042 100644
--- a/datafusion-examples/examples/ffi/ffi_example_table_provider/src/lib.rs
+++ b/datafusion-examples/examples/ffi/ffi_example_table_provider/src/lib.rs
@@ -17,9 +17,10 @@
use std::sync::Arc;
-use arrow::array::RecordBatch;
+use arrow::array::{RecordBatch, record_batch};
+use arrow::datatypes as arrow_schema;
use arrow::datatypes::{DataType, Field, Schema};
-use datafusion::{common::record_batch, datasource::MemTable};
+use datafusion::datasource::MemTable;
use datafusion_ffi::proto::logical_extension_codec::FFI_LogicalExtensionCodec;
use datafusion_ffi::table_provider::FFI_TableProvider;
use ffi_module_interface::TableProviderModule;
diff --git a/datafusion/common/src/test_util.rs b/datafusion/common/src/test_util.rs
index f060704944..8ad1e086bc 100644
--- a/datafusion/common/src/test_util.rs
+++ b/datafusion/common/src/test_util.rs
@@ -364,15 +364,20 @@ macro_rules! create_array {
/// Creates a record batch from literal slice of values, suitable for rapid
/// testing and development.
///
+/// **Deprecated**: prefer the upstream macro from `arrow`,
+/// [`arrow::array::record_batch`], which now supports both the literal slice
+/// form shown below and a variable/expression form.
+///
/// Example:
/// ```
-/// use datafusion_common::record_batch;
+/// use arrow::array::record_batch;
/// let batch = record_batch!(
/// ("a", Int32, vec![1, 2, 3]),
/// ("b", Float64, vec![Some(4.0), None, Some(5.0)]),
/// ("c", Utf8, vec!["alpha", "beta", "gamma"])
/// );
/// ```
+#[deprecated(since = "55.0.0", note = "Use `arrow::array::record_batch` instead")]
#[macro_export]
macro_rules! record_batch {
($(($name: expr, $type: ident, $values: expr)),*) => {
@@ -776,6 +781,10 @@ mod tests {
}
#[test]
+ #[expect(
+ deprecated,
+ reason = "testing the deprecated record_batch! macro itself"
+ )]
fn test_create_record_batch() -> Result<()> {
use arrow::array::Array;
diff --git a/datafusion/core/tests/macro_hygiene/mod.rs b/datafusion/core/tests/macro_hygiene/mod.rs
index 9fd60cd1f0..144062278c 100644
--- a/datafusion/core/tests/macro_hygiene/mod.rs
+++ b/datafusion/core/tests/macro_hygiene/mod.rs
@@ -41,6 +41,10 @@ mod plan_datafusion_err {
}
mod record_batch {
+ #![expect(
+ deprecated,
+ reason = "exercising hygiene of the deprecated `datafusion_common::record_batch!` while it is still exported"
+ )]
// NO other imports!
use datafusion_common::record_batch;
diff --git a/datafusion/datasource-parquet/src/opener/mod.rs b/datafusion/datasource-parquet/src/opener/mod.rs
index 87ec341f59..af97a192fa 100644
--- a/datafusion/datasource-parquet/src/opener/mod.rs
+++ b/datafusion/datasource-parquet/src/opener/mod.rs
@@ -1696,12 +1696,12 @@ mod test {
CachedParquetFileReaderFactory, DefaultParquetFileReaderFactory,
ParquetFileReaderFactory, ParquetRowSelection, RowGroupAccess,
};
- use arrow::array::RecordBatch;
+ use arrow::array::{RecordBatch, record_batch};
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
use bytes::{BufMut, BytesMut};
use datafusion_common::{
ColumnStatistics, ScalarValue, Statistics, assert_contains, internal_err,
- record_batch, stats::Precision,
+ stats::Precision,
};
use datafusion_datasource::morsel::{Morsel, Morselizer};
use datafusion_datasource::{PartitionedFile, TableSchema, TableSchemaBuilder};
diff --git a/datafusion/datasource/src/projection.rs b/datafusion/datasource/src/projection.rs
index 16207c086f..de822ae602 100644
--- a/datafusion/datasource/src/projection.rs
+++ b/datafusion/datasource/src/projection.rs
@@ -294,9 +294,10 @@ impl SplitProjection {
mod test {
use std::sync::Arc;
- use arrow::array::{AsArray, RecordBatch};
+ use arrow::array::{AsArray, RecordBatch, record_batch};
+ use arrow::datatypes as arrow_schema;
use arrow::datatypes::{DataType, Field, SchemaRef};
- use datafusion_common::{DFSchema, ScalarValue, config::ConfigOptions, record_batch};
+ use datafusion_common::{DFSchema, ScalarValue, config::ConfigOptions};
use datafusion_expr::{Expr, ScalarUDF, col, execution_props::ExecutionProps};
use datafusion_functions::core::input_file_name::InputFileNameFunc;
use datafusion_physical_expr::{
diff --git a/datafusion/ffi/src/record_batch_stream.rs b/datafusion/ffi/src/record_batch_stream.rs
index 74709848cb..5a92cbfe5f 100644
--- a/datafusion/ffi/src/record_batch_stream.rs
+++ b/datafusion/ffi/src/record_batch_stream.rs
@@ -218,8 +218,8 @@ impl Drop for FFI_RecordBatchStream {
mod tests {
use std::sync::Arc;
+ use arrow::array::record_batch;
use arrow::datatypes::{DataType, Field, Schema};
- use datafusion::common::record_batch;
use datafusion::error::Result;
use datafusion::execution::SendableRecordBatchStream;
use datafusion::test_util::bounded_stream;
diff --git a/datafusion/ffi/src/tests/catalog.rs b/datafusion/ffi/src/tests/catalog.rs
index 0c02de5d04..b0b0858a8a 100644
--- a/datafusion/ffi/src/tests/catalog.rs
+++ b/datafusion/ffi/src/tests/catalog.rs
@@ -48,8 +48,8 @@ pub struct FixedSchemaProvider {
}
pub fn fruit_table() -> Arc<dyn TableProvider + 'static> {
+ use arrow::array::record_batch;
use arrow::datatypes::{DataType, Field};
- use datafusion_common::record_batch;
let schema = Arc::new(Schema::new(vec![
Field::new("units", DataType::Int32, true),
diff --git a/datafusion/ffi/src/tests/mod.rs b/datafusion/ffi/src/tests/mod.rs
index dcd0910ecb..d372dcf917 100644
--- a/datafusion/ffi/src/tests/mod.rs
+++ b/datafusion/ffi/src/tests/mod.rs
@@ -17,14 +17,13 @@
use std::sync::Arc;
-use arrow::array::RecordBatch;
+use arrow::array::{RecordBatch, record_batch};
use arrow_schema::{DataType, Field, Schema};
use async_provider::create_async_table_provider;
use async_trait::async_trait;
use catalog::create_catalog_provider;
use datafusion_catalog::MemTable;
use datafusion_catalog::{Session, TableProvider};
-use datafusion_common::record_batch;
use datafusion_common::stats::Precision;
use datafusion_common::{ColumnStatistics, Statistics};
use datafusion_common::{Result, ScalarValue};
diff --git a/datafusion/ffi/tests/ffi_udaf.rs b/datafusion/ffi/tests/ffi_udaf.rs
index 7df3404d74..3234f6533d 100644
--- a/datafusion/ffi/tests/ffi_udaf.rs
+++ b/datafusion/ffi/tests/ffi_udaf.rs
@@ -21,8 +21,7 @@
mod tests {
use std::sync::Arc;
- use arrow::array::Float64Array;
- use datafusion::common::record_batch;
+ use arrow::array::{Float64Array, record_batch};
use datafusion::error::Result;
use datafusion::logical_expr::{AggregateUDF, AggregateUDFImpl};
use datafusion::prelude::{SessionContext, col};
diff --git a/datafusion/ffi/tests/ffi_udf.rs b/datafusion/ffi/tests/ffi_udf.rs
index dffaf83c47..617cbc196b 100644
--- a/datafusion/ffi/tests/ffi_udf.rs
+++ b/datafusion/ffi/tests/ffi_udf.rs
@@ -19,9 +19,8 @@
/// when the feature integration-tests is built
#[cfg(feature = "integration-tests")]
mod tests {
- use arrow::array::{Array, AsArray};
+ use arrow::array::{Array, AsArray, record_batch};
use arrow::datatypes::DataType;
- use datafusion::common::record_batch;
use datafusion::error::Result;
use datafusion::logical_expr::{ExpressionPlacement, ScalarUDF, ScalarUDFImpl};
use datafusion::prelude::{SessionContext, col};
diff --git a/datafusion/physical-expr-adapter/src/schema_rewriter.rs b/datafusion/physical-expr-adapter/src/schema_rewriter.rs
index d9eed669ba..ef25af7d92 100644
--- a/datafusion/physical-expr-adapter/src/schema_rewriter.rs
+++ b/datafusion/physical-expr-adapter/src/schema_rewriter.rs
@@ -627,10 +627,11 @@ mod tests {
use super::*;
use arrow::array::{
Array, BooleanArray, GenericListArray, Int32Array, Int64Array, RecordBatch,
- RecordBatchOptions, StringArray, StringViewArray, StructArray,
+ RecordBatchOptions, StringArray, StringViewArray, StructArray, record_batch,
};
+ use arrow::datatypes as arrow_schema;
use arrow::datatypes::{Field, Fields, Schema};
- use datafusion_common::{assert_contains, record_batch};
+ use datafusion_common::assert_contains;
use datafusion_expr::Operator;
use datafusion_physical_expr::expressions::{Column, Literal, col};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org