-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
expression vector processing improvements #17561
expression vector processing improvements #17561
Conversation
changes: * introduces FilteredInputBinding which adds better conditional expression processing support using a VectorMatch internally to selectively evaluate input vectors instead of precomputing all inputs, with nvl updated to take advantage of this * refactor some stuff to streamline expression vector processor implementation for simple functions like most math and logical operations with some new factory classes * update vector identifier expression processor to delegate evaluating results directly to the input binding selectors with ExprEvalBindingVector * add maxVectorSize() to ExprVectorProcessor to avoid having to pass max vector size around everywhere
Seems like |
changes: * introduces FilteredInputBinding which adds better conditional expression processing support using a VectorMatch internally to selectively evaluate input vectors instead of precomputing all inputs, with nvl updated to take advantage of this * refactor some stuff to streamline expression vector processor implementation for simple functions like most math and logical operations with some new factory classes * update vector identifier expression processor to delegate evaluating results directly to the input binding selectors with ExprEvalBindingVector * add maxVectorSize() to ExprVectorProcessor to avoid having to pass max vector size around everywhere
Description
changes:
some benchmarks with
nvl
before and after:before:
after:
note that this does seem to be a case where deferred expression processing is worse than normal vector processing, though not sure if/how we should tweak the strategies at the moment.