[teiid-commits] teiid SVN: r2268 - in branches/7.0.x/engine/src/main/java/org/teiid/query: validator and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon Jun 21 16:21:09 EDT 2010
Author: shawkins
Date: 2010-06-21 16:21:08 -0400 (Mon, 21 Jun 2010)
New Revision: 2268
Modified:
branches/7.0.x/engine/src/main/java/org/teiid/query/optimizer/relational/rules/CapabilitiesUtil.java
branches/7.0.x/engine/src/main/java/org/teiid/query/validator/AggregateValidationVisitor.java
Log:
TEIID-171 ensuring that xmlagg is not pushed down and correcting the validation.
Modified: branches/7.0.x/engine/src/main/java/org/teiid/query/optimizer/relational/rules/CapabilitiesUtil.java
===================================================================
--- branches/7.0.x/engine/src/main/java/org/teiid/query/optimizer/relational/rules/CapabilitiesUtil.java 2010-06-21 20:02:43 UTC (rev 2267)
+++ branches/7.0.x/engine/src/main/java/org/teiid/query/optimizer/relational/rules/CapabilitiesUtil.java 2010-06-21 20:21:08 UTC (rev 2268)
@@ -171,6 +171,8 @@
if(! caps.supportsCapability(Capability.QUERY_AGGREGATES_MAX)) {
return false;
}
+ } else {
+ return false;
}
// Check DISTINCT if necessary
Modified: branches/7.0.x/engine/src/main/java/org/teiid/query/validator/AggregateValidationVisitor.java
===================================================================
--- branches/7.0.x/engine/src/main/java/org/teiid/query/validator/AggregateValidationVisitor.java 2010-06-21 20:02:43 UTC (rev 2267)
+++ branches/7.0.x/engine/src/main/java/org/teiid/query/validator/AggregateValidationVisitor.java 2010-06-21 20:21:08 UTC (rev 2268)
@@ -75,8 +75,10 @@
String aggregateFunction = obj.getAggregateFunction();
if((aggregateFunction.equals(NonReserved.SUM) || aggregateFunction.equals(NonReserved.AVG)) && obj.getType() == null) {
handleValidationError(QueryPlugin.Util.getString(ErrorMessageKeys.VALIDATOR_0041, new Object[] {aggregateFunction, obj}), obj);
- } else if (aggregateFunction.equals(Reserved.XMLAGG) && obj.getType() != DataTypeManager.DefaultDataClasses.XML) {
- handleValidationError(QueryPlugin.Util.getString("AggregateValidationVisitor.non_xml", new Object[] {aggregateFunction, obj}), obj); //$NON-NLS-1$
+ } else if (obj.getType() != DataTypeManager.DefaultDataClasses.NULL) {
+ if (aggregateFunction.equals(Reserved.XMLAGG) && aggExp.getType() != DataTypeManager.DefaultDataClasses.XML) {
+ handleValidationError(QueryPlugin.Util.getString("AggregateValidationVisitor.non_xml", new Object[] {aggregateFunction, obj}), obj); //$NON-NLS-1$
+ }
}
if((obj.isDistinct() || aggregateFunction.equals(NonReserved.MIN) || aggregateFunction.equals(NonReserved.MAX)) && DataTypeManager.isNonComparable(DataTypeManager.getDataTypeName(aggExp.getType()))) {
handleValidationError(QueryPlugin.Util.getString("AggregateValidationVisitor.non_comparable", new Object[] {aggregateFunction, obj}), obj); //$NON-NLS-1$
More information about the teiid-commits
mailing list