You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/11/16 15:57:07 UTC
svn commit: r1202731 -
/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
Author: andy
Date: Wed Nov 16 14:57:07 2011
New Revision: 1202731
URL: http://svn.apache.org/viewvc?rev=1202731&view=rev
Log:
Allow aggregates in ORDR BY clause
Modified:
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java?rev=1202731&r1=1202730&r2=1202731&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java Wed Nov 16 14:57:07 2011
@@ -27,6 +27,7 @@ import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.query.ARQ ;
import com.hp.hpl.jena.query.Query ;
+import com.hp.hpl.jena.query.SortCondition ;
import com.hp.hpl.jena.sparql.ARQInternalErrorException ;
import com.hp.hpl.jena.sparql.algebra.op.OpAssign ;
import com.hp.hpl.jena.sparql.algebra.op.OpBGP ;
@@ -628,7 +629,19 @@ public class AlgebraGenerator
// ---- ORDER BY
if ( query.getOrderBy() != null )
- op = new OpOrder(op, query.getOrderBy()) ;
+ {
+ List<SortCondition> scList = new ArrayList<SortCondition>() ;
+
+ // Aggregates in ORDER BY
+ for ( SortCondition sc : query.getOrderBy() )
+ {
+ Expr e = sc.getExpression() ;
+ e = ExprLib.replaceAggregateByVariable(e) ;
+ scList.add(new SortCondition(e, sc.getDirection())) ;
+
+ }
+ op = new OpOrder(op, scList) ;
+ }
// ---- PROJECT
// No projection => initial variables are exposed.