[teiid-commits] teiid SVN: r2472 - in trunk/engine/src: test/java/org/teiid/query/processor and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Tue Aug 17 13:52:42 EDT 2010
Author: shawkins
Date: 2010-08-17 13:52:41 -0400 (Tue, 17 Aug 2010)
New Revision: 2472
Modified:
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
trunk/engine/src/test/java/org/teiid/query/processor/TestProcessor.java
Log:
TEIID-1216 fix for nested table correlated references not getting picked up with a nested join
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2010-08-17 17:12:03 UTC (rev 2471)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2010-08-17 17:52:41 UTC (rev 2472)
@@ -706,7 +706,7 @@
private SymbolMap getCorrelatedReferences(PlanNode parent, PlanNode node,
LanguageObject lo) {
PlanNode rootJoin = parent;
- while (rootJoin.getParent() != null && rootJoin.getParent().getType() == NodeConstants.Types.JOIN) {
+ while (rootJoin.getParent() != null && rootJoin.getParent().getType() == NodeConstants.Types.JOIN && !rootJoin.getParent().getGroups().isEmpty()) {
rootJoin = rootJoin.getParent();
}
List<Reference> correlatedReferences = new ArrayList<Reference>();
Modified: trunk/engine/src/test/java/org/teiid/query/processor/TestProcessor.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/TestProcessor.java 2010-08-17 17:12:03 UTC (rev 2471)
+++ trunk/engine/src/test/java/org/teiid/query/processor/TestProcessor.java 2010-08-17 17:52:41 UTC (rev 2472)
@@ -7485,6 +7485,21 @@
helpProcess(plan, dataManager, expected);
}
+ @Test public void testCorrelatedNestedTable5() {
+ String sql = "select y.e1, y.e2, z.e2 from (exec pm1.sq1()) y, table (exec pm1.sq2(y.e1)) x, table (exec pm1.sq2(x.e1)) z where y.e2 = 2"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("b", 2, 2),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
@Test public void testUncorrelatedScalarSubqueryPushdown() throws Exception {
FakeCapabilitiesFinder capFinder = new FakeCapabilitiesFinder();
FakeMetadataFacade metadata = example1();
More information about the teiid-commits
mailing list