Skip to content

Commit 716ce8a

Browse files
committed
Fix main
1 parent f291d17 commit 716ce8a

5 files changed

Lines changed: 12 additions & 16 deletions

File tree

src/duckdb_py/arrow/arrow_array_stream.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ py::object PythonTableArrowArrayStreamFactory::ProduceScanner(py::object &arrow_
4343
auto &filter_to_col = parameters.projected_columns.filter_to_col;
4444
py::list projection_list = py::cast(column_list);
4545

46-
bool has_filter = filters && !filters->filters.empty();
46+
bool has_filter = filters && filters->HasFilters();
4747
py::dict kwargs;
4848
if (!column_list.empty()) {
4949
kwargs["columns"] = projection_list;
@@ -74,7 +74,7 @@ unique_ptr<ArrowArrayStreamWrapper> PythonTableArrowArrayStreamFactory::Produce(
7474
bool filters_pushed = false;
7575

7676
// Translate DuckDB filters to Polars expressions and push into the lazy plan
77-
if (filters && !filters->filters.empty()) {
77+
if (filters && filters->HasFilters()) {
7878
try {
7979
auto filter_expr = PolarsFilterPushdown::TransformFilter(
8080
*filters, parameters.projected_columns.projection_map, parameters.projected_columns.filter_to_col,

src/duckdb_py/arrow/polars_filter_pushdown.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
namespace duckdb {
1414

15-
static py::object TransformFilterRecursive(TableFilter &filter, py::object col_expr,
15+
static py::object TransformFilterRecursive(const TableFilter &filter, py::object col_expr,
1616
const ClientProperties &client_properties) {
1717
auto &import_cache = *DuckDBPyConnection::ImportCache();
1818

@@ -137,15 +137,14 @@ py::object PolarsFilterPushdown::TransformFilter(const TableFilterSet &filter_co
137137
const unordered_map<idx_t, idx_t> &filter_to_col,
138138
const ClientProperties &client_properties) {
139139
auto &import_cache = *DuckDBPyConnection::ImportCache();
140-
auto &filters_map = filter_collection.filters;
141140

142141
py::object expression = py::none();
143-
for (auto &it : filters_map) {
144-
auto column_idx = it.first;
142+
for (auto &entry : filter_collection) {
143+
auto column_idx = entry.ColumnIndex();
145144
auto &column_name = columns[column_idx];
146145
auto col_expr = import_cache.polars.col()(column_name);
147146

148-
auto child_expression = TransformFilterRecursive(*it.second, col_expr, client_properties);
147+
auto child_expression = TransformFilterRecursive(entry.Filter(), col_expr, client_properties);
149148
if (child_expression.is(py::none())) {
150149
continue;
151150
}

src/duckdb_py/arrow/pyarrow_filter_pushdown.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,10 @@ py::object PyArrowFilterPushdown::TransformFilter(TableFilterSet &filter_collect
309309
unordered_map<idx_t, string> &columns,
310310
unordered_map<idx_t, idx_t> filter_to_col,
311311
const ClientProperties &config, const ArrowTableSchema &arrow_table) {
312-
auto &filters_map = filter_collection.filters;
313312

314313
py::object expression = py::none();
315-
for (auto &it : filters_map) {
316-
auto column_idx = it.first;
314+
for (auto &entry : filter_collection) {
315+
auto column_idx = entry.ColumnIndex();
317316
auto &column_name = columns[column_idx];
318317

319318
vector<string> column_ref;
@@ -322,7 +321,8 @@ py::object PyArrowFilterPushdown::TransformFilter(TableFilterSet &filter_collect
322321
D_ASSERT(columns.find(column_idx) != columns.end());
323322

324323
auto &arrow_type = arrow_table.GetColumns().at(filter_to_col.at(column_idx));
325-
py::object child_expression = TransformFilterRecursive(*it.second, column_ref, config.time_zone, *arrow_type);
324+
py::object child_expression =
325+
TransformFilterRecursive(entry.Filter(), column_ref, config.time_zone, *arrow_type);
326326
if (child_expression.is(py::none())) {
327327
continue;
328328
} else if (expression.is(py::none())) {

src/duckdb_py/include/duckdb_python/arrow/polars_filter_pushdown.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88

99
#pragma once
1010

11-
#include "duckdb/common/unordered_map.hpp"
12-
#include "duckdb/planner/table_filter.hpp"
11+
#include "duckdb/planner/table_filter_set.hpp"
1312
#include "duckdb/main/client_properties.hpp"
1413
#include "duckdb_python/pybind11/pybind_wrapper.hpp"
1514

src/duckdb_py/include/duckdb_python/arrow/pyarrow_filter_pushdown.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@
88

99
#pragma once
1010

11-
#include "duckdb/common/arrow/arrow_wrapper.hpp"
1211
#include "duckdb/function/table/arrow/arrow_duck_schema.hpp"
13-
#include "duckdb/common/unordered_map.hpp"
14-
#include "duckdb/planner/table_filter.hpp"
12+
#include "duckdb/planner/table_filter_set.hpp"
1513
#include "duckdb/main/client_properties.hpp"
1614
#include "duckdb_python/pybind11/pybind_wrapper.hpp"
1715

0 commit comments

Comments
 (0)