[
https://issues.apache.org/jira/browse/HIVE-25749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zoltan Haindrich resolved HIVE-25749.
-------------------------------------
Fix Version/s: 4.0.0
Resolution: Fixed
merged into master. Thank you [~asolimando]!
> Check if RelMetadataQuery.collations() returns null to avoid NPE
> ----------------------------------------------------------------
>
> Key: HIVE-25749
> URL: https://issues.apache.org/jira/browse/HIVE-25749
> Project: Hive
> Issue Type: Bug
> Components: CBO, Query Planning
> Affects Versions: 4.0.0
> Reporter: Alessandro Solimando
> Assignee: Alessandro Solimando
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Accoring to "RelMetadataQuery.collations()"
> [javadoc|https://github.com/apache/calcite/blob/calcite-1.25.0/core/src/main/java/org/apache/calcite/rel/metadata/RelMetadataQuery.java#L537],
> the method can return "null" if collactions information are not available.
> Hive invokes the method in two places
> ([RelFieldTrimmer|https://github.com/apache/hive/blob/1046f41ea36ab3c8b036481128ba9b76dda2882a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/RelFieldTrimmer.java#L192]
> and
> [HiveJoin|https://github.com/apache/hive/blob/1046f41ea36ab3c8b036481128ba9b76dda2882a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveJoin.java#L206]),
> but it does not check for "null" return values, which can cause NPE.
> For RelFieldTrimmer, the same bug has been fixed in Calcite (where the code
> has been taken from) here:
> https://github.com/apache/calcite/commit/47871235177a3a0d398b1d890d1d2e947028e052
--
This message was sent by Atlassian Jira
(v8.20.1#820001)