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
{{ message }}
Repository navigation
SQLite parser dialect returns different rows for bitwise filter than SQLite #26511
With datafusion.sql_parser.dialect=SQLite, DataFusion 55.0.0 returns no rows for a bitwise filter that SQLite 3.50.4 evaluates to one row.
Reproduction
importsqlite3fromdatafusionimportSessionConfig, SessionContextsql="WITH t(id,bits) AS (VALUES (1,1),(2,4)) SELECT id FROM t WHERE bits | 2 & 4 = 0"print(sqlite3.connect(":memory:").execute(sql).fetchall())
config=SessionConfig().set("datafusion.sql_parser.dialect", "SQLite")
batches=SessionContext(config).sql(sql).collect()
print([xforbatchinbatchesforxinbatch.column(0).to_pylist()])
Observed again on 2026-10-19 with datafusion==55.0.0: SQLite returns [(1,)]; DataFusion returns []. For the scalar SELECT 1 | 2 & 4, SQLite returns 0 and DataFusion returns 1.
The upstream parser has PR #2683 open for the SQLite bitwise precedence. This issue records the observed query-result effect in DataFusion's configurable SQLite dialect.
Activity