velox
velox copied to clipboard
Add ability to verify expression fuzzer runs on a subset of rows
Summary: Currently, the expression fuzzer has a phase where it re-runs rows that did not throw an error to ensure evaluation is consistent for them. To achieve this, it currently wraps the inputs with a dictionary that only points to the subset of those rows. This results a change in the encoding of inputs which can cause differences in eval paths taken between phases. To address this and ensure the same paths are taken for each evaluation phase, this change introduces the ability for the expression verifier to only verify a subset of the input rows. The aforementioned fuzzer run phase can only specify the non error rows and maintain the original input row.
Follow up: After this change, it would be relevant to also store the input selectivity vector. A subsequent change will be added that would add this ability and make corresponding changes to the ExpressionRunner
Differential Revision: D64366745
This pull request was exported from Phabricator. Differential Revision: D64366745
Deploy Preview for meta-velox canceled.
| Name | Link |
|---|---|
| Latest commit | 50d636fbf1aed9941e4d7ae49f3dbe710ecf3d59 |
| Latest deploy log | https://app.netlify.com/sites/meta-velox/deploys/6721570f18d3220008fd3a8c |
This pull request was exported from Phabricator. Differential Revision: D64366745
This pull request was exported from Phabricator. Differential Revision: D64366745
LGTM. I verified locally that the retry-with-try in expression fuzzer with PrestoQueryRunner works well after this change.
Thank you @kagamiori for verifying using PrestoQueryRunner.
This pull request has been merged in facebookincubator/velox@7c93ebad34764d701b3588442b202aa348917cae.
Conbench analyzed the 1 benchmark run on commit 7c93ebad.
There were no benchmark performance regressions. 🎉
The full Conbench report has more details.