[Mulgara-svn] r961 - trunk/src/jar/resolver/java/org/mulgara/resolver
pag at mulgara.org
pag at mulgara.org
Fri May 30 23:50:40 UTC 2008
Author: pag
Date: 2008-05-30 16:50:39 -0700 (Fri, 30 May 2008)
New Revision: 961
Modified:
trunk/src/jar/resolver/java/org/mulgara/resolver/AppendAggregateTuples.java
Log:
now handling fewer variables occuring due to duplicate variables in a constraint
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/AppendAggregateTuples.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/AppendAggregateTuples.java 2008-05-30 23:49:01 UTC (rev 960)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/AppendAggregateTuples.java 2008-05-30 23:50:39 UTC (rev 961)
@@ -135,9 +135,12 @@
// Prep variable list
Variable[] tupleVars = this.tuples.getVariables();
+ // the size of variableList may be larger due to repeated variables,
+ // while the size of the tuples may be larger due to aggregates
+ int uniqueTupleVarLen = Math.min(variableList.size(), tupleVars.length);
Set newVariableList = new LinkedHashSet();
- for (int i = 0; i < tupleVars.length; i++) {
+ for (int i = 0; i < uniqueTupleVarLen; i++) {
assert variableList.contains(tupleVars[i]);
newVariableList.add(tupleVars[i]);
@@ -148,7 +151,7 @@
columnIsAggregate[i] = false;
}
if (logger.isDebugEnabled()) {
- logger.debug("" + hashCode() + " tupleVars.length = " + tupleVars.length);
+ logger.debug("" + hashCode() + " tupleVars.length = " + tupleVars.length + " unique vars = " + uniqueTupleVarLen);
}
// Calculate the rest of the variable list
@@ -157,14 +160,13 @@
for (int i = 0; i < variableList.size(); i++) {
Object element = variableList.get(i);
if (element instanceof Count) {
- columnAggregateIndex[tupleVars.length +
- aggregateIndex] = aggregateIndex;
+ columnAggregateIndex[uniqueTupleVarLen + aggregateIndex] = aggregateIndex;
if (logger.isDebugEnabled()) {
logger.debug("" + hashCode() + " columnAggregateIndex[" +
- tupleVars.length + aggregateIndex + "] = " + aggregateIndex);
+ uniqueTupleVarLen + aggregateIndex + "] = " + aggregateIndex);
}
- newVariableList.add(((Count) element).getVariable());
- columnIsAggregate[tupleVars.length + aggregateIndex] = true;
+ newVariableList.add(((Count)element).getVariable());
+ columnIsAggregate[uniqueTupleVarLen + aggregateIndex] = true;
aggregateIndex++;
Query query = ((Count)element).getQuery();
More information about the Mulgara-svn
mailing list