/** * Unit test with SELECT clause having one value expression, which is a * simple variable also appearing as the sole value expression in the * GROUP_BY clause. * <pre> * SELECT ?org * GROUP BY ?org * </pre> */ public void test_aggregateExpr_01() { final VarNode org = new VarNode("org"); final ProjectionNode select = new ProjectionNode(); select.addProjectionVar(org); final GroupByNode groupBy = new GroupByNode(); groupBy.addGroupByVar(org); final HavingNode having = null; new VerifyAggregates(select, groupBy, having); }
@Override final public GroupByNode visit(final ASTGroupClause node, Object data) throws VisitorException { final GroupByNode groupBy = new GroupByNode(); final int childCount = node.jjtGetNumChildren(); for (int i = 0; i < childCount; i++) { /* * Delegate to the value expression builder. */ final AssignmentNode expr = (AssignmentNode) node.jjtGetChild(i) .jjtAccept(this, null/* data */); groupBy.addExpr((AssignmentNode) expr); } return groupBy; }
this.groupBy = groupBy == null || groupBy.arity() == 0 ? null : groupBy.getValueExpressions();
query.setProjection(project); final GroupByNode groupBy = new GroupByNode(); groupBy.addExpr(new AssignmentNode(new VarNode("s"), new VarNode("s"))); subquery.setWhereClause(whereClause); final GroupByNode groupBy1 = new GroupByNode(); groupBy1.addGroupByVar(new VarNode("y")); subquery.setGroupBy(groupBy1);
final IValueExpression[] groupByArgs = groupBy.getValueExpressions(); assertNotNull(groupByArgs); assertEquals(2, groupByArgs.length);
public void addGroupByVar(final VarNode var) { addExpr(new AssignmentNode(var, var)); }
: queryBase.getGroupBy().isEmpty() ? null : queryBase .getGroupBy(); : groupBy.getValueExpressions();
query.setProjection(project); final GroupByNode groupBy = new GroupByNode(); groupBy.addExpr(new AssignmentNode(new VarNode("s"), new VarNode("s"))); subquery.setWhereClause(whereClause); final GroupByNode groupBy1 = new GroupByNode(); groupBy1.addGroupByVar(new VarNode("y")); subquery.setGroupBy(groupBy1);
final IValueExpression[] groupByArgs = groupBy.getValueExpressions(); assertNotNull(groupByArgs); assertEquals(2, groupByArgs.length);
public void addGroupByVar(final VarNode var) { addExpr(new AssignmentNode(var, var)); }
: queryBase.getGroupBy().isEmpty() ? null : queryBase .getGroupBy(); : groupBy.getValueExpressions();
/** * Unit test with SELECT clause having one value expression, which is a * simple variable also appearing as the sole value expression in the * GROUP_BY clause. However, in this case we rename the variable when it is * projected out of the SELECT expression. * * <pre> * SELECT ?org as ?newVar * GROUP BY ?org * </pre> */ public void test_aggregateExpr_02() { final VarNode org = new VarNode("org"); final VarNode newVar = new VarNode("newVar"); @SuppressWarnings({ "unchecked", "rawtypes" }) final ProjectionNode select = new ProjectionNode(); select.addProjectionExpression(new AssignmentNode(newVar, org)); final GroupByNode groupBy = new GroupByNode(); groupBy.addGroupByVar(org); final HavingNode having = null; new VerifyAggregates(select, groupBy, having); }
@Override final public GroupByNode visit(final ASTGroupClause node, Object data) throws VisitorException { final GroupByNode groupBy = new GroupByNode(); final int childCount = node.jjtGetNumChildren(); for (int i = 0; i < childCount; i++) { /* * Delegate to the value expression builder. */ final AssignmentNode expr = (AssignmentNode) node.jjtGetChild(i) .jjtAccept(this, null/* data */); groupBy.addExpr((AssignmentNode) expr); } return groupBy; }
query.setProjection(project); final GroupByNode groupBy = new GroupByNode(); groupBy.addExpr(new AssignmentNode(new VarNode("s"), new VarNode("s"))); subquery.setWhereClause(whereClause); final GroupByNode groupBy1 = new GroupByNode(); groupBy1.addGroupByVar(new VarNode("y")); subquery.setGroupBy(groupBy1);
final IValueExpression[] groupByArgs = groupBy.getValueExpressions(); assertNotNull(groupByArgs); assertEquals(1, groupByArgs.length);
this.groupBy = groupBy == null || groupBy.arity() == 0 ? null : groupBy.getValueExpressions();
/** * Unit test with SELECT clause having one value expression, which is a * simple variable also appearing as the sole value expression in the * GROUP_BY clause. * <pre> * SELECT ?org * GROUP BY ?org * </pre> */ public void test_aggregateExpr_01() { final VarNode org = new VarNode("org"); final ProjectionNode select = new ProjectionNode(); select.addProjectionVar(org); final GroupByNode groupBy = new GroupByNode(); groupBy.addGroupByVar(org); final HavingNode having = null; new VerifyAggregates(select, groupBy, having); }
/** * Unit test for references to aggregate declared in GROUP_BY with AS. * <pre> * SELECT ?org2 * GROUP BY UCASE(?org) as ?org2 * </pre> */ @SuppressWarnings({ "rawtypes", "unchecked" }) public void test_aggregateExpr_03() { // Note: UcaseBOp is what we need here. final VarNode org = new VarNode("org"); final VarNode org2 = new VarNode("org2"); final IValueExpressionNode ucaseExpr = new FunctionNode(FunctionRegistry.UCASE, null, org); final ProjectionNode select = new ProjectionNode(); select.addProjectionVar(org2); final GroupByNode groupBy = new GroupByNode(); groupBy.addExpr(new AssignmentNode(org2, ucaseExpr)); final HavingNode having = null; new VerifyAggregates(select, groupBy, having); }