Implement optimized support for filters of the form
column BETWEEN scalar1 AND scalar2
in vectorized mode.
Parking a partially finished patch here for now. Not ready to apply yet.
Here's a second more or less finished patch for [NOT] BETWEEN. Needs some more testing.
This works for integer and float families, timestamp, and string. It uses direct implementations based on new templates. NOT [BETWEEN] is evaluated with a single pass over the input vector.
Added support for [NOT] BETWEEN in vectorized mode. Added unit tests for vector expressions, and translation from a normal expression to a VectorExpression. Did ad hoc end-to-end tests.
Code review link https://reviews.apache.org/r/14920/
Overall: +1 all checks pass
Here are the results of testing the latest attachment:
SUCCESS: +1 4490 tests passed
Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1246/testReport
Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1246/console
This message is automatically generated.
+1 Seems like timestamp type is also supported (by using their long representation), but I don't see any test for it. Can you add tests for timestamps in a follow-up jira.
Committed to trunk. Thanks, Eric!