From c8764d9fe680e0955862cb1bbf46f177adc55e3c Mon Sep 17 00:00:00 2001 From: Sun Dapeng Date: Wed, 14 Oct 2026 14:14:36 +0800 Subject: [PATCH] [python] Fix the row filter on PyArrow 6 #10539 made FilterRecordBatchReader._filter_batch_by_row call RecordBatch.select, which PyArrow 6 does not have, so the Python 3.6 job fails test_append_only_reader_with_filter with "'RecordBatch' object has no attribute 'select'". Select the columns on the Table that the next line builds anyway; PyArrow 6 has Table.select. --- .../pypaimon/read/reader/filter_record_batch_reader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paimon-python/pypaimon/read/reader/filter_record_batch_reader.py b/paimon-python/pypaimon/read/reader/filter_record_batch_reader.py index e2630f72f44d..381536e7c0da 100644 --- a/paimon-python/pypaimon/read/reader/filter_record_batch_reader.py +++ b/paimon-python/pypaimon/read/reader/filter_record_batch_reader.py @@ -97,8 +97,8 @@ def _filter_batch_by_row(self, batch: pa.RecordBatch) -> Optional[pa.RecordBatch columns = ([field.name for field in self.schema_fields] if self.schema_fields is not None else [name for name in batch.schema.names if name != "_row_kind"]) - logical_batch = batch.select(columns) - df = polars.from_arrow(pa.Table.from_batches([logical_batch])) + # PyArrow 6 has Table.select but not RecordBatch.select. + df = polars.from_arrow(pa.Table.from_batches([batch]).select(columns)) iterator = InternalRowWrapperIterator( self._iter_df_rows(df), df.width,