We want to push down scalar (and, in the future, aggregate) functions that are part of SELECT into vortex.
Example: SELECT strlen(col) doesn't need to decompress the strings.
Duckdb PR for type pushdown which is the same mechanism: duckdb/duckdb#22788
Vortex draft PR with byte_length pushdown #8303
Issues to solve:
We want to push down scalar (and, in the future, aggregate) functions that are part of SELECT into vortex.
Example: SELECT strlen(col) doesn't need to decompress the strings.
Duckdb PR for type pushdown which is the same mechanism: duckdb/duckdb#22788
Vortex draft PR with byte_length pushdown #8303
Issues to solve:
cast reduce rule for dict evaluated validity(), causing decompression. Solved by adding validity() to byte_length() Constant comparison and byte_length OnPair kernels #8371
This boils down to the task whether we want to push expression or subexpression tree to Dict values cache to avoid the cost of recanonicalization. Push down some expressions to Dict layout reader's cached values #8341