[Coral-Trino] Migrate UNNEST From RelToTrinoConverter to SqlCallConverter layer #428
+520
−175
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.
What changes are proposed in this pull request, and why are they necessary?
Prior to this PR, transformations related to the
UNNEST()
function were applied inRelToTrinoConverter
for translations from Coral IR -> Trino SQL.In an attempt to standardize Coral intermediate representation and converge
RelToTrinoConverter
withCoralRelToSqlNodeConverter
, the related transformations are extracted out asSqlCallTransformers
over 3 transformations:JoinSqlCallTransformer
,AsOperatorTransformer
andUnnestOperatorTransformer
. Also, the corresponding code fromCoralRelToSqlNodeConverter
is copied over toRelToTrinoConverter
. In a separate PR,RelToTrinoConverter
will be removed.Other changes:
(1) Unused config
SUPPORT_LEGACY_UNNEST_ARRAY_OF_STRUCT
has been deleted and the corresponding unit tests,testLegacyOuterUnnestArrayOfStruct
andtestLegacyUnnestArrayOfStruct
fromHiveToTrinoConverterTest
have been removed.(2) Several unit tests in
TrinoToRelConverterTest
have been marked as unsupported as their SqlNode representations do not align with Coral IR at present.Most of the code changes are part of the previous effort of extracting UNNEST operator in PR #315 .
How was this patch tested?
./gradlew spotlessApply
./gradlew build
modified UTs
i-tested with production views