[teiid-commits] teiid SVN: r1843 - in trunk/engine/src/main/java/com/metamatrix/query: optimizer/relational/rules and 3 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu Feb 18 21:29:43 EST 2010


Author: shawkins
Date: 2010-02-18 21:29:42 -0500 (Thu, 18 Feb 2010)
New Revision: 1843

Modified:
   trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java
   trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePushAggregates.java
   trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
   trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java
   trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java
Log:
TEIID-989 adding back the type hint to the clone method... It would probably be better to not even bother using generics here.

Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java	2010-02-18 20:18:35 UTC (rev 1842)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java	2010-02-19 02:29:42 UTC (rev 1843)
@@ -157,7 +157,7 @@
 		connectSubqueryContainers(plan); //TODO: merge with node creation
         
         // Set top column information on top node
-        List<SingleElementSymbol> topCols = Util.deepClone(command.getProjectedSymbols());
+        List<SingleElementSymbol> topCols = Util.deepClone(command.getProjectedSymbols(), SingleElementSymbol.class);
 
         // Build rule set based on hints
         RuleStack rules = RelationalPlanner.buildRules(hints);

Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePushAggregates.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePushAggregates.java	2010-02-18 20:18:35 UTC (rev 1842)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/RulePushAggregates.java	2010-02-19 02:29:42 UTC (rev 1843)
@@ -341,7 +341,7 @@
 			}
         }
 
-        List<SingleElementSymbol> projectedViewSymbols = Util.deepClone(projectedSymbols);
+        List<SingleElementSymbol> projectedViewSymbols = Util.deepClone(projectedSymbols, SingleElementSymbol.class);
 
         SymbolMap viewMapping = SymbolMap.createSymbolMap(NodeEditor.findParent(unionSource, NodeConstants.Types.SOURCE).getGroups().iterator().next(), projectedSymbols, metadata);
         for (AggregateSymbol agg : aggregates) {

Modified: trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java	2010-02-18 20:18:35 UTC (rev 1842)
+++ trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java	2010-02-19 02:29:42 UTC (rev 1843)
@@ -902,7 +902,7 @@
     private Insert rewriteSelectInto(Query query) throws QueryValidatorException {
         Into into = query.getInto();
         try {
-            List<ElementSymbol> allIntoElements = Util.deepClone(ResolverUtil.resolveElementsInGroup(into.getGroup(), metadata));
+            List<ElementSymbol> allIntoElements = Util.deepClone(ResolverUtil.resolveElementsInGroup(into.getGroup(), metadata), ElementSymbol.class);
             Insert insert = new Insert(into.getGroup(), allIntoElements, Collections.emptyList());
             query.setInto(null);
             insert.setQueryExpression(query);

Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java	2010-02-18 20:18:35 UTC (rev 1842)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java	2010-02-19 02:29:42 UTC (rev 1843)
@@ -48,11 +48,10 @@
     
     public static class Util {
 
-		@SuppressWarnings("unchecked")
-		public static <S extends LanguageObject, T extends S> ArrayList<S> deepClone(List<T> collection) {
+		public static <S extends LanguageObject, T extends S> ArrayList<S> deepClone(List<T> collection, Class<S> type) {
 			ArrayList<S> result = new ArrayList<S>(collection.size());
 			for (LanguageObject obj : collection) {
-				result.add((S)obj.clone());
+				result.add(type.cast(obj.clone()));
 			}
 			return result;
 		}

Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java	2010-02-18 20:18:35 UTC (rev 1842)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/lang/OrderBy.java	2010-02-19 02:29:42 UTC (rev 1843)
@@ -144,7 +144,7 @@
      */
     public OrderBy clone() {
     	OrderBy clone = new OrderBy();
-    	clone.orderByItems = LanguageObject.Util.deepClone(this.orderByItems);
+    	clone.orderByItems = LanguageObject.Util.deepClone(this.orderByItems, OrderByItem.class);
         return clone;
 	}
 



More information about the teiid-commits mailing list