[teiid-commits] teiid SVN: r2958 - in trunk/engine/src: main/java/org/teiid/dqp/internal/process/multisource and 10 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Mar 2 15:28:36 EST 2011


Author: shawkins
Date: 2011-03-02 15:28:34 -0500 (Wed, 02 Mar 2011)
New Revision: 2958

Modified:
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java
   trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java
   trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java
   trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java
   trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
   trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
   trunk/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java
   trunk/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java
   trunk/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
   trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
   trunk/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java
   trunk/engine/src/main/resources/org/teiid/query/i18n.properties
   trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
   trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
   trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
   trunk/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java
   trunk/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java
Log:
TEIID-1489 fix for getting the design time metadata for resolving views/procedures

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -196,14 +196,16 @@
             throw new TeiidComponentException(QueryPlugin.Util.getString("DQPCore.Unable_to_load_metadata_for_VDB_name__{0},_version__{1}", this.vdbName, this.vdbVersion)); //$NON-NLS-1$
         }
         
-        this.metadata = new TempMetadataAdapter(metadata, new TempMetadataStore());
-    
         // Check for multi-source models and further wrap the metadata interface
         Set<String> multiSourceModelList = workContext.getVDB().getMultiSourceModelNames();
         if(multiSourceModelList != null && multiSourceModelList.size() > 0) {
         	this.multiSourceModels = multiSourceModelList;
             this.metadata = new MultiSourceMetadataWrapper(this.metadata, this.multiSourceModels);
         }
+        
+        TempMetadataAdapter tma = new TempMetadataAdapter(metadata, new TempMetadataStore());
+        tma.setSession(true);
+        this.metadata = tma;
     }
     
     protected void createCommandContext() throws QueryValidatorException {

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -352,5 +352,10 @@
 		}
 		return false;
 	}
+	
+	@Override
+	public QueryMetadataInterface getDesignTimeMetadata() {
+		return new MultiSourceMetadataWrapper(actualMetadata.getDesignTimeMetadata(), multiSourceModels);
+	}
 
 }

Modified: trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -518,5 +518,15 @@
 	public boolean isMultiSourceElement(Object elementId) {
 		return false;
 	}
+	
+	@Override
+	public QueryMetadataInterface getDesignTimeMetadata() {
+		return this;
+	}
+	
+	@Override
+	public boolean hasProcedure(String name) throws TeiidComponentException {
+		return false;
+	}
     
 }

Modified: trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -383,5 +383,15 @@
 	public boolean isMultiSourceElement(Object elementId) throws QueryMetadataException, TeiidComponentException {
 		return actualMetadata.isMultiSourceElement(elementId);
 	}
+	
+	@Override
+	public QueryMetadataInterface getDesignTimeMetadata() {
+		return actualMetadata.getDesignTimeMetadata();
+	}
+	
+	@Override
+	public boolean hasProcedure(String name) throws TeiidComponentException {
+		return actualMetadata.hasProcedure(name);
+	}
 
 }

Modified: trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -684,4 +684,8 @@
     boolean isMultiSource(Object modelId) throws QueryMetadataException, TeiidComponentException;
     
     boolean isMultiSourceElement(Object elementId) throws QueryMetadataException, TeiidComponentException;
+
+	QueryMetadataInterface getDesignTimeMetadata();
+	
+	boolean hasProcedure(String name) throws TeiidComponentException;
 }

Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -58,6 +58,7 @@
     private TempMetadataStore tempStore;
     private Map materializationTables;
     private Map queryNodes;
+    private boolean session;
 	
 	public TempMetadataAdapter(QueryMetadataInterface metadata, TempMetadataStore tempStore) {
 		super(metadata);
@@ -69,8 +70,23 @@
         this.tempStore = tempStore;
         this.materializationTables = materializationTables;
         this.queryNodes = queryNodes;
-    }    
+    } 
     
+    public boolean isSession() {
+		return session;
+	}
+    
+    public void setSession(boolean session) {
+		this.session = session;
+	}
+    
+    public QueryMetadataInterface getDesignTimeMetadata() {
+    	if (isSession()) {
+    		return this.actualMetadata.getDesignTimeMetadata();
+    	}
+    	return new TempMetadataAdapter(this.actualMetadata.getDesignTimeMetadata(), tempStore, materializationTables, queryNodes);
+    }
+    
     public TempMetadataStore getMetadataStore() {
         return this.tempStore;    
     }
@@ -290,8 +306,11 @@
         throws TeiidComponentException, QueryMetadataException {
         
         // check if any dynamic materialization tables are defined
-        if (this.materializationTables != null && this.materializationTables.containsKey(groupID)) {
-            return this.materializationTables.get(groupID);
+        if (this.materializationTables != null) {
+            Object result = this.materializationTables.get(groupID);
+            if (result != null) {
+            	return result;
+            }
         }
         
         if(groupID instanceof TempMetadataID) {                         

Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -158,6 +158,13 @@
         }
     }
     
+    private TransformationMetadata(final CompositeMetadataStore store, FunctionLibrary functionLibrary) {
+    	ArgCheck.isNotNull(store);
+        this.store = store;
+    	this.vdbEntries = Collections.emptyMap();
+        this.functionLibrary = functionLibrary;
+    }
+    
     //==================================================================================
     //                     I N T E R F A C E   M E T H O D S
     //==================================================================================
@@ -286,11 +293,31 @@
             throw createInvalidRecordTypeException(elementID);
         }
     }
+    
+    public boolean hasProcedure(String name) throws TeiidComponentException {
+    	try {
+    		return getStoredProcedureInfoForProcedure(name) != null;
+    	} catch (QueryMetadataException e) {
+    		return false;
+    	}
+    }
 
-    public StoredProcedureInfo getStoredProcedureInfoForProcedure(final String fullyQualifiedProcedureName)
+    public StoredProcedureInfo getStoredProcedureInfoForProcedure(final String name)
         throws TeiidComponentException, QueryMetadataException {
-        ArgCheck.isNotEmpty(fullyQualifiedProcedureName);
-        String lowerGroupName = fullyQualifiedProcedureName.toLowerCase();
+        StoredProcedureInfo result = getStoredProcInfoDirect(name);
+        
+		if (result == null) {
+			throw new QueryMetadataException(name+NOT_EXISTS_MESSAGE);
+		}
+    	
+        return result;
+    }
+
+	private StoredProcedureInfo getStoredProcInfoDirect(
+			final String name)
+			throws TeiidComponentException, QueryMetadataException {
+		ArgCheck.isNotEmpty(name);
+        String lowerGroupName = name.toLowerCase();
         Collection<StoredProcedureInfo> results = this.procedureCache.get(lowerGroupName);
         
         if (results == null) {
@@ -352,20 +379,15 @@
         
         for (StoredProcedureInfo storedProcedureInfo : results) {
         	Schema schema = (Schema)storedProcedureInfo.getModelID();
-	        if(fullyQualifiedProcedureName.equalsIgnoreCase(storedProcedureInfo.getProcedureCallableName()) || vdbMetaData == null || vdbMetaData.isVisible(schema.getName())){
+	        if(name.equalsIgnoreCase(storedProcedureInfo.getProcedureCallableName()) || vdbMetaData == null || vdbMetaData.isVisible(schema.getName())){
 	        	if (result != null) {
-	    			throw new QueryMetadataException(QueryPlugin.Util.getString("ambiguous_procedure", fullyQualifiedProcedureName)); //$NON-NLS-1$
+	    			throw new QueryMetadataException(QueryPlugin.Util.getString("ambiguous_procedure", name)); //$NON-NLS-1$
 	    		}
 	        	result = storedProcedureInfo;
 	        }
 		}
-        
-		if (result == null) {
-			throw new QueryMetadataException(fullyQualifiedProcedureName+NOT_EXISTS_MESSAGE);
-		}
-    	
-        return result;
-    }
+		return result;
+	}
     
     /**
      * Method to convert the parameter type returned from a ProcedureParameterRecord
@@ -1085,4 +1107,9 @@
 		Table table = (Table)metadataID;
 		return table.getPrimaryKey();
 	}
+	
+	@Override
+	public QueryMetadataInterface getDesignTimeMetadata() {
+		return new TransformationMetadata(store, functionLibrary);
+	}
 }
\ No newline at end of file

Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -83,7 +83,7 @@
         if (query == null) {
             try {
                 query = QueryParser.getQueryParser().parseCommand(queryNode.getQuery());
-                QueryResolver.resolveWithBindingMetadata(query, env.getGlobalMetadata(), queryNode, true);
+                QueryResolver.resolveWithBindingMetadata(query, env.getGlobalMetadata().getDesignTimeMetadata(), queryNode, true);
             } catch (TeiidException e) {
                 throw new QueryPlannerException(e, QueryPlugin.Util.getString("ERR.015.004.0054", new Object[]{queryNode.getGroupName(), queryNode.getQuery()})); //$NON-NLS-1$
 			}

Modified: trunk/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -22,7 +22,7 @@
 
 package org.teiid.query.processor.proc;
 
-import static org.teiid.query.analysis.AnalysisRecord.PROP_SQL;
+import static org.teiid.query.analysis.AnalysisRecord.*;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -162,7 +162,7 @@
 						parentProcCommand.getVirtualGroup(), metadata);
 			}
 
-			QueryResolver.resolveCommand(command, metadata);
+			QueryResolver.resolveCommand(command, metadata.getDesignTimeMetadata());
 
 			validateDynamicCommand(procEnv, command);
 

Modified: trunk/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -98,7 +98,7 @@
         try {
             subCommand = parser.parseUpdateProcedure(plan);
         } catch(QueryParserException e) {
-            throw new QueryResolverException(e, "ERR.015.008.0045", QueryPlugin.Util.getString("ERR.015.008.0045", group)); //$NON-NLS-1$ //$NON-NLS-2$
+            throw new QueryResolverException(e, "ERR.015.008.0045", QueryPlugin.Util.getString("ERR.015.008.0045", group, procCommand.getClass().getSimpleName())); //$NON-NLS-1$ //$NON-NLS-2$
         }
         
         return subCommand;

Modified: trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -119,7 +119,7 @@
                 cupCommand.setProjectedSymbols(proc.getProjectedSymbols());
             } 
     	}
-    	resolveCommand(command, proc.getGroup(), proc.getType(), metadata);
+    	resolveCommand(command, proc.getGroup(), proc.getType(), metadata.getDesignTimeMetadata());
     	return command;
     }
 
@@ -427,6 +427,7 @@
 			String cacheString, QueryMetadataInterface qmi) throws TeiidComponentException,
 			QueryMetadataException, QueryResolverException,
 			QueryValidatorException {
+		qmi = qmi.getDesignTimeMetadata();
 		Command result = (Command)qmi.getFromMetadataCache(virtualGroup.getMetadataID(), "transformation/" + cacheString); //$NON-NLS-1$
         if (result != null) {
         	result = (Command)result.clone();

Modified: trunk/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -71,6 +71,10 @@
             if(!exitsingGroups.isEmpty()) {
                 throw new QueryResolverException(QueryPlugin.Util.getString("TempTableResolver.table_already_exists", group.getName())); //$NON-NLS-1$
             }
+        	if (metadata.getMetadata().hasProcedure(group.getName())) {
+        		throw new QueryResolverException(QueryPlugin.Util.getString("TempTableResolver.table_already_exists", group.getName())); //$NON-NLS-1$
+        	}
+            
             //now we will be more specific for temp groups
             TempMetadataID id = metadata.getMetadataStore().getTempGroupID(group.getName());
             if (id != null && !metadata.isTemporaryTable(id)) {

Modified: trunk/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/org/teiid/query/i18n.properties	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/main/resources/org/teiid/query/i18n.properties	2011-03-02 20:28:34 UTC (rev 2958)
@@ -114,7 +114,7 @@
 ERR.015.008.0041= Expected value of type ''{0}'' but ''{1}'' is of type ''{2}'' and no implicit conversion is available.
 ERR.015.008.0042= Element ''{0}'' in ORDER BY is ambiguous and may refer to more than one element of SELECT clause.
 ERR.015.008.0043= Element ''{0}'' in ORDER BY was not found in SELECT clause.
-ERR.015.008.0045= Failed parsing insert plan for {0}
+ERR.015.008.0045= Failed parsing {1} plan for {0}
 ERR.015.008.0046= The symbol {0} may only be used once in the FROM clause.
 ERR.015.008.0047= The symbol {0} refers to a group not defined in the FROM clause.
 ERR.015.008.0049= Bindings must be specified

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -52,8 +52,9 @@
     private DQPCore core;
 
     @Before public void setUp() throws Exception {
-        DQPWorkContext context = FakeMetadataFactory.buildWorkContext(FakeMetadataFactory.exampleBQTCached(), FakeMetadataFactory.exampleBQTVDB());
+        DQPWorkContext context = FakeMetadataFactory.buildWorkContext(FakeMetadataFactory.exampleBQT());
         context.getVDB().getModel("BQT3").setVisible(false); //$NON-NLS-1$
+        context.getVDB().getModel("VQT").setVisible(false); //$NON-NLS-1$
 
         ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
         context.getVDB().addAttchment(ConnectorManagerRepository.class, repo);
@@ -159,6 +160,14 @@
     }
     
     /**
+     * Ensures that VQT visibility does not affect the view query
+     */
+    @Test public void testViewVisibility() throws Exception {
+    	String sql = "SELECT * FROM VQT.SmallA_2589g"; //$NON-NLS-1$
+    	helpExecute(sql, "a"); //$NON-NLS-1$
+    }
+    
+    /**
      * Tests whether an exception result is sent when an exception occurs
      * @since 4.3
      */

Modified: trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -22,8 +22,7 @@
 
 package org.teiid.query.processor;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -66,6 +65,7 @@
 	@Before public void setUp() {
 		tempStore = new TempTableStore("1"); //$NON-NLS-1$
 		metadata = new TempMetadataAdapter(FakeMetadataFactory.example1Cached(), tempStore.getMetadataStore());
+		metadata.setSession(true);
 		FakeDataManager fdm = new FakeDataManager();
 	    TestProcessor.sampleData1(fdm);
 	    BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
@@ -286,7 +286,16 @@
 		execute("create local temporary table x (e1 serial, e2 integer not null, primary key (e1))", new List[] {Arrays.asList(0)}); //$NON-NLS-1$
 		execute("insert into x (e2) values ((select null))", new List[] {Arrays.asList(1)}); //$NON-NLS-1$
 	}
-
+	
+	/**
+	 * If the session metadata is still visible, then the procedure will fail due to the conflicting
+	 * definitions of temp_table
+	 */
+	@Test public void testSessionResolving() throws Exception {
+		execute("create local temporary table temp_table (column1 integer)", new List[] {Arrays.asList(0)});
+		execute("exec pm1.vsp60()", new List[] {Arrays.asList("First"), Arrays.asList("Second"), Arrays.asList("Third")});
+	}
+	
 	private void sampleTable() throws Exception {
 		execute("create local temporary table x (e1 string, e2 integer, primary key (e1, e2))", new List[] {Arrays.asList(0)}); //$NON-NLS-1$
 		execute("insert into x (e2, e1) values (3, 'b')", new List[] {Arrays.asList(1)}); //$NON-NLS-1$

Modified: trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -2338,6 +2338,11 @@
         String sql = "CREATE LOCAL TEMPORARY TABLE pm1.g1 (column1 string)"; //$NON-NLS-1$
         helpResolveException(sql, "Cannot create temporary table \"pm1.g1\". Local temporary tables must be created with unqualified names."); //$NON-NLS-1$
     }
+    
+    @Test public void testProcedureConflict() {
+        String sql = "create local temporary table MMSP6 (e1 string, e2 integer)"; //$NON-NLS-1$
+        helpResolveException(sql, RealMetadataFactory.exampleBQTCached()); //$NON-NLS-1$
+    }    
 
     @Test public void testCreatePk() {
         String sql = "CREATE LOCAL TEMPORARY TABLE foo (column1 string, column2 integer, primary key (column1, column2))"; //$NON-NLS-1$

Modified: trunk/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -83,6 +83,10 @@
         return CACHED_AGGREGATES;
     }       
     
+    public static DQPWorkContext buildWorkContext(TransformationMetadata metadata) {
+    	return buildWorkContext(metadata, metadata.getVdbMetaData());
+    }
+    
 	public static DQPWorkContext buildWorkContext(QueryMetadataInterface metadata, VDBMetaData vdb) {
 		DQPWorkContext workContext = new DQPWorkContext();
 		SessionMetadata session = new SessionMetadata();

Modified: trunk/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java	2011-03-02 19:37:19 UTC (rev 2957)
+++ trunk/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java	2011-03-02 20:28:34 UTC (rev 2958)
@@ -117,7 +117,7 @@
         QueryNode vqtn2589f = new QueryNode("VQT.SmallA_2589f", "SELECT * FROM VQT.SmallA_2589"); //$NON-NLS-1$ //$NON-NLS-2$
         Table vqtg2589f = createVirtualGroup("SmallA_2589f", vqt, vqtn2589f); //$NON-NLS-1$
 
-        QueryNode vqtn2589g = new QueryNode("VQT.SmallA_2589g", "SELECT * FROM VQT.SmallA_2589b"); //$NON-NLS-1$ //$NON-NLS-2$
+        QueryNode vqtn2589g = new QueryNode("VQT.SmallA_2589g", "SELECT * FROM SmallA_2589b"); //$NON-NLS-1$ //$NON-NLS-2$
         Table vqtg2589g = createVirtualGroup("SmallA_2589g", vqt, vqtn2589g); //$NON-NLS-1$
 
         QueryNode vqtn2589h = new QueryNode("VQT.SmallA_2589h", "SELECT VQT.SmallA_2589.* FROM VQT.SmallA_2589 INNER JOIN BQT1.SmallB ON VQT.SmallA_2589.StringKey = SmallB.StringKey"); //$NON-NLS-1$ //$NON-NLS-2$



More information about the teiid-commits mailing list