facebookincubator / velox

A C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems.
https://velox-lib.io/
Apache License 2.0
3.28k stars 1.08k forks source link

Support shared subexpression and shared columns across subexpressions in fuzzer #3379

Open kagamiori opened 1 year ago

kagamiori commented 1 year ago

Description

Expression evaluator has special paths for evaluating shared subexpressions, e.g., f(g(h(c0)), h(c0)). There are also special handling of one column being used across multiple subexpressions, e.g., f(g(c0), h(c0)). We'd like to allow expression fuzzer to generate such random expressions to cover these paths.

kagamiori commented 1 year ago

This PR added an initial support for shared input columns and shared subexpressions of depth 1: https://github.com/facebookincubator/velox/pull/3352.