[CALCITE-5949] RexExecutable should return unchanged original expressions when it fails#3390
[CALCITE-5949] RexExecutable should return unchanged original expressions when it fails#3390arkanovicz wants to merge 2 commits intoapache:mainfrom
Conversation
a9c2c32 to
b2cd019
Compare
|
Patch looks good. |
|
@arkanovicz could you please rebase with latest main and squash commits? |
…ions when it fails
b32a971 to
bd304e7
Compare
@rubenada Done. |
|
|
||
| /** Test case for | ||
| * <a href="https://issues.apache.org/jira/browse/CALCITE-5949">[CALCITE-5949] | ||
| * RexExecutable should properly handle invalid constant expressions in reduction</a>. |
There was a problem hiding this comment.
@arkanovicz could you please align this comment with the latest title / commit message ("RexExecutable should return unchanged original expressions when it fails")?
Then please squash commits into a single one, and I'll proceed with the merge
There was a problem hiding this comment.
@arkanovicz kind reminder about this minor (old) remark regarding the ticket title on this javadoc.
Feel free to squash commits into a single one after you take care of it; and I'll merge the PR afterwards.
There was a problem hiding this comment.
@arkanovicz we are approaching the preparation for the next release, could you please carry out these last details ⬆️ in order to merge this PR? thanks
|
Kudos, SonarCloud Quality Gate passed! |
|
@arkanovicz Are you available to move this forward and get it in 1.36.0? It seems this PR is in a very good shape already. |
|
@libenchao , considering that we are approaching the RC deadline (it would be sad to not include this on it); in case @arkanovicz cannot respond in 24h, I'll create a separate PR (tagging him as co-author) to finalize this fix. |
|
Closing this in favor of #3486 |








While reducing, when encountering an invalid expression in the list of constant expressions, RexExecutor is meant to return all initial expressions unchanged.
It fails to do so, because already handled correct expressions have already been added to the returned list, which can be greater than the input list.
For instance, when given the list
{ LN(2), LN(-2) }, the RexExecutor will output a list of length 3.This PR corrects this problem, and adds a corresponding test case.