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-463) ProjectionPushDownRule incorrectly rewrite the output schema of StoreTableNode
Date Sun, 29 Dec 2013 06:42:50 GMT
Min Zhou created TAJO-463:
-----------------------------

             Summary: ProjectionPushDownRule incorrectly rewrite the output schema of StoreTableNode
                 Key: TAJO-463
                 URL: https://issues.apache.org/jira/browse/TAJO-463
             Project: Tajo
          Issue Type: Bug
          Components: planner/optimizer
            Reporter: Min Zhou


When I was implementing CTAS on partitioned table,  I ran into a schema problem if my target
column names are different from select clause's output schema.
 
{noformat}
create table tbl (col1 int4, col2 int4, null_col int4) partition by column(key float8)  as
select l_orderkey as col1, l_partkey as col2, l_quantity as key from lineitem
{noformat}

After debugging,  I found ProjectionPushDownRule would replace StoreTableNode's output schema
with its child output schema.

{noformat}
  @Override
  public LogicalNode visitStoreTable(PushDownContext context, LogicalPlan plan, StoreTableNode
node,
                                     Stack<LogicalNode> stack) throws PlanningException
{
    return pushDownCommonPost(context, node, stack);
  }

  private LogicalNode pushDownCommonPost(PushDownContext context, UnaryNode node, Stack<LogicalNode>
stack)
      throws PlanningException {

    stack.push(node);
    LogicalNode child = visitChild(context, context.plan, node.getChild(), stack);
    stack.pop();
    node.setInSchema(child.getOutSchema());
    node.setOutSchema(child.getOutSchema()); // THIS LINE WILL REWRITE  THE SCHEMA!

    if (node instanceof Projectable) {
      pushDownProjectablePost(context, node, isTopmostProjectable(stack));
    }
    return node;
  }

{noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message