[ https://issues.apache.org/jira/browse/HIVE-27507 ]
Zhizhen Hou deleted comment on HIVE-27507:
------------------------------------
was (Author: houzhizhen):
I tried to submit a patch, it was denied. Can anyone help me?
{code:java}
houzhizhen@localhost hive % git push --set-upstream origin fixHasOuterJoin
ERROR: Permission to apache/hive.git denied to houzhizhen.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists. {code}
> ConvertJoinMapJoin#hasOuterJoin produce incorrect result
> --------------------------------------------------------
>
> Key: HIVE-27507
> URL: https://issues.apache.org/jira/browse/HIVE-27507
> Project: Hive
> Issue Type: Bug
> Components: Query Planning
> Reporter: Zhizhen Hou
> Assignee: Zhizhen Hou
> Priority: Major
> Labels: pull-request-available
>
> Now, the hasOuterJoin returns whether the last join condition is outer join.
> If hast join condition is not outer join, it returns false reglardless there
> is outer join.
> {code:java}
> private boolean hasOuterJoin(JoinOperator joinOp) throws SemanticException {
> boolean hasOuter = false;
> for (JoinCondDesc joinCondDesc : joinOp.getConf().getConds()) {
> switch (joinCondDesc.getType()) {
> case JoinDesc.INNER_JOIN:
> case JoinDesc.LEFT_SEMI_JOIN:
> case JoinDesc.UNIQUE_JOIN:
> hasOuter = false;
> break;
> case JoinDesc.FULL_OUTER_JOIN:
> case JoinDesc.LEFT_OUTER_JOIN:
> case JoinDesc.RIGHT_OUTER_JOIN:
> hasOuter = true;
> break;
> default:
> throw new SemanticException("Unknown join type " +
> joinCondDesc.getType());
> }
> }
> return hasOuter;
> } {code}
> There may be two solutions.
> 1. Short circuit if found outer join and return true;
> 2. Delete 'hasOuter = false;' if join type is not outer join and loop through
> all join conditions.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)