You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Seonggon Namgung (Jira)" <ji...@apache.org> on 2023/03/14 09:28:00 UTC

[jira] [Created] (HIVE-27138) MapJoinOperator throws NPE when computing OuterJoin with filter expressions on small table

Seonggon Namgung created HIVE-27138:
---------------------------------------

             Summary: MapJoinOperator throws NPE when computing OuterJoin with filter expressions on small table
                 Key: HIVE-27138
                 URL: https://issues.apache.org/jira/browse/HIVE-27138
             Project: Hive
          Issue Type: Bug
            Reporter: Seonggon Namgung
            Assignee: Seonggon Namgung


Hive throws NPE when running mapjoin_filter_on_outerjoin.q using Tez engine. (I used TestMiniLlapCliDriver.)
The NPE is thrown by CommonJoinOperator.getFilterTag(), which just retreives the last object from the given list.
To the best of my knowledge, if Hive selects MapJoin to perform Join operation, filterTag should be computed and appended to a row before the row is passed to MapJoinOperator.
In the case of MapReduce engine, this is done by HashTableSinkOperator.
However, I cannot find any logic pareparing filterTag for small tables when Hive uses Tez engine.

I think there are 2 available options:
1. Don't use MapJoinOperator if a small table has filter expression.
2. Add a new logic that computes and passes filterTag to MapJoinOperator.

I am working on the second option and ready to discuss about it.
It would be grateful if you could give any opinion about this issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)