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 eab813b7eedbd..ca765774d141f 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 7894e97f3796d..29b04d0042547 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 f060704944233..8ad1e086bc29b 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 9fd60cd1f06f3..144062278cc10 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 87ec341f590da..af97a192fa7ce 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 16207c086f7bc..de822ae602210 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 74709848cbb7f..5a92cbfe5fe78 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 0c02de5d049ae..b0b0858a8a3d7 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 { + 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 dcd0910ecb4e9..d372dcf9177e6 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 7df3404d7421b..3234f6533df9c 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 dffaf83c479b1..617cbc196b1ac 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 d9eed669ba98f..ef25af7d920fb 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};