Closed johnedquinn closed 2 months ago
So, this translates to deferring failure until evaluation.
The specification says most commonly you want to error, but can defer. This is what Yingtao's PR for planner modes handles. I urge that signal mode is the default.
So, this translates to deferring failure until evaluation.
The specification says most commonly you want to error, but can defer. This is what Yingtao's PR for planner modes handles. I urge that signal mode is the default.
The focus of this PR is to bridge the conformance gap (this PR passes an additional 20 tests). The existing conformance tests defer on erroring as does the existing evaluator. To accommodate your suggestion, there are two things I could do:
I still don't quite understand the purpose here other than conformance tests being wrong. I believe Yingtao's planner work and the compiler implementation are correct.
HOWEVER
I think perhaps we should be making changes in the planner not the compiler.
Here are the Options afaik
Relevant Issues
Description
According to the PartiQL Specification:
So, this translates to deferring failure until evaluation. While it is sub-optimal, it complies with the specification. We can always change the testing mechanism in the future.
Beyond that, I found that we had some bugs due to throwing errors when we saw unresolved nodes in the PlanTransform. The root cause is that we were appending unresolved nodes to the "causes" list of Rex.Op.Err. Therefore, with the introduction of Rex.Op.Err, yes -- we would temporarily handle errors, however, when we'd visit those errors, we would prematurely fail compilation.
This PR fixes both of the above situations.
Other Information
License Information
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.