Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-27138

MapJoinOperator throws NPE when computing OuterJoin with filter expressions on small table

    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              seonggon Seonggon Namgung
              seonggon Seonggon Namgung
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h