[CALCITE-5607] Datetime MINUS throws ArrayIndexOutOfBounds error when… #3715
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
… serializing toRex
Uncovered a bug in RelJson#toRex for the TIMESTAMP_DIFF call for Big Query dialect which is translated to Datetime MINUS. MINUS_DATE uses an ARG2_NULLABLE return type inference which requires 3 operands, however there are only 2 operands for BQ. The solution is to add in "type" when serializing to JSON in RelJson.toJson(RexNode node) [like we do for CAST] so that jsonType will be defined in toRex and it doesn't rely on the operands.
Co-authored-by: TJ Banghart tjbanghart@gmail.com