use of org.wso2.siddhi.query.api.execution.query.selection.OutputAttribute in project siddhi by wso2.
the class SiddhiQLBaseVisitorImpl method visitQuery_section.
/**
* {@inheritDoc}
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public Selector visitQuery_section(@NotNull SiddhiQLParser.Query_sectionContext ctx) {
// query_section
// :(SELECT ('*'| (output_attribute (',' output_attribute)* ))) group_by? having?
// ;
Selector selector = new Selector();
List<OutputAttribute> attributeList = new ArrayList<OutputAttribute>(ctx.output_attribute().size());
for (SiddhiQLParser.Output_attributeContext output_attributeContext : ctx.output_attribute()) {
attributeList.add((OutputAttribute) visit(output_attributeContext));
}
selector.addSelectionList(attributeList);
if (ctx.group_by() != null) {
selector.addGroupByList((List<Variable>) visit(ctx.group_by()));
}
if (ctx.having() != null) {
selector.having((Expression) visit(ctx.having()));
}
if (ctx.order_by() != null) {
selector.addOrderByList((List<OrderByAttribute>) visit(ctx.order_by()));
}
if (ctx.limit() != null) {
selector.limit((Constant) visit(ctx.limit()));
}
populateQueryContext(selector, ctx);
return selector;
}
use of org.wso2.siddhi.query.api.execution.query.selection.OutputAttribute in project siddhi by wso2.
the class SiddhiQLBaseVisitorImpl method visitGroup_by_query_selection.
@Override
public BasicSelector visitGroup_by_query_selection(@NotNull SiddhiQLParser.Group_by_query_selectionContext ctx) {
BasicSelector selector = new BasicSelector();
List<OutputAttribute> attributeList = new ArrayList<OutputAttribute>(ctx.output_attribute().size());
for (SiddhiQLParser.Output_attributeContext output_attributeContext : ctx.output_attribute()) {
attributeList.add((OutputAttribute) visit(output_attributeContext));
}
selector.addSelectionList(attributeList);
if (ctx.group_by() != null) {
selector.addGroupByList((List<Variable>) visit(ctx.group_by()));
}
populateQueryContext(selector, ctx);
return selector;
}
Aggregations