[ 
https://issues.apache.org/jira/browse/HIVE-560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723843#action_12723843
 ] 

Namit Jain commented on HIVE-560:
---------------------------------

          List<Boolean> removed = conf.getRemovedList().get(alias);
          for (int i = 0; i < sz; i++) {
            for (; pos < removed.size(); pos++) {
              if (pos < structFields.size() && !removed.get(pos)) {
                structFieldObjectInspectors.add(structFields.get(pos)
                    .getFieldObjectInspector());
                pos++;
                break;
              }
            }
          }
        }


Looks like there is some bug in above code in MapJoinOperator - what if nothing 
is removed i.e all columns are selected.
Also, it might be a good idea not to use removedList at runtime, but create the 
correct list from removedList at compile time itself.

> column pruning not working with map joins
> -----------------------------------------
>
>                 Key: HIVE-560
>                 URL: https://issues.apache.org/jira/browse/HIVE-560
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Query Processor
>    Affects Versions: 0.4.0
>            Reporter: Namit Jain
>            Assignee: Yongqiang He
>         Attachments: hive-560-2009-06-19-2.patch, 
> hive-560-2009-06-19-5.patch, 
> hive-560-2009-06-24-mapjoin-before-column-pruning.patch, 
> hive-560-2009-06-24-normal(mapjoin-after-column-pruning).patch
>
>
> drop table tst1;
> drop table tst2;
> create table tst1(a1 string, a2 string, a3 string, a4 string);
> create table tst2(b1 string, b2 string, b3 string, b4 string);
> explain select /*+ MAPJOIN(a) */ a.a1, a.a2 from tst1 a join tst2 b ON 
> a.a2=b.b2;
> the select is after the join - column pruning is not happening

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to