Skip to content
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

fuzzer: Verification state not properly updated for default null cases #12548

Open
peterenescu opened this issue Mar 5, 2025 · 0 comments
Open
Labels
bug Something isn't working fuzzer Issues related the to Velox fuzzer test components.

Comments

@peterenescu
Copy link
Contributor

peterenescu commented Mar 5, 2025

Description

Fuzzer may fail for what appears to be a simple behavioral mismatch, but it's slightly more complicated than that. The difference comes from how Velox and Presto handle nulls. For the former, Velox may not always throw as long as some other column is null. As an example,

presto> presto:di> select SMALLINT '10515' * SMALLINT '12543';
Query 20250305_181421_00003_nqej6 failed: smallint multiplication overflow: 10515 * 12543

This should fail for the reason above; however, the following may not if any column is null:

presto> multiply("c0",floor(divide("c1",plus("c2",abs(negate(divide("c3",plus(multiply(10515,12543),try_cast yow("c4") as SMALLINT))))))))

This may confuse the fuzzer, but we don't want to register this as a difference without first confirming Velox didn't throw not because of default null behavior.

This behavior will have to be updated in the Verifier and already the skeleton is there, but will need some fine-tuning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working fuzzer Issues related the to Velox fuzzer test components.
Projects
None yet
Development

No branches or pull requests

1 participant