tajo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Min Zhou (JIRA)" <j...@apache.org>
Subject [jira] [Created] (TAJO-459) Target tuples shouldn't include the partition keys
Date Sat, 28 Dec 2013 20:43:50 GMT
Min Zhou created TAJO-459:

             Summary: Target tuples shouldn't include the partition keys
                 Key: TAJO-459
                 URL: https://issues.apache.org/jira/browse/TAJO-459
             Project: Tajo
          Issue Type: Sub-task
          Components: planner/optimizer
    Affects Versions: 0.8-incubating
            Reporter: Min Zhou

Currently, if you create a column partitioned table 
 create table tbl (col1 int4, col2 int4, null_col int4) partition by column(key float8)
and later insert into it 
insert overwrite into tbl(col1, col2, key) select l_orderkey, l_partkey, l_quantity from lineitem

>From the code of ColumnPartitionedTableStoreExec.java, it seems that we didn't distinguish
between the real result columns (col1 and col2 here)  and the column partition keys.  Just
store the result including the partition keys.  Hive doesn't save them like this way,cuz the
value of partition columns in the same partition are the same. 
  public Tuple next() throws IOException {
    StringBuilder sb = new StringBuilder();
    while((tuple = child.next()) != null) {
      // set subpartition directory name
      sb.delete(0, sb.length());
      if (partitionColumnIndices != null) {
        for(int i = 0; i < partitionColumnIndices.length; i++) {
          Datum datum = tuple.get(partitionColumnIndices[i]);
          if(i > 0)

      // add tuple
      Appender appender = getAppender(sb.toString());
      appender.addTuple(tuple);  // this line add the whole tuple into result record include
the partition keys

This message was sent by Atlassian JIRA

View raw message