You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(http): reject OR across different HTTP filter columns (spiceai#10625)
The HTTP connector's filter pushdown used the same PartitionAccumulator
for both AND and OR operators, so an OR across different virtual filter
columns (request_path, request_query, request_body, request_headers)
was silently rewritten as a cross product (AND), causing the connector
to issue a single combined HTTP request instead of two separate ones.
DataFusion's Inexact pushdown then re-applied the predicate and the
resulting row often passed, masking the bug while the upstream API
received a request the user never wrote.
Reject the cross-column OR case at extract_partitions time with a
clear error pointing the user to IN (...) or separate queries / UNION
ALL. OR within a single column continues to work (it's how DataFusion
sometimes lowers short IN lists).
Fixesspiceai#10623
"OR across different HTTP filter columns ({}) is not supported because the connector would otherwise issue combined HTTP requests instead of separate ones. Use IN (...) to enumerate values on a single column, or run separate queries (e.g. UNION ALL) for alternative requests.",
3. **OR expressions** (single column only): `WHERE request_path = '/api/users' OR request_path = '/api/posts'`. OR across **different** filter columns is not supported — use separate queries (e.g. `UNION ALL`).
0 commit comments