tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java [99:159]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        current = from;
      }
    }

    if (ctx.whereClause() != null) {
      Selection where = new Selection(visitWhereClause(ctx.whereClause()));
      where.setChild(current);
      current = where;
    }

    if (ctx.groupByClause() != null) {
      Aggregation aggregation = visitGroupByClause(ctx.groupByClause());
      aggregation.setChild(current);
      current = aggregation;

      if (ctx.havingClause() != null) {
        Expr havingCondition = visitHavingClause(ctx.havingClause());
        Having having = new Having(havingCondition);
        having.setChild(current);
        current = having;
      }
    }

    if (ctx.orderByClause() != null) {
      Sort sort = visitOrderByClause(ctx.orderByClause());
      sort.setChild(current);
      current = sort;
    }

    if (ctx.clusterByClause() != null) {
      visitClusterByClause(ctx.clusterByClause());
    }

    if (ctx.distributeByClause() != null) {
      visitDistributeByClause(ctx.distributeByClause());
    }

    if (ctx.sortByClause() != null) {
      Sort sort = visitSortByClause(ctx.sortByClause());
      sort.setChild(current);
      current = sort;
    }

    if (ctx.window_clause() != null) {
      Expr window = visitWindow_clause(ctx.window_clause());
    }

    if (ctx.limitClause() != null) {
      Limit limit = visitLimitClause(ctx.limitClause());
      limit.setChild(current);
      current = limit;
    }

    Projection projection = new Projection();
    projection.setNamedExprs(select.getNamedExprs());

    if (current != null)
      projection.setChild(current);

    if (select.isDistinct())
      projection.setDistinct();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java [308:366]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    current = from;

    if (ctx.whereClause() != null) {
      Selection where = new Selection(visitWhereClause(ctx.whereClause()));
      where.setChild(current);
      current = where;
    }

    if (ctx.groupByClause() != null) {
      Aggregation aggregation = visitGroupByClause(ctx.groupByClause());
      aggregation.setChild(current);
      current = aggregation;

      if (ctx.havingClause() != null) {
        Expr havingCondition = visitHavingClause(ctx.havingClause());
        Having having = new Having(havingCondition);
        having.setChild(current);
        current = having;
      }
    }

    if (ctx.orderByClause() != null) {
      Sort sort = visitOrderByClause(ctx.orderByClause());
      sort.setChild(current);
      current = sort;
    }

    if (ctx.clusterByClause() != null) {
      visitClusterByClause(ctx.clusterByClause());
    }

    if (ctx.distributeByClause() != null) {
      visitDistributeByClause(ctx.distributeByClause());
    }

    if (ctx.sortByClause() != null) {
      Sort sort = visitSortByClause(ctx.sortByClause());
      sort.setChild(current);
      current = sort;
    }

    if (ctx.window_clause() != null) {
      Expr window = visitWindow_clause(ctx.window_clause());
    }

    if (ctx.limitClause() != null) {
      Limit limit = visitLimitClause(ctx.limitClause());
      limit.setChild(current);
      current = limit;
    }

    Projection projection = new Projection();
    projection.setNamedExprs(select.getNamedExprs());

    if (current != null)
      projection.setChild(current);

    if (select.isDistinct())
      projection.setDistinct();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



