Search in sources :

Example 1 with ExpressionList

use of com.hortonworks.streamline.streams.layout.component.rule.expression.ExpressionList in project streamline by hortonworks.

the class RuleParser method parseProjection.

private Projection parseProjection(SqlSelect sqlSelect) {
    Projection projection;
    ExpressionGenerator exprGenerator = new ExpressionGenerator(streams, catalogUdfs);
    ExpressionList exprList = (ExpressionList) sqlSelect.getSelectList().accept(exprGenerator);
    if (exprList.getExpressions().size() == 1 && exprList.getExpressions().get(0) == STAR) {
        projection = null;
    } else {
        projection = new Projection(exprList.getExpressions());
    }
    referredUdfs.addAll(exprGenerator.getReferredUdfs());
    LOG.debug("Projection {}", projection);
    return projection;
}
Also used : Projection(com.hortonworks.streamline.streams.layout.component.rule.expression.Projection) ExpressionList(com.hortonworks.streamline.streams.layout.component.rule.expression.ExpressionList) ExpressionGenerator(com.hortonworks.streamline.streams.layout.component.rule.sql.ExpressionGenerator)

Example 2 with ExpressionList

use of com.hortonworks.streamline.streams.layout.component.rule.expression.ExpressionList in project streamline by hortonworks.

the class RuleParser method parseGroupBy.

private GroupBy parseGroupBy(SqlSelect sqlSelect) {
    GroupBy groupBy = null;
    SqlNodeList sqlGroupBy = sqlSelect.getGroup();
    if (sqlGroupBy != null) {
        ExpressionGenerator exprGenerator = new ExpressionGenerator(streams, catalogUdfs);
        ExpressionList exprList = (ExpressionList) sqlGroupBy.accept(exprGenerator);
        groupBy = new GroupBy(exprList.getExpressions());
        referredUdfs.addAll(exprGenerator.getReferredUdfs());
    }
    LOG.debug("GroupBy {}", groupBy);
    return groupBy;
}
Also used : GroupBy(com.hortonworks.streamline.streams.layout.component.rule.expression.GroupBy) SqlNodeList(org.apache.calcite.sql.SqlNodeList) ExpressionList(com.hortonworks.streamline.streams.layout.component.rule.expression.ExpressionList) ExpressionGenerator(com.hortonworks.streamline.streams.layout.component.rule.sql.ExpressionGenerator)

Aggregations

ExpressionList (com.hortonworks.streamline.streams.layout.component.rule.expression.ExpressionList)2 ExpressionGenerator (com.hortonworks.streamline.streams.layout.component.rule.sql.ExpressionGenerator)2 GroupBy (com.hortonworks.streamline.streams.layout.component.rule.expression.GroupBy)1 Projection (com.hortonworks.streamline.streams.layout.component.rule.expression.Projection)1 SqlNodeList (org.apache.calcite.sql.SqlNodeList)1