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
We want to push down scalar and aggregate functions that are part of SELECT into vortex.
Example: SELECT strlen(col) doesn't need to decompress the strings.
Push down chains of functions f_1(...(f_n(col)) if leaf child is
BoundColumnRef.
Push down multiple expressions for column if we can push all of them i.e.
allow pushing down (strlen(col), col). This requires a change on projection
ids passed to vortex. In this example we need to pass projection_ids=[0, 0].
PR with upstreaming aggregation pushdown callback duckdb/duckdb#24697 is declined because Duckdb maintainers feel their plan-time pass is sufficient.
This change regressed vortex-compact significantly on the same query. We can't solve this issue now as ZSTD stores lengths with data, so you need to decompress. Implementing a kernel for byte_length which only used decompressed length without constructing a VarBinView didn't yield any performance improvements. We'll accept the regression as there's no way for reader to distinguish vortex vs. vortex-compact
Activity
Pushdown some expressions to Dict layout reader (#8341)
Pushdown some expressions to Dict layout reader (#8341)
myrrc commentedon Jun 18, 2026
This change regressed vortex-compact significantly on the same query. We can't solve this issue now as ZSTD stores lengths with data, so you need to decompress. Implementing a kernel for byte_length which only used decompressed length without constructing a VarBinView didn't yield any performance improvements. We'll accept the regression as there's no way for reader to distinguish vortex vs. vortex-compact
[-]Tracking Issue: Duckdb projection expression pushdown[/-][+]Epic: Duckdb projection expression pushdown[/+]