[teiid-commits] teiid SVN: r1655 - in trunk/engine/src: test/java/com/metamatrix/query/processor and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Dec 11 17:59:32 EST 2009


Author: shawkins
Date: 2009-12-11 17:59:31 -0500 (Fri, 11 Dec 2009)
New Revision: 1655

Modified:
   trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java
   trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcedureRelational.java
Log:
TEIID-904 fix for procedure relational failing even though there are no parameters

Modified: trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java	2009-12-11 22:49:47 UTC (rev 1654)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/command/SimpleQueryResolver.java	2009-12-11 22:59:31 UTC (rev 1655)
@@ -378,14 +378,15 @@
 			    
 			    id = metadata.getMetadataStore().getTempGroupID(queryName);
 			    id.setOriginalMetadataID(storedProcedureCommand.getProcedureID());
-			    List accessPatternIds = new LinkedList();
-			    
-			    for (Iterator i = accessPatternElementNames.iterator(); i.hasNext();) {
-			        String name = (String)i.next();
-			        accessPatternIds.add(metadata.getMetadataStore().getTempElementID(name));
+			    if (!accessPatternElementNames.isEmpty()) {
+				    List<TempMetadataID> accessPatternIds = new LinkedList<TempMetadataID>();
+				    
+				    for (String name : accessPatternElementNames) {
+				        accessPatternIds.add(metadata.getMetadataStore().getTempElementID(name));
+				    }
+				    
+				    id.setAccessPatterns(Arrays.asList(new TempMetadataID("procedure access pattern", accessPatternIds))); //$NON-NLS-1$
 			    }
-			    
-			    id.setAccessPatterns(Arrays.asList(new TempMetadataID("procedure access pattern", accessPatternIds))); //$NON-NLS-1$
 			}
 			
 			group.setMetadataID(id);

Modified: trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcedureRelational.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcedureRelational.java	2009-12-11 22:49:47 UTC (rev 1654)
+++ trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcedureRelational.java	2009-12-11 22:59:31 UTC (rev 1655)
@@ -738,4 +738,20 @@
                
     }
     
+    @Test public void testProcRelationalWithNoInputs() {
+    	String sql = "select e1 from pm1.vsp2 order by e1 desc limit 1"; //$NON-NLS-1$
+
+        // Create expected results
+        List[] expected = new List[] {
+        		Arrays.asList("c") //$NON-NLS-1$
+        };        
+        // Construct data manager with data
+        FakeDataManager dataManager = new FakeDataManager();
+        TestProcessor.sampleData1(dataManager);       
+        // Plan query
+        ProcessorPlan plan = TestProcessor.helpGetPlan(sql, FakeMetadataFactory.example1Cached());  
+        // Run query
+        TestProcessor.helpProcess(plan, dataManager, expected);
+    }
+    
 }



More information about the teiid-commits mailing list