Author: shawkins
Date: 2011-10-07 10:49:25 -0400 (Fri, 07 Oct 2011)
New Revision: 3542
Modified:
branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java
Log:
TEIID-1778 fix for returning incorrect results
Modified:
branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java
===================================================================
---
branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java 2011-10-07
12:25:57 UTC (rev 3541)
+++
branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java 2011-10-07
14:49:25 UTC (rev 3542)
@@ -328,6 +328,15 @@
terminateBatches();
return pullBatch();
}
+
+ @Override
+ protected void addBatchRow(List row) {
+ if (this.getOutputElements().isEmpty()) {
+ //a dummy column was added to the query, just remove it now
+ row = Collections.emptyList();
+ }
+ super.addBatchRow(row);
+ }
private void registerNext() throws TeiidComponentException,
TeiidProcessingException {
Modified:
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java
===================================================================
---
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java 2011-10-07
12:25:57 UTC (rev 3541)
+++
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java 2011-10-07
14:49:25 UTC (rev 3542)
@@ -7573,5 +7573,17 @@
Arrays.asList(0, "a")});
}
+ @Test public void testCrossJoinReduction() throws Exception {
+ String sql = "select x.e2 from pm1.g2 y, pm1.g1 x where x.e1 = y.e1 and x.e1
= 'a'"; //$NON-NLS-1$
+
+ HardcodedDataManager dataManager = new HardcodedDataManager();
+ dataManager.addData("SELECT g_0.e2 FROM pm1.g1 AS g_0 WHERE g_0.e1 =
'a'", new List[] {Arrays.asList(3)});
+ dataManager.addData("SELECT 1 FROM pm1.g2 AS g_0 WHERE g_0.e1 =
'a'", new List[] {Arrays.asList(1)});
+ ProcessorPlan plan = helpGetPlan(sql, RealMetadataFactory.example1Cached(),
TestOptimizer.getGenericFinder(false));
+
+ helpProcess(plan, dataManager, new List[] {
+ Arrays.asList(3)});
+ }
+
private static final boolean DEBUG = false;
}
Show replies by date