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;
}
Show replies by date