/** * Converts the SELECT, GROUP BY and HAVING clauses of an aggregate query. * * <p>This method extracts SELECT, GROUP BY and HAVING clauses, and creates * an {@link AggConverter}, then delegates to {@link #createAggImpl}. * Derived class may override this method to change any of those clauses or * specify a different {@link AggConverter}. * * @param bb Scope within which to resolve identifiers * @param select Query * @param orderExprList Additional expressions needed to implement ORDER BY */ protected void convertAgg( Blackboard bb, SqlSelect select, List<SqlNode> orderExprList) { assert bb.root != null : "precondition: child != null"; SqlNodeList groupList = select.getGroup(); SqlNodeList selectList = select.getSelectList(); SqlNode having = select.getHaving(); final AggConverter aggConverter = new AggConverter(bb, select); createAggImpl( bb, aggConverter, selectList, groupList, having, orderExprList); }
/** * Converts the SELECT, GROUP BY and HAVING clauses of an aggregate query. * * <p>This method extracts SELECT, GROUP BY and HAVING clauses, and creates * an {@link AggConverter}, then delegates to {@link #createAggImpl}. * Derived class may override this method to change any of those clauses or * specify a different {@link AggConverter}. * * @param bb Scope within which to resolve identifiers * @param select Query * @param orderExprList Additional expressions needed to implement ORDER BY */ protected void convertAgg( Blackboard bb, SqlSelect select, List<SqlNode> orderExprList) { assert bb.root != null : "precondition: child != null"; SqlNodeList groupList = select.getGroup(); SqlNodeList selectList = select.getSelectList(); SqlNode having = select.getHaving(); final AggConverter aggConverter = new AggConverter(bb, select); createAggImpl( bb, aggConverter, selectList, groupList, having, orderExprList); }
/** * Converts the SELECT, GROUP BY and HAVING clauses of an aggregate query. * * <p>This method extracts SELECT, GROUP BY and HAVING clauses, and creates * an {@link AggConverter}, then delegates to {@link #createAggImpl}. * Derived class may override this method to change any of those clauses or * specify a different {@link AggConverter}. * * @param bb Scope within which to resolve identifiers * @param select Query * @param orderExprList Additional expressions needed to implement ORDER BY */ protected void convertAgg( Blackboard bb, SqlSelect select, List<SqlNode> orderExprList) { assert bb.root != null : "precondition: child != null"; SqlNodeList groupList = select.getGroup(); SqlNodeList selectList = select.getSelectList(); SqlNode having = select.getHaving(); final AggConverter aggConverter = new AggConverter(bb, select); createAggImpl( bb, aggConverter, selectList, groupList, having, orderExprList); }