[teiid-commits] teiid SVN: r3002 - in branches/7.1.x/engine/src: main/java/org/teiid/dqp/internal/process/multisource and 11 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Thu Mar 17 11:11:14 EDT 2011
Author: shawkins
Date: 2011-03-17 11:11:14 -0400 (Thu, 17 Mar 2011)
New Revision: 3002
Modified:
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java
branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java
branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java
branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java
branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java
branches/7.1.x/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java
branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties
branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
branches/7.1.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java
branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java
Log:
TEIID-1467 TEIID-1489 backporting metadata fixes
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -190,14 +190,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: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/multisource/MultiSourceMetadataWrapper.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -330,5 +330,10 @@
return actualMetadata.getNativeType(elementID);
}
+
+ @Override
+ public QueryMetadataInterface getDesignTimeMetadata() {
+ return new MultiSourceMetadataWrapper(actualMetadata.getDesignTimeMetadata(), multiSourceModels);
+ }
}
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -439,6 +439,16 @@
public boolean isProcedure(Object elementID) throws TeiidComponentException, QueryMetadataException {
return false;
}
+
+ @Override
+ public QueryMetadataInterface getDesignTimeMetadata() {
+ return this;
+ }
+
+ @Override
+ public boolean hasProcedure(String name) throws TeiidComponentException {
+ return false;
+ }
public byte[] getBinaryVDBResource(String resourcePath) throws TeiidComponentException, QueryMetadataException {
return null;
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -373,5 +373,15 @@
public Object getPrimaryKey(Object metadataID) {
return actualMetadata.getPrimaryKey(metadataID);
}
+
+ @Override
+ public QueryMetadataInterface getDesignTimeMetadata() {
+ return actualMetadata.getDesignTimeMetadata();
+ }
+
+ @Override
+ public boolean hasProcedure(String name) throws TeiidComponentException {
+ return actualMetadata.hasProcedure(name);
+ }
}
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -680,4 +680,9 @@
FunctionLibrary getFunctionLibrary();
Object getPrimaryKey(Object metadataID);
+
+ QueryMetadataInterface getDesignTimeMetadata();
+
+ boolean hasProcedure(String name) throws TeiidComponentException;
+
}
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -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;
}
@@ -292,8 +308,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: branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -159,6 +159,13 @@
this.functionLibrary = new FunctionLibrary(systemFunctions, new FunctionTree(new UDFSource(udfMethods), true));
}
+ 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
//==================================================================================
@@ -287,11 +294,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) {
@@ -353,18 +380,14 @@
for (StoredProcedureInfo storedProcedureInfo : results) {
Schema schema = (Schema)storedProcedureInfo.getModelID();
- if(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;
}
@@ -744,6 +767,10 @@
return vdbMetaData.getVersion();
}
+ public VDBMetaData getVdbMetaData() {
+ return vdbMetaData;
+ }
+
/**
* @see org.teiid.query.metadata.QueryMetadataInterface#getXMLTempGroups(java.lang.Object)
*/
@@ -1082,4 +1109,9 @@
Table table = (Table)metadataID;
return table.getPrimaryKey();
}
+
+ @Override
+ public QueryMetadataInterface getDesignTimeMetadata() {
+ return new TransformationMetadata(store, functionLibrary);
+ }
}
\ No newline at end of file
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -1048,6 +1048,7 @@
String cacheString, QueryMetadataInterface qmi, AnalysisRecord analysisRecord) 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: branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/xml/QueryUtil.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -101,7 +101,7 @@
throws TeiidComponentException, QueryPlannerException {
// Run resolver
try {
- QueryResolver.resolveCommand(query, Collections.EMPTY_MAP, metadata, AnalysisRecord.createNonRecordingRecord());
+ QueryResolver.resolveCommand(query, Collections.EMPTY_MAP, metadata.getDesignTimeMetadata(), AnalysisRecord.createNonRecordingRecord());
} catch(QueryResolverException e) {
throw new QueryPlannerException(e, e.getMessage());
}
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/processor/proc/ExecDynamicSqlInstruction.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -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: branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -87,7 +87,7 @@
try {
subCommand = parser.parseCommand(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$
}
if(subCommand instanceof CreateUpdateProcedureCommand){
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -87,7 +87,7 @@
public static Command expandCommand(ProcedureContainer proc, QueryMetadataInterface metadata, AnalysisRecord analysisRecord) throws QueryResolverException, QueryMetadataException, TeiidComponentException {
ProcedureContainerResolver cr = (ProcedureContainerResolver)chooseResolver(proc, metadata);
- return cr.expandCommand(proc, metadata, analysisRecord);
+ return cr.expandCommand(proc, metadata.getDesignTimeMetadata(), analysisRecord);
}
/**
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/command/TempTableResolver.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -70,6 +70,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: branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties 2011-03-17 15:11:14 UTC (rev 3002)
@@ -119,7 +119,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: branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -50,8 +50,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);
@@ -157,6 +158,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: branches/7.1.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -64,6 +64,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();
@@ -261,7 +262,16 @@
execute("create local temporary table x (e1 string, e2 integer, primary key (e1, e2))", new List[] {Arrays.asList(0)}); //$NON-NLS-1$
execute("select * from x where e1 in ('a', 'b') order by e1 desc", new List[0]); //$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: branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -2418,6 +2418,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: branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/FakeMetadataFactory.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -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: branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java 2011-03-17 14:41:44 UTC (rev 3001)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/unittest/RealMetadataFactory.java 2011-03-17 15:11:14 UTC (rev 3002)
@@ -113,7 +113,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