[teiid-commits] teiid SVN: r1881 - in branches/JCA: client-jdbc/src/main/java/com/metamatrix/jdbc and 19 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Sat Feb 27 21:38:10 EST 2010
Author: shawkins
Date: 2010-02-27 21:38:06 -0500 (Sat, 27 Feb 2010)
New Revision: 1881
Removed:
branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SetClauseList.java
branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java
Modified:
branches/JCA/client-jdbc/src/main/java/com/metamatrix/jdbc/MMStatement.java
branches/JCA/client-jdbc/src/test/java/com/metamatrix/jdbc/TestMMConnection.java
branches/JCA/client/src/main/java/com/metamatrix/dqp/client/ResultsFuture.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/language/LanguageFactory.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SearchedCase.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/language/Update.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/AbstractLanguageVisitor.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/DelegatingHierarchyVisitor.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/HierarchyVisitor.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/LanguageObjectVisitor.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/CollectorVisitor.java
branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
branches/JCA/connector-sdk/src/test/java/com/metamatrix/cdk/unittest/FakeTranslationFactory.java
branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java
branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java
branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java
branches/JCA/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java
branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java
branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java
branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java
branches/JCA/connectors/connector-salesforce/src/test/java/com/metamatrix/connector/salesforce/execution/visitors/TestVisitors.java
branches/JCA/connectors/connector-text/src/test/java/com/metamatrix/connector/text/Util.java
branches/JCA/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java
branches/JCA/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
branches/JCA/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java
branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/RealMetadataFactory.java
branches/JCA/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestUpdateImpl.java
branches/JCA/runtime/src/main/java/org/teiid/transport/LogonImpl.java
branches/JCA/test-integration/pom.xml
Log:
TEIID-903 TEIID-851 TEIID-1003 fixing unit tests also removing setclauselist
Modified: branches/JCA/client/src/main/java/com/metamatrix/dqp/client/ResultsFuture.java
===================================================================
--- branches/JCA/client/src/main/java/com/metamatrix/dqp/client/ResultsFuture.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/client/src/main/java/com/metamatrix/dqp/client/ResultsFuture.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -36,6 +36,12 @@
*/
public class ResultsFuture<T> implements Future<T> {
+ public static ResultsFuture<Void> NULL_FUTURE = new ResultsFuture<Void>();
+
+ static {
+ NULL_FUTURE.getResultsReceiver().receiveResults(null);
+ }
+
public interface CompletionListener<T> {
void onCompletion(ResultsFuture<T> future);
}
Modified: branches/JCA/client-jdbc/src/main/java/com/metamatrix/jdbc/MMStatement.java
===================================================================
--- branches/JCA/client-jdbc/src/main/java/com/metamatrix/jdbc/MMStatement.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/client-jdbc/src/main/java/com/metamatrix/jdbc/MMStatement.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -22,7 +22,6 @@
package com.metamatrix.jdbc;
-import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
@@ -52,7 +51,6 @@
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixException;
import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.comm.exception.CommunicationException;
import com.metamatrix.common.util.SqlUtil;
import com.metamatrix.core.util.ObjectConverterUtil;
import com.metamatrix.dqp.client.ClientSideDQP;
Modified: branches/JCA/client-jdbc/src/test/java/com/metamatrix/jdbc/TestMMConnection.java
===================================================================
--- branches/JCA/client-jdbc/src/test/java/com/metamatrix/jdbc/TestMMConnection.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/client-jdbc/src/test/java/com/metamatrix/jdbc/TestMMConnection.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -22,23 +22,29 @@
package com.metamatrix.jdbc;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.stub;
+import static org.mockito.Mockito.*;
import java.sql.SQLException;
import java.util.Properties;
import junit.framework.TestCase;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
import com.metamatrix.common.comm.api.ServerConnection;
+import com.metamatrix.common.xa.MMXid;
+import com.metamatrix.common.xa.XATransactionException;
import com.metamatrix.dqp.client.ClientSideDQP;
+import com.metamatrix.dqp.client.ResultsFuture;
import com.metamatrix.platform.security.api.LogonResult;
import com.metamatrix.platform.security.api.SessionToken;
public class TestMMConnection extends TestCase {
protected static final String STD_DATABASE_NAME = "QT_Ora9DS"; //$NON-NLS-1$
- protected static final int STD_DATABASE_VERSION = 1; //$NON-NLS-1$
+ protected static final int STD_DATABASE_VERSION = 1;
static String serverUrl = "jdbc:metamatrix:QT_Ora9DS at mm://localhost:7001;version=1;user=metamatrixadmin;password=mm"; //$NON-NLS-1$
@@ -48,7 +54,30 @@
public static MMConnection getMMConnection() {
ServerConnection mock = mock(ServerConnection.class);
- stub(mock.getService(ClientSideDQP.class)).toReturn(mock(ClientSideDQP.class));
+ ClientSideDQP dqp = mock(ClientSideDQP.class);
+ try {
+ stub(dqp.start((MMXid)Mockito.anyObject(), Mockito.anyInt(), Mockito.anyInt())).toAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable {
+ return ResultsFuture.NULL_FUTURE;
+ }
+ });
+ stub(dqp.rollback((MMXid)Mockito.anyObject())).toAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable {
+ return ResultsFuture.NULL_FUTURE;
+ }
+ });
+ stub(dqp.rollback()).toAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable {
+ return ResultsFuture.NULL_FUTURE;
+ }
+ });
+ } catch (XATransactionException e) {
+ throw new RuntimeException(e);
+ }
+ stub(mock.getService(ClientSideDQP.class)).toReturn(dqp);
Properties props = new Properties();
props.setProperty(BaseDataSource.VDB_NAME, STD_DATABASE_NAME);
props.setProperty(BaseDataSource.VDB_VERSION, String.valueOf(STD_DATABASE_VERSION));
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/language/LanguageFactory.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/language/LanguageFactory.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/language/LanguageFactory.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -178,7 +178,7 @@
return new SubqueryIn(expression, isNegated, subquery);
}
- public Update createUpdate(NamedTable group, SetClauseList updates, Condition criteria) {
+ public Update createUpdate(NamedTable group, List<SetClause> updates, Condition criteria) {
return new Update(group, updates, criteria);
}
@@ -201,7 +201,4 @@
return new SetClause(symbol, value);
}
- public SetClauseList createSetClauseList(List<SetClause> clauses) {
- return new SetClauseList(clauses);
- }
}
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SearchedCase.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SearchedCase.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SearchedCase.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -31,7 +31,7 @@
* <br/> CASE WHEN criteria THEN expression ... END
*/
public class SearchedCase extends BaseLanguageObject implements Expression {
-
+
private List<Condition> whenConditions;
private List<Expression> thenExpressions;
private Expression elseExpression;
Deleted: branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SetClauseList.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SetClauseList.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/language/SetClauseList.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.connector.language;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.teiid.connector.visitor.framework.LanguageObjectVisitor;
-
-
-public class SetClauseList extends BaseLanguageObject {
-
- private List<SetClause> clauses;
-
- public SetClauseList(List<SetClause> clauses) {
- if (clauses == null) {
- clauses = new ArrayList<SetClause>();
- }
- this.clauses = clauses;
- }
-
- public List<SetClause> getClauses() {
- return clauses;
- }
-
- @Override
- public void acceptVisitor(LanguageObjectVisitor visitor) {
- visitor.visit(this);
- }
-
-}
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/language/Update.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/language/Update.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/language/Update.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -22,6 +22,8 @@
package org.teiid.connector.language;
+import java.util.List;
+
import org.teiid.connector.visitor.framework.LanguageObjectVisitor;
/**
@@ -30,10 +32,10 @@
public class Update extends BaseLanguageObject implements Command {
private NamedTable table;
- private SetClauseList changes;
+ private List<SetClause> changes;
private Condition where;
- public Update(NamedTable group, SetClauseList changes, Condition criteria) {
+ public Update(NamedTable group, List<SetClause> changes, Condition criteria) {
this.table = group;
this.changes = changes;
this.where = criteria;
@@ -43,7 +45,7 @@
return table;
}
- public SetClauseList getChanges() {
+ public List<SetClause> getChanges() {
return changes;
}
@@ -59,7 +61,7 @@
this.table = group;
}
- public void setChanges(SetClauseList changes) {
+ public void setChanges(List<SetClause> changes) {
this.changes = changes;
}
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/AbstractLanguageVisitor.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/AbstractLanguageVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/AbstractLanguageVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -49,11 +49,10 @@
import org.teiid.connector.language.NamedTable;
import org.teiid.connector.language.Not;
import org.teiid.connector.language.OrderBy;
-import org.teiid.connector.language.Select;
import org.teiid.connector.language.ScalarSubquery;
import org.teiid.connector.language.SearchedCase;
+import org.teiid.connector.language.Select;
import org.teiid.connector.language.SetClause;
-import org.teiid.connector.language.SetClauseList;
import org.teiid.connector.language.SetQuery;
import org.teiid.connector.language.SortSpecification;
import org.teiid.connector.language.SubqueryComparison;
@@ -144,6 +143,5 @@
public void visit(SubqueryIn obj) {}
public void visit(Update obj) {}
public void visit(SetQuery obj) {}
- public void visit(SetClauseList obj) {}
public void visit(SetClause obj) {}
}
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/DelegatingHierarchyVisitor.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/DelegatingHierarchyVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/DelegatingHierarchyVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -47,11 +47,10 @@
import org.teiid.connector.language.NamedTable;
import org.teiid.connector.language.Not;
import org.teiid.connector.language.OrderBy;
-import org.teiid.connector.language.Select;
import org.teiid.connector.language.ScalarSubquery;
import org.teiid.connector.language.SearchedCase;
+import org.teiid.connector.language.Select;
import org.teiid.connector.language.SetClause;
-import org.teiid.connector.language.SetClauseList;
import org.teiid.connector.language.SetQuery;
import org.teiid.connector.language.SortSpecification;
import org.teiid.connector.language.SubqueryComparison;
@@ -375,18 +374,6 @@
}
@Override
- public void visit(SetClauseList obj) {
- if (preVisitor != null) {
- preVisitor.visit(obj);
- }
- super.visit(obj);
- if (postVisitor != null) {
- postVisitor.visit(obj);
- }
-
- }
-
- @Override
public void visit(SetClause obj) {
if (preVisitor != null) {
preVisitor.visit(obj);
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/HierarchyVisitor.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/HierarchyVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/HierarchyVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -42,11 +42,10 @@
import org.teiid.connector.language.Not;
import org.teiid.connector.language.OrderBy;
import org.teiid.connector.language.QueryExpression;
-import org.teiid.connector.language.Select;
import org.teiid.connector.language.ScalarSubquery;
import org.teiid.connector.language.SearchedCase;
+import org.teiid.connector.language.Select;
import org.teiid.connector.language.SetClause;
-import org.teiid.connector.language.SetClauseList;
import org.teiid.connector.language.SetQuery;
import org.teiid.connector.language.SubqueryComparison;
import org.teiid.connector.language.SubqueryIn;
@@ -210,7 +209,7 @@
public void visit(Update obj) {
visitNode(obj.getTable());
- visitNode(obj.getChanges());
+ visitNodes(obj.getChanges());
visitNode(obj.getWhere());
}
@@ -222,11 +221,6 @@
}
@Override
- public void visit(SetClauseList obj) {
- visitNodes(obj.getClauses());
- }
-
- @Override
public void visit(SetClause obj) {
visitNode(obj.getSymbol());
visitNode(obj.getValue());
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/LanguageObjectVisitor.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/LanguageObjectVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/framework/LanguageObjectVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -59,6 +59,5 @@
public void visit(SubqueryIn obj);
public void visit(Update obj);
public void visit(SetQuery obj);
- public void visit(SetClauseList obj);
public void visit(SetClause obj);
}
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/CollectorVisitor.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/CollectorVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/CollectorVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -52,11 +52,10 @@
import org.teiid.connector.language.NamedTable;
import org.teiid.connector.language.Not;
import org.teiid.connector.language.OrderBy;
-import org.teiid.connector.language.Select;
import org.teiid.connector.language.ScalarSubquery;
import org.teiid.connector.language.SearchedCase;
+import org.teiid.connector.language.Select;
import org.teiid.connector.language.SetClause;
-import org.teiid.connector.language.SetClauseList;
import org.teiid.connector.language.SetQuery;
import org.teiid.connector.language.SortSpecification;
import org.teiid.connector.language.SubqueryComparison;
@@ -220,11 +219,6 @@
}
@Override
- public void visit(SetClauseList obj) {
- checkInstance(obj);
- }
-
- @Override
public void visit(SetClause obj) {
checkInstance(obj);
}
Modified: branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
===================================================================
--- branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -55,11 +55,10 @@
import org.teiid.connector.language.Not;
import org.teiid.connector.language.OrderBy;
import org.teiid.connector.language.QueryExpression;
-import org.teiid.connector.language.Select;
import org.teiid.connector.language.ScalarSubquery;
import org.teiid.connector.language.SearchedCase;
+import org.teiid.connector.language.Select;
import org.teiid.connector.language.SetClause;
-import org.teiid.connector.language.SetClauseList;
import org.teiid.connector.language.SetQuery;
import org.teiid.connector.language.SortSpecification;
import org.teiid.connector.language.SubqueryComparison;
@@ -819,10 +818,6 @@
}
}
- public void visit(SetClauseList obj) {
- append(obj.getClauses());
- }
-
public void visit(SetClause clause) {
buffer.append(getElementName(clause.getSymbol(), false));
buffer.append(SQLReservedWords.SPACE).append(SQLReservedWords.EQ).append(SQLReservedWords.SPACE);
Modified: branches/JCA/connector-sdk/src/test/java/com/metamatrix/cdk/unittest/FakeTranslationFactory.java
===================================================================
--- branches/JCA/connector-sdk/src/test/java/com/metamatrix/cdk/unittest/FakeTranslationFactory.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connector-sdk/src/test/java/com/metamatrix/cdk/unittest/FakeTranslationFactory.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -24,7 +24,6 @@
import com.metamatrix.cdk.api.TranslationUtility;
import com.metamatrix.query.unittest.FakeMetadataFactory;
-import com.metamatrix.query.validator.TestValidator;
public class FakeTranslationFactory {
@@ -42,14 +41,6 @@
return new TranslationUtility(FakeMetadataFactory.exampleYahoo());
}
- public TranslationUtility getTextTranslationUtility() {
- return new TranslationUtility(FakeMetadataFactory.exampleText());
- }
-
- public TranslationUtility getAutoIncrementTranslationUtility() {
- return new TranslationUtility(TestValidator.exampleMetadata3());
- }
-
public TranslationUtility getExampleTranslationUtility() {
return new TranslationUtility(FakeMetadataFactory.example1Cached());
}
Deleted: branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java
===================================================================
--- branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -1,355 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.connector.jdbc.oracle;
-
-import static org.junit.Assert.*;
-
-import java.util.Properties;
-
-import org.junit.Test;
-import org.teiid.connector.api.ConnectorException;
-import org.teiid.connector.api.ExecutionContext;
-import org.teiid.connector.jdbc.JDBCManagedConnectionFactory;
-import org.teiid.connector.jdbc.JDBCPropertyNames;
-import org.teiid.connector.jdbc.translator.TranslatedCommand;
-import org.teiid.connector.language.Command;
-import org.teiid.connector.metadata.runtime.MetadataStore;
-import org.teiid.connector.metadata.runtime.Schema;
-import org.teiid.connector.metadata.runtime.Table;
-import org.teiid.dqp.internal.datamgr.impl.ExecutionContextImpl;
-import org.teiid.dqp.internal.datamgr.impl.FakeExecutionContextImpl;
-import org.teiid.metadata.CompositeMetadataStore;
-import org.teiid.metadata.TransformationMetadata;
-
-import com.metamatrix.cdk.CommandBuilder;
-import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.FakeMetadataFactory;
-import com.metamatrix.query.unittest.RealMetadataFactory;
-
-public class TestOracleSQLConversionVisitor {
- private static ExecutionContext EMPTY_CONTEXT = new FakeExecutionContextImpl();
-
- private String getTestVDB() {
- return UnitTestUtil.getTestDataPath() + "/PartsSupplierOracle.vdb"; //$NON-NLS-1$
- }
-
- private void helpTestVisitor(String vdb, String input, String dbmsTimeZone, String expectedOutput) throws ConnectorException {
- helpTestVisitor(vdb, input, EMPTY_CONTEXT, dbmsTimeZone, expectedOutput, false);
- }
-
- private void helpTestVisitor(String vdb, String input, String dbmsTimeZone, String expectedOutput, boolean correctNaming) throws ConnectorException {
- helpTestVisitor(vdb, input, EMPTY_CONTEXT, dbmsTimeZone, expectedOutput, correctNaming);
- }
-
- private void helpTestVisitor(String vdb, String input, ExecutionContext context, String dbmsTimeZone, String expectedOutput, boolean correctNaming) throws ConnectorException {
- // Convert from sql to objects
- TranslationUtility util = new TranslationUtility(vdb);
- Command obj = util.parseCommand(input, correctNaming, true);
- this.helpTestVisitor(obj, context, dbmsTimeZone, expectedOutput);
- }
-
- /** Helper method takes a QueryMetadataInterface impl instead of a VDB filename
- * @throws ConnectorException
- */
- private void helpTestVisitor(QueryMetadataInterface metadata, String input, ExecutionContext context, String dbmsTimeZone, String expectedOutput) throws ConnectorException {
- // Convert from sql to objects
- CommandBuilder commandBuilder = new CommandBuilder(metadata);
- Command obj = commandBuilder.getCommand(input);
- this.helpTestVisitor(obj, context, dbmsTimeZone, expectedOutput);
- }
-
- private void helpTestVisitor(Command obj, ExecutionContext context, String dbmsTimeZone, String expectedOutput) throws ConnectorException {
-
-
- // Apply function replacement
- OracleSQLTranslator translator = new OracleSQLTranslator();
- Properties p = new Properties();
- if (dbmsTimeZone != null) {
- p.setProperty(JDBCPropertyNames.DATABASE_TIME_ZONE, dbmsTimeZone);
- }
- translator.initialize(new JDBCManagedConnectionFactory());
- // Convert back to SQL
- TranslatedCommand tc = new TranslatedCommand(context, translator);
- tc.translateCommand(obj);
-
- // Check stuff
- assertEquals("Did not get correct sql", expectedOutput, tc.getSql()); //$NON-NLS-1$
- }
-
- /** defect 21775 */
- @Test public void testDateStuff() throws Exception {
- String input = "SELECT ((CASE WHEN month(datevalue) < 10 THEN ('0' || convert(month(datevalue), string)) ELSE convert(month(datevalue), string) END || CASE WHEN dayofmonth(datevalue) < 10 THEN ('0' || convert(dayofmonth(datevalue), string)) ELSE convert(dayofmonth(datevalue), string) END) || convert(year(datevalue), string)), SUM(intkey) FROM bqt1.SMALLA GROUP BY datevalue"; //$NON-NLS-1$
- String output = "SELECT CASE WHEN CASE WHEN CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.DateValue)) END IS NULL OR CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END IS NULL THEN NULL ELSE concat(CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.DateValue)) END, CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('!
0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END) END IS NULL OR to_char(EXTRACT(YEAR FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat(CASE WHEN CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.DateValue)) END IS NULL OR CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END IS NULL THEN NULL ELSE concat(CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.Da!
teValue)) END, CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < !
10 THEN
CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END) END, to_char(EXTRACT(YEAR FROM SmallA.DateValue))) END, SUM(SmallA.IntKey) FROM SmallA GROUP BY SmallA.DateValue"; //$NON-NLS-1$
-
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
- input,
- EMPTY_CONTEXT, null, output);
- }
-
- @Test public void testAliasedGroup() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select y.part_name from parts as y", //$NON-NLS-1$
- null,
- "SELECT y.PART_NAME FROM PARTS y"); //$NON-NLS-1$
- }
-
- @Test public void testDateLiteral() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select {d '2002-12-31'} FROM parts", //$NON-NLS-1$
- null,
- "SELECT {d '2002-12-31'} FROM PARTS"); //$NON-NLS-1$
- }
-
- @Test public void testTimeLiteral() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select {t '13:59:59'} FROM parts", //$NON-NLS-1$
- null,
- "SELECT {ts '1970-01-01 13:59:59'} FROM PARTS"); //$NON-NLS-1$
- }
-
- @Test public void testTimestampLiteral() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select {ts '2002-12-31 13:59:59'} FROM parts", //$NON-NLS-1$
- null,
- "SELECT {ts '2002-12-31 13:59:59.0'} FROM PARTS"); //$NON-NLS-1$
- }
-
- @Test public void testUnionOrderByWithThreeBranches() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select part_id id FROM parts UNION ALL select part_name FROM parts UNION ALL select part_id FROM parts ORDER BY id", //$NON-NLS-1$
- null,
- "SELECT g_2.PART_ID AS c_0 FROM PARTS g_2 UNION ALL SELECT g_1.PART_NAME AS c_0 FROM PARTS g_1 UNION ALL SELECT g_0.PART_ID AS c_0 FROM PARTS g_0 ORDER BY c_0 NULLS FIRST", //$NON-NLS-1$
- true);
- }
-
- @Test public void testUnionOrderBy() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select part_id FROM parts UNION ALL select part_name FROM parts ORDER BY part_id", //$NON-NLS-1$
- null,
- "SELECT g_1.PART_ID AS c_0 FROM PARTS g_1 UNION ALL SELECT g_0.PART_NAME AS c_0 FROM PARTS g_0 ORDER BY c_0 NULLS FIRST", //$NON-NLS-1$
- true);
- }
-
- @Test public void testUnionOrderBy2() throws Exception {
- helpTestVisitor(getTestVDB(),
- "select part_id as p FROM parts UNION ALL select part_name FROM parts ORDER BY p", //$NON-NLS-1$
- null,
- "SELECT PARTS.PART_ID AS p FROM PARTS UNION ALL SELECT PARTS.PART_NAME FROM PARTS ORDER BY p NULLS FIRST"); //$NON-NLS-1$
- }
-
- @Test public void testUpdateWithFunction() throws Exception {
- String input = "UPDATE bqt1.smalla SET intkey = intkey + 1"; //$NON-NLS-1$
- String output = "UPDATE SmallA SET IntKey = (SmallA.IntKey + 1)"; //$NON-NLS-1$
-
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
- input,
- EMPTY_CONTEXT, null, output);
- }
-
-
- /**
- * Oracle's DUAL table is a pseudo-table; element names cannot be
- * fully qualified since the table doesn't really exist nor contain
- * any columns. But this requires modeling the DUAL table in
- * MM as if it were a real physical table, and also modeling any
- * columns in the table. Case 3742
- *
- * @since 4.3
- */
- @Test public void testDUAL() throws Exception {
- String input = "SELECT something FROM DUAL"; //$NON-NLS-1$
- String output = "SELECT something FROM DUAL"; //$NON-NLS-1$
-
- helpTestVisitor(getOracleSpecificMetadata(),
- input,
- EMPTY_CONTEXT,
- null,
- output);
- }
-
- /**
- * Test Oracle's rownum pseudo-column. Not a real column, so it can't
- * be fully-qualified with a table name. MM requires this column to be
- * modeled in any table which the user wants to use rownum with.
- * Case 3739
- *
- * @since 4.3
- */
- @Test public void testROWNUM() throws Exception {
- String input = "SELECT part_name, rownum FROM parts"; //$NON-NLS-1$
- String output = "SELECT PARTS.PART_NAME, ROWNUM FROM PARTS"; //$NON-NLS-1$
-
- helpTestVisitor(getTestVDB(),
- input,
- null,
- output);
- }
-
- /**
- * Test Oracle's rownum pseudo-column. Not a real column, so it can't
- * be fully-qualified with a table name. MM requires this column to be
- * modeled in any table which the user wants to use rownum with. Case 3739
- *
- * @since 4.3
- */
- @Test public void testROWNUM2() throws Exception {
- String input = "SELECT part_name FROM parts where rownum < 100"; //$NON-NLS-1$
- String output = "SELECT PARTS.PART_NAME FROM PARTS WHERE ROWNUM < 100"; //$NON-NLS-1$
-
- helpTestVisitor(getTestVDB(),
- input,
- null,
- output); }
-
- /**
- * Case 3744. Test that an Oracle-specific db hint, delivered as a String via command
- * payload, is added to the translated SQL.
- *
- * @since 4.3
- */
- @Test public void testOracleCommentPayload() throws Exception {
- String input = "SELECT part_name, rownum FROM parts"; //$NON-NLS-1$
- String output = "SELECT /*+ ALL_ROWS */ PARTS.PART_NAME, ROWNUM FROM PARTS"; //$NON-NLS-1$
-
- String hint = "/*+ ALL_ROWS */"; //$NON-NLS-1$
- ExecutionContext context = new ExecutionContextImpl(null, 1, hint, null, "", null, null, null); //$NON-NLS-1$
-
- helpTestVisitor(getTestVDB(),
- input,
- context,
- null,
- output,
- false);
- }
-
- /**
- * reproducing this case relies on the name in source for the table being different from
- * the name
- */
- @Test public void testCase3845() throws Exception {
-
- String input = "SELECT (DoubleNum * 1.0) FROM BQT1.Smalla"; //$NON-NLS-1$
- String output = "SELECT (SmallishA.DoubleNum * 1.0) FROM SmallishA"; //$NON-NLS-1$
-
- QueryMetadataInterface metadata = getOracleSpecificMetadata();
-
- helpTestVisitor(metadata, input, EMPTY_CONTEXT, null, output);
- }
-
- /** create fake BQT metadata to test this case, name in source is important */
- private QueryMetadataInterface getOracleSpecificMetadata() {
- MetadataStore metadataStore = new MetadataStore();
- Schema foo = RealMetadataFactory.createPhysicalModel("BQT1", metadataStore); //$NON-NLS-1$
- Table table = RealMetadataFactory.createPhysicalGroup("SmallA", foo); //$NON-NLS-1$
- Table dual = RealMetadataFactory.createPhysicalGroup("DUAL", foo); //$NON-NLS-1$
- table.setNameInSource("SmallishA");//$NON-NLS-1$
- String[] elemNames = new String[] {
- "DoubleNum", //$NON-NLS-1$
- };
- String[] elemTypes = new String[] {
- DataTypeManager.DefaultDataTypes.DOUBLE,
- };
- RealMetadataFactory.createElements(table, elemNames, elemTypes);
- RealMetadataFactory.createElements(dual, new String[] {"something"}, new String[] {DataTypeManager.DefaultDataTypes.STRING}); //$NON-NLS-1$
-
- CompositeMetadataStore store = new CompositeMetadataStore(metadataStore);
- return new TransformationMetadata(null, store, null, null);
- }
-
- public void helpTestVisitor(String vdb, String input, String expectedOutput) throws ConnectorException {
- helpTestVisitor(vdb, input, null, expectedOutput);
- }
-
- @Test public void testRowLimit2() throws Exception {
- String input = "select intkey from bqt1.smalla limit 100"; //$NON-NLS-1$
- String output = "SELECT * FROM (SELECT SmallA.IntKey FROM SmallA) WHERE ROWNUM <= 100"; //$NON-NLS-1$
-
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
- input,
- EMPTY_CONTEXT, null, output);
- }
-
- @Test public void testRowLimit3() throws Exception {
- String input = "select intkey from bqt1.smalla limit 50, 100"; //$NON-NLS-1$
- String output = "SELECT * FROM (SELECT VIEW_FOR_LIMIT.*, ROWNUM ROWNUM_ FROM (SELECT SmallA.IntKey FROM SmallA) VIEW_FOR_LIMIT WHERE ROWNUM <= 150) WHERE ROWNUM_ > 50"; //$NON-NLS-1$
-
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
- input,
- EMPTY_CONTEXT, null, output);
- }
-
- @Test public void testLimitWithNestedInlineView() throws Exception {
- String input = "select max(intkey), stringkey from (select intkey, stringkey from bqt1.smalla order by intkey limit 100) x group by stringkey"; //$NON-NLS-1$
- String output = "SELECT MAX(x.intkey), x.stringkey FROM (SELECT * FROM (SELECT SmallA.IntKey, SmallA.StringKey FROM SmallA ORDER BY intkey NULLS FIRST) WHERE ROWNUM <= 100) x GROUP BY x.stringkey"; //$NON-NLS-1$
-
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
- input,
- EMPTY_CONTEXT, null, output);
- }
-
- @Test public void testExceptAsMinus() throws Exception {
- String input = "select intkey, intnum from bqt1.smalla except select intnum, intkey from bqt1.smallb"; //$NON-NLS-1$
- String output = "SELECT SmallA.IntKey, SmallA.IntNum FROM SmallA MINUS SELECT SmallB.IntNum, SmallB.IntKey FROM SmallB"; //$NON-NLS-1$
-
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
- input,
- EMPTY_CONTEXT, null, output);
- }
-
- @Test public void testConcat2_useLiteral() throws Exception {
- String sql = "select concat2(stringnum,'_xx') from BQT1.Smalla"; //$NON-NLS-1$
- String expected = "SELECT concat(nvl(SmallA.StringNum, ''), '_xx') FROM SmallA"; //$NON-NLS-1$
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(), sql, EMPTY_CONTEXT, null, expected);
- }
-
- @Test public void testConcat2() throws Exception {
- String sql = "select concat2(stringnum, stringnum) from BQT1.Smalla"; //$NON-NLS-1$
- String expected = "SELECT CASE WHEN SmallA.StringNum IS NULL THEN NULL ELSE concat(nvl(SmallA.StringNum, ''), nvl(SmallA.StringNum, '')) END FROM SmallA"; //$NON-NLS-1$
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(), sql, EMPTY_CONTEXT, null, expected);
- }
-
- @Test public void testConcat() throws Exception {
- String sql = "select concat(stringnum, stringkey) from BQT1.Smalla"; //$NON-NLS-1$
- String expected = "SELECT CASE WHEN SmallA.StringNum IS NULL OR SmallA.StringKey IS NULL THEN NULL ELSE concat(SmallA.StringNum, SmallA.StringKey) END FROM SmallA"; //$NON-NLS-1$
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(), sql, EMPTY_CONTEXT, null, expected);
- }
-
- @Test public void testConcat_withLiteral() throws Exception {
- String sql = "select stringnum || '1' from BQT1.Smalla"; //$NON-NLS-1$
- String expected = "SELECT CASE WHEN SmallA.StringNum IS NULL THEN NULL ELSE concat(SmallA.StringNum, '1') END FROM SmallA"; //$NON-NLS-1$
- helpTestVisitor(FakeMetadataFactory.exampleBQTCached(), sql, EMPTY_CONTEXT, null, expected);
- }
-
- @Test public void testRowLimitWithUnionOrderBy() throws Exception {
- String input = "(select intkey from bqt1.smalla limit 50, 100) union select intnum from bqt1.smalla order by intkey"; //$NON-NLS-1$
- String output = "SELECT c_0 FROM (SELECT VIEW_FOR_LIMIT.*, ROWNUM ROWNUM_ FROM (SELECT g_1.IntKey AS c_0 FROM SmallA g_1) VIEW_FOR_LIMIT WHERE ROWNUM <= 150) WHERE ROWNUM_ > 50 UNION SELECT g_0.IntNum AS c_0 FROM SmallA g_0 ORDER BY c_0 NULLS FIRST"; //$NON-NLS-1$
-
- CommandBuilder commandBuilder = new CommandBuilder(FakeMetadataFactory.exampleBQTCached());
- Command obj = commandBuilder.getCommand(input, true, true);
- this.helpTestVisitor(obj, EMPTY_CONTEXT, null, output);
- }
-
-}
Modified: branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java
===================================================================
--- branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/oracle/TestOracleTranslator.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -22,18 +22,37 @@
package org.teiid.connector.jdbc.oracle;
+import static org.junit.Assert.*;
+
+import java.util.List;
+import java.util.Properties;
+
import org.junit.Before;
import org.junit.Test;
-import org.mockito.Mockito;
import org.teiid.connector.api.ConnectorException;
import org.teiid.connector.api.ExecutionContext;
import org.teiid.connector.jdbc.JDBCManagedConnectionFactory;
+import org.teiid.connector.jdbc.JDBCPropertyNames;
import org.teiid.connector.jdbc.TranslationHelper;
import org.teiid.connector.jdbc.translator.TranslatedCommand;
import org.teiid.connector.jdbc.translator.Translator;
import org.teiid.connector.language.Command;
+import org.teiid.connector.metadata.runtime.Column;
+import org.teiid.connector.metadata.runtime.MetadataStore;
+import org.teiid.connector.metadata.runtime.Schema;
+import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.dqp.internal.datamgr.impl.ExecutionContextImpl;
+import org.teiid.dqp.internal.datamgr.impl.FakeExecutionContextImpl;
+import org.teiid.metadata.CompositeMetadataStore;
+import org.teiid.metadata.TransformationMetadata;
-import com.metamatrix.cdk.unittest.FakeTranslationFactory;
+import com.metamatrix.cdk.CommandBuilder;
+import com.metamatrix.cdk.api.TranslationUtility;
+import com.metamatrix.common.types.DataTypeManager;
+import com.metamatrix.core.util.UnitTestUtil;
+import com.metamatrix.query.metadata.QueryMetadataInterface;
+import com.metamatrix.query.unittest.FakeMetadataFactory;
+import com.metamatrix.query.unittest.RealMetadataFactory;
public class TestOracleTranslator {
@@ -42,6 +61,7 @@
*/
private Translator TRANSLATOR;
private String UDF = "/OracleSpatialFunctions.xmi"; //$NON-NLS-1$;
+ private static ExecutionContext EMPTY_CONTEXT = new FakeExecutionContextImpl();
@Before
public void setup() throws Exception {
@@ -50,22 +70,15 @@
}
private void helpTestVisitor(String input, String expectedOutput) throws ConnectorException {
- // Convert from sql to objects
- Command obj = FakeTranslationFactory.getInstance().getAutoIncrementTranslationUtility().parseCommand(input);
-
- TranslatedCommand tc = new TranslatedCommand(Mockito.mock(ExecutionContext.class), TRANSLATOR);
- tc.translateCommand(obj);
-
- // Check stuff
- org.junit.Assert.assertEquals("Did not get correct sql", expectedOutput, tc.getSql()); //$NON-NLS-1$
+ helpTestVisitor(getOracleSpecificMetadata(), input, EMPTY_CONTEXT, null, expectedOutput);
}
@Test public void testInsertWithSequnce() throws Exception {
- helpTestVisitor("insert into test.group (e0) values (1)", "INSERT INTO group (e0, e1) VALUES (1, MYSEQUENCE.nextVal)"); //$NON-NLS-1$ //$NON-NLS-2$
+ helpTestVisitor("insert into smalla (doublenum) values (1)", "INSERT INTO SmallishA (DoubleNum, ID) VALUES (1.0, MYSEQUENCE.nextVal)"); //$NON-NLS-1$ //$NON-NLS-2$
}
@Test public void testInsertWithSequnce1() throws Exception {
- helpTestVisitor("insert into test.group (e0, e1) values (1, 'x')", "INSERT INTO group (e0, e1) VALUES (1, 'x')"); //$NON-NLS-1$ //$NON-NLS-2$
+ helpTestVisitor("insert into smalla (doublenum, id) values (1, 1)", "INSERT INTO SmallishA (DoubleNum, ID) VALUES (1.0, 1)"); //$NON-NLS-1$ //$NON-NLS-2$
}
@Test public void testJoins() throws Exception {
@@ -478,5 +491,276 @@
input, output,
TRANSLATOR);
}
+
+ private String getTestVDB() {
+ return UnitTestUtil.getTestDataPath() + "/PartsSupplierOracle.vdb"; //$NON-NLS-1$
+ }
+
+ private void helpTestVisitor(String vdb, String input, String dbmsTimeZone, String expectedOutput) throws ConnectorException {
+ helpTestVisitor(vdb, input, EMPTY_CONTEXT, dbmsTimeZone, expectedOutput, false);
+ }
+ private void helpTestVisitor(String vdb, String input, String dbmsTimeZone, String expectedOutput, boolean correctNaming) throws ConnectorException {
+ helpTestVisitor(vdb, input, EMPTY_CONTEXT, dbmsTimeZone, expectedOutput, correctNaming);
+ }
+
+ private void helpTestVisitor(String vdb, String input, ExecutionContext context, String dbmsTimeZone, String expectedOutput, boolean correctNaming) throws ConnectorException {
+ // Convert from sql to objects
+ TranslationUtility util = new TranslationUtility(vdb);
+ Command obj = util.parseCommand(input, correctNaming, true);
+ this.helpTestVisitor(obj, context, dbmsTimeZone, expectedOutput);
+ }
+
+ /** Helper method takes a QueryMetadataInterface impl instead of a VDB filename
+ * @throws ConnectorException
+ */
+ private void helpTestVisitor(QueryMetadataInterface metadata, String input, ExecutionContext context, String dbmsTimeZone, String expectedOutput) throws ConnectorException {
+ // Convert from sql to objects
+ CommandBuilder commandBuilder = new CommandBuilder(metadata);
+ Command obj = commandBuilder.getCommand(input);
+ this.helpTestVisitor(obj, context, dbmsTimeZone, expectedOutput);
+ }
+
+ private void helpTestVisitor(Command obj, ExecutionContext context, String dbmsTimeZone, String expectedOutput) throws ConnectorException {
+ OracleSQLTranslator translator = new OracleSQLTranslator();
+ Properties p = new Properties();
+ if (dbmsTimeZone != null) {
+ p.setProperty(JDBCPropertyNames.DATABASE_TIME_ZONE, dbmsTimeZone);
+ }
+ translator.initialize(new JDBCManagedConnectionFactory());
+ // Convert back to SQL
+ TranslatedCommand tc = new TranslatedCommand(context, translator);
+ tc.translateCommand(obj);
+
+ // Check stuff
+ assertEquals("Did not get correct sql", expectedOutput, tc.getSql()); //$NON-NLS-1$
+ }
+
+ /** defect 21775 */
+ @Test public void testDateStuff() throws Exception {
+ String input = "SELECT ((CASE WHEN month(datevalue) < 10 THEN ('0' || convert(month(datevalue), string)) ELSE convert(month(datevalue), string) END || CASE WHEN dayofmonth(datevalue) < 10 THEN ('0' || convert(dayofmonth(datevalue), string)) ELSE convert(dayofmonth(datevalue), string) END) || convert(year(datevalue), string)), SUM(intkey) FROM bqt1.SMALLA GROUP BY datevalue"; //$NON-NLS-1$
+ String output = "SELECT CASE WHEN CASE WHEN CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.DateValue)) END IS NULL OR CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END IS NULL THEN NULL ELSE concat(CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.DateValue)) END, CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('!
0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END) END IS NULL OR to_char(EXTRACT(YEAR FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat(CASE WHEN CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.DateValue)) END IS NULL OR CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END IS NULL THEN NULL ELSE concat(CASE WHEN EXTRACT(MONTH FROM SmallA.DateValue) < 10 THEN CASE WHEN to_char(EXTRACT(MONTH FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(MONTH FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(MONTH FROM SmallA.Da!
teValue)) END, CASE WHEN EXTRACT(DAY FROM SmallA.DateValue) < !
10 THEN
CASE WHEN to_char(EXTRACT(DAY FROM SmallA.DateValue)) IS NULL THEN NULL ELSE concat('0', to_char(EXTRACT(DAY FROM SmallA.DateValue))) END ELSE to_char(EXTRACT(DAY FROM SmallA.DateValue)) END) END, to_char(EXTRACT(YEAR FROM SmallA.DateValue))) END, SUM(SmallA.IntKey) FROM SmallA GROUP BY SmallA.DateValue"; //$NON-NLS-1$
+
+ helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
+ input,
+ EMPTY_CONTEXT, null, output);
+ }
+
+ @Test public void testAliasedGroup() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select y.part_name from parts as y", //$NON-NLS-1$
+ null,
+ "SELECT y.PART_NAME FROM PARTS y"); //$NON-NLS-1$
+ }
+
+ @Test public void testDateLiteral() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select {d '2002-12-31'} FROM parts", //$NON-NLS-1$
+ null,
+ "SELECT {d '2002-12-31'} FROM PARTS"); //$NON-NLS-1$
+ }
+
+ @Test public void testTimeLiteral() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select {t '13:59:59'} FROM parts", //$NON-NLS-1$
+ null,
+ "SELECT {ts '1970-01-01 13:59:59'} FROM PARTS"); //$NON-NLS-1$
+ }
+
+ @Test public void testTimestampLiteral() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select {ts '2002-12-31 13:59:59'} FROM parts", //$NON-NLS-1$
+ null,
+ "SELECT {ts '2002-12-31 13:59:59.0'} FROM PARTS"); //$NON-NLS-1$
+ }
+
+ @Test public void testUnionOrderByWithThreeBranches() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select part_id id FROM parts UNION ALL select part_name FROM parts UNION ALL select part_id FROM parts ORDER BY id", //$NON-NLS-1$
+ null,
+ "SELECT g_2.PART_ID AS c_0 FROM PARTS g_2 UNION ALL SELECT g_1.PART_NAME AS c_0 FROM PARTS g_1 UNION ALL SELECT g_0.PART_ID AS c_0 FROM PARTS g_0 ORDER BY c_0 NULLS FIRST", //$NON-NLS-1$
+ true);
+ }
+
+ @Test public void testUnionOrderBy() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select part_id FROM parts UNION ALL select part_name FROM parts ORDER BY part_id", //$NON-NLS-1$
+ null,
+ "SELECT g_1.PART_ID AS c_0 FROM PARTS g_1 UNION ALL SELECT g_0.PART_NAME AS c_0 FROM PARTS g_0 ORDER BY c_0 NULLS FIRST", //$NON-NLS-1$
+ true);
+ }
+
+ @Test public void testUnionOrderBy2() throws Exception {
+ helpTestVisitor(getTestVDB(),
+ "select part_id as p FROM parts UNION ALL select part_name FROM parts ORDER BY p", //$NON-NLS-1$
+ null,
+ "SELECT PARTS.PART_ID AS p FROM PARTS UNION ALL SELECT PARTS.PART_NAME FROM PARTS ORDER BY p NULLS FIRST"); //$NON-NLS-1$
+ }
+
+ @Test public void testUpdateWithFunction() throws Exception {
+ String input = "UPDATE bqt1.smalla SET intkey = intkey + 1"; //$NON-NLS-1$
+ String output = "UPDATE SmallA SET IntKey = (SmallA.IntKey + 1)"; //$NON-NLS-1$
+
+ helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
+ input,
+ EMPTY_CONTEXT, null, output);
+ }
+
+
+ /**
+ * Oracle's DUAL table is a pseudo-table; element names cannot be
+ * fully qualified since the table doesn't really exist nor contain
+ * any columns. But this requires modeling the DUAL table in
+ * MM as if it were a real physical table, and also modeling any
+ * columns in the table. Case 3742
+ *
+ * @since 4.3
+ */
+ @Test public void testDUAL() throws Exception {
+ String input = "SELECT something FROM DUAL"; //$NON-NLS-1$
+ String output = "SELECT something FROM DUAL"; //$NON-NLS-1$
+
+ helpTestVisitor(getOracleSpecificMetadata(),
+ input,
+ EMPTY_CONTEXT,
+ null,
+ output);
+ }
+
+ /**
+ * Test Oracle's rownum pseudo-column. Not a real column, so it can't
+ * be fully-qualified with a table name. MM requires this column to be
+ * modeled in any table which the user wants to use rownum with.
+ * Case 3739
+ *
+ * @since 4.3
+ */
+ @Test public void testROWNUM() throws Exception {
+ String input = "SELECT part_name, rownum FROM parts"; //$NON-NLS-1$
+ String output = "SELECT PARTS.PART_NAME, ROWNUM FROM PARTS"; //$NON-NLS-1$
+
+ helpTestVisitor(getTestVDB(),
+ input,
+ null,
+ output);
+ }
+
+ /**
+ * Test Oracle's rownum pseudo-column. Not a real column, so it can't
+ * be fully-qualified with a table name. MM requires this column to be
+ * modeled in any table which the user wants to use rownum with. Case 3739
+ *
+ * @since 4.3
+ */
+ @Test public void testROWNUM2() throws Exception {
+ String input = "SELECT part_name FROM parts where rownum < 100"; //$NON-NLS-1$
+ String output = "SELECT PARTS.PART_NAME FROM PARTS WHERE ROWNUM < 100"; //$NON-NLS-1$
+
+ helpTestVisitor(getTestVDB(),
+ input,
+ null,
+ output); }
+
+ /**
+ * Case 3744. Test that an Oracle-specific db hint, delivered as a String via command
+ * payload, is added to the translated SQL.
+ *
+ * @since 4.3
+ */
+ @Test public void testOracleCommentPayload() throws Exception {
+ String input = "SELECT part_name, rownum FROM parts"; //$NON-NLS-1$
+ String output = "SELECT /*+ ALL_ROWS */ PARTS.PART_NAME, ROWNUM FROM PARTS"; //$NON-NLS-1$
+
+ String hint = "/*+ ALL_ROWS */"; //$NON-NLS-1$
+ ExecutionContext context = new ExecutionContextImpl(null, 1, hint, null, "", null, null, null); //$NON-NLS-1$
+
+ helpTestVisitor(getTestVDB(),
+ input,
+ context,
+ null,
+ output,
+ false);
+ }
+
+ /**
+ * reproducing this case relies on the name in source for the table being different from
+ * the name
+ */
+ @Test public void testCase3845() throws Exception {
+
+ String input = "SELECT (DoubleNum * 1.0) FROM BQT1.Smalla"; //$NON-NLS-1$
+ String output = "SELECT (SmallishA.DoubleNum * 1.0) FROM SmallishA"; //$NON-NLS-1$
+
+ QueryMetadataInterface metadata = getOracleSpecificMetadata();
+
+ helpTestVisitor(metadata, input, EMPTY_CONTEXT, null, output);
+ }
+
+ /** create fake BQT metadata to test this case, name in source is important */
+ private QueryMetadataInterface getOracleSpecificMetadata() {
+ MetadataStore metadataStore = new MetadataStore();
+ Schema foo = RealMetadataFactory.createPhysicalModel("BQT1", metadataStore); //$NON-NLS-1$
+ Table table = RealMetadataFactory.createPhysicalGroup("SmallA", foo); //$NON-NLS-1$
+ Table dual = RealMetadataFactory.createPhysicalGroup("DUAL", foo); //$NON-NLS-1$
+ table.setNameInSource("SmallishA");//$NON-NLS-1$
+ String[] elemNames = new String[] {
+ "DoubleNum", //$NON-NLS-1$
+ "ID", //$NON-NLS-1$
+ };
+ String[] elemTypes = new String[] {
+ DataTypeManager.DefaultDataTypes.DOUBLE,
+ DataTypeManager.DefaultDataTypes.INTEGER,
+ };
+ List<Column> cols = RealMetadataFactory.createElements(table, elemNames, elemTypes);
+ cols.get(1).setAutoIncremented(true);
+ cols.get(1).setNameInSource("ID:SEQUENCE=MYSEQUENCE.nextVal"); //$NON-NLS-1$
+ RealMetadataFactory.createElements(dual, new String[] {"something"}, new String[] {DataTypeManager.DefaultDataTypes.STRING}); //$NON-NLS-1$
+
+ CompositeMetadataStore store = new CompositeMetadataStore(metadataStore);
+ return new TransformationMetadata(null, store, null, null);
+ }
+
+ public void helpTestVisitor(String vdb, String input, String expectedOutput) throws ConnectorException {
+ helpTestVisitor(vdb, input, null, expectedOutput);
+ }
+
+ @Test public void testLimitWithNestedInlineView() throws Exception {
+ String input = "select max(intkey), stringkey from (select intkey, stringkey from bqt1.smalla order by intkey limit 100) x group by stringkey"; //$NON-NLS-1$
+ String output = "SELECT MAX(x.intkey), x.stringkey FROM (SELECT * FROM (SELECT SmallA.IntKey, SmallA.StringKey FROM SmallA ORDER BY intkey NULLS FIRST) WHERE ROWNUM <= 100) x GROUP BY x.stringkey"; //$NON-NLS-1$
+
+ helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
+ input,
+ EMPTY_CONTEXT, null, output);
+ }
+
+ @Test public void testExceptAsMinus() throws Exception {
+ String input = "select intkey, intnum from bqt1.smalla except select intnum, intkey from bqt1.smallb"; //$NON-NLS-1$
+ String output = "SELECT SmallA.IntKey, SmallA.IntNum FROM SmallA MINUS SELECT SmallB.IntNum, SmallB.IntKey FROM SmallB"; //$NON-NLS-1$
+
+ helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
+ input,
+ EMPTY_CONTEXT, null, output);
+ }
+
+ @Test public void testConcat() throws Exception {
+ String sql = "select concat(stringnum, stringkey) from BQT1.Smalla"; //$NON-NLS-1$
+ String expected = "SELECT CASE WHEN SmallA.StringNum IS NULL OR SmallA.StringKey IS NULL THEN NULL ELSE concat(SmallA.StringNum, SmallA.StringKey) END FROM SmallA"; //$NON-NLS-1$
+ helpTestVisitor(FakeMetadataFactory.exampleBQTCached(), sql, EMPTY_CONTEXT, null, expected);
+ }
+
+ @Test public void testConcat_withLiteral() throws Exception {
+ String sql = "select stringnum || '1' from BQT1.Smalla"; //$NON-NLS-1$
+ String expected = "SELECT CASE WHEN SmallA.StringNum IS NULL THEN NULL ELSE concat(SmallA.StringNum, '1') END FROM SmallA"; //$NON-NLS-1$
+ helpTestVisitor(FakeMetadataFactory.exampleBQTCached(), sql, EMPTY_CONTEXT, null, expected);
+ }
+
+ @Test public void testRowLimitWithUnionOrderBy() throws Exception {
+ String input = "(select intkey from bqt1.smalla limit 50, 100) union select intnum from bqt1.smalla order by intkey"; //$NON-NLS-1$
+ String output = "SELECT c_0 FROM (SELECT VIEW_FOR_LIMIT.*, ROWNUM ROWNUM_ FROM (SELECT g_1.IntKey AS c_0 FROM SmallA g_1) VIEW_FOR_LIMIT WHERE ROWNUM <= 150) WHERE ROWNUM_ > 50 UNION SELECT g_0.IntNum AS c_0 FROM SmallA g_0 ORDER BY c_0 NULLS FIRST"; //$NON-NLS-1$
+
+ CommandBuilder commandBuilder = new CommandBuilder(FakeMetadataFactory.exampleBQTCached());
+ Command obj = commandBuilder.getCommand(input, true, true);
+ this.helpTestVisitor(obj, EMPTY_CONTEXT, null, output);
+ }
+
}
Modified: branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java
===================================================================
--- branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -64,9 +64,9 @@
import org.teiid.connector.language.NamedTable;
import org.teiid.connector.language.Not;
import org.teiid.connector.language.OrderBy;
-import org.teiid.connector.language.Select;
import org.teiid.connector.language.ScalarSubquery;
import org.teiid.connector.language.SearchedCase;
+import org.teiid.connector.language.Select;
import org.teiid.connector.language.SortSpecification;
import org.teiid.connector.language.TableReference;
import org.teiid.connector.language.Comparison.Operator;
Modified: branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java
===================================================================
--- branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -38,14 +38,14 @@
import org.teiid.connector.api.ExecutionContext;
import org.teiid.connector.api.UpdateExecution;
import org.teiid.connector.basic.BasicExecution;
+import org.teiid.connector.language.ColumnReference;
import org.teiid.connector.language.Command;
import org.teiid.connector.language.Comparison;
import org.teiid.connector.language.Condition;
import org.teiid.connector.language.Delete;
-import org.teiid.connector.language.ColumnReference;
import org.teiid.connector.language.Expression;
+import org.teiid.connector.language.ExpressionValueSource;
import org.teiid.connector.language.Insert;
-import org.teiid.connector.language.ExpressionValueSource;
import org.teiid.connector.language.Literal;
import org.teiid.connector.language.SetClause;
import org.teiid.connector.language.Update;
@@ -282,7 +282,7 @@
private void executeUpdate()
throws ConnectorException {
- List<SetClause> updateList = ((Update)command).getChanges().getClauses();
+ List<SetClause> updateList = ((Update)command).getChanges();
Condition criteria = ((Update)command).getWhere();
// since we have the exact same processing rules for criteria
Modified: branches/JCA/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java
===================================================================
--- branches/JCA/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -38,16 +38,20 @@
import org.teiid.connector.api.ConnectorLogger;
import org.teiid.connector.language.Command;
import org.teiid.connector.language.Select;
+import org.teiid.connector.metadata.runtime.Column;
+import org.teiid.connector.metadata.runtime.MetadataStore;
import org.teiid.connector.metadata.runtime.RuntimeMetadata;
+import org.teiid.connector.metadata.runtime.Schema;
+import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.connector.metadata.runtime.Column.SearchType;
import org.teiid.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
+import org.teiid.metadata.CompositeMetadataStore;
+import org.teiid.metadata.TransformationMetadata;
import com.metamatrix.cdk.CommandBuilder;
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.FakeMetadataFacade;
-import com.metamatrix.query.unittest.FakeMetadataFactory;
-import com.metamatrix.query.unittest.FakeMetadataObject;
-import com.metamatrix.query.unittest.FakeMetadataStore;
+import com.metamatrix.query.unittest.RealMetadataFactory;
/**
* Test IQueryToLdapSearchParser.
@@ -264,13 +268,15 @@
return searchDetails;
}
- public static FakeMetadataFacade exampleLdap() {
+ public static QueryMetadataInterface exampleLdap() {
+ MetadataStore metadataStore = new MetadataStore();
+
// Create models
- FakeMetadataObject ldapModel = FakeMetadataFactory.createPhysicalModel("LdapModel"); //$NON-NLS-1$
+ Schema ldapModel = RealMetadataFactory.createPhysicalModel("LdapModel", metadataStore); //$NON-NLS-1$
// Create physical groups
- FakeMetadataObject table = FakeMetadataFactory.createPhysicalGroup("LdapModel.People", ldapModel); //$NON-NLS-1$
- table.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, "ou=people,dc=metamatrix,dc=com"); //$NON-NLS-1$
+ Table table = RealMetadataFactory.createPhysicalGroup("People", ldapModel); //$NON-NLS-1$
+ table.setNameInSource("ou=people,dc=metamatrix,dc=com"); //$NON-NLS-1$
// Create physical elements
String[] elemNames = new String[] {
@@ -280,32 +286,24 @@
DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING
};
- List cols = FakeMetadataFactory.createElements(table, elemNames, elemTypes);
+ List<Column> cols = RealMetadataFactory.createElements(table, elemNames, elemTypes);
// Set name in source on each column
String[] nameInSource = new String[] {
"uid", "cn" //$NON-NLS-1$ //$NON-NLS-2$
};
for(int i=0; i<2; i++) {
- FakeMetadataObject obj = (FakeMetadataObject) cols.get(i);
- obj.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, nameInSource[i]);
+ Column obj = cols.get(i);
+ obj.setNameInSource(nameInSource[i]);
}
// Set column-specific properties
- ((FakeMetadataObject) cols.get(0)).putProperty(FakeMetadataObject.Props.SELECT, Boolean.FALSE);
for(int i=1; i<2; i++) {
- ((FakeMetadataObject) cols.get(0)).putProperty(FakeMetadataObject.Props.SEARCHABLE_COMPARE, Boolean.FALSE);
- ((FakeMetadataObject) cols.get(0)).putProperty(FakeMetadataObject.Props.SEARCHABLE_LIKE, Boolean.FALSE);
+ cols.get(i).setSearchType(SearchType.Unsearchable);
}
- // Add all objects to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(ldapModel);
- store.addObject(table);
- store.addObjects(cols);
-
// Create the facade from the store
- return new FakeMetadataFacade(store);
+ return new TransformationMetadata(null, new CompositeMetadataStore(metadataStore), null, null);
}
}
Modified: branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java
===================================================================
--- branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -63,7 +63,7 @@
if (null != Ids && Ids.length > 0) {
List<JAXBElement> elements = new ArrayList<JAXBElement>();
- for (SetClause clause : ((Update)command).getChanges().getClauses()) {
+ for (SetClause clause : ((Update)command).getChanges()) {
ColumnReference element = clause.getSymbol();
Column column = element.getMetadataObject();
String val = ((Literal) clause.getValue())
Modified: branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java
===================================================================
--- branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -54,7 +54,9 @@
*/
public abstract class CriteriaVisitor extends HierarchyVisitor implements ICriteriaVisitor {
- protected static final String SELECT = "SELECT";
+ private static final String RESTRICTEDMULTISELECTPICKLIST = "restrictedmultiselectpicklist";
+ private static final String MULTIPICKLIST = "multipicklist";
+ protected static final String SELECT = "SELECT";
protected static final String FROM = "FROM";
protected static final String WHERE = "WHERE";
protected static final String ORDER_BY = "ORDER BY";
@@ -170,8 +172,7 @@
String columnName = lExpr.toString();
if (columnElementsByName.containsKey(columnName)) {
Column column = columnElementsByName.get(columnName);
- if (null != column.getNativeType()
- && (column.getNativeType().equals("multipicklist") || column.getNativeType().equals("restrictedmultiselectpicklist"))) {
+ if (MULTIPICKLIST.equalsIgnoreCase(column.getNativeType()) || RESTRICTEDMULTISELECTPICKLIST.equalsIgnoreCase(column.getNativeType())) {
appendMultiselectIn(column, criteria);
} else {
appendCriteria(criteria);
@@ -409,7 +410,7 @@
if (expression instanceof ColumnReference) {
Column element = ((ColumnReference)expression).getMetadataObject();
String nativeType = element.getNativeType();
- if (nativeType.equalsIgnoreCase("multipicklist") || nativeType.equalsIgnoreCase("restrictedmultiselectpicklist")) {
+ if (MULTIPICKLIST.equalsIgnoreCase(nativeType) || RESTRICTEDMULTISELECTPICKLIST.equalsIgnoreCase(nativeType)) {
result = true;
}
}
Modified: branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java
===================================================================
--- branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -32,9 +32,9 @@
import org.teiid.connector.language.ColumnReference;
import org.teiid.connector.language.DerivedColumn;
import org.teiid.connector.language.Expression;
+import org.teiid.connector.language.Limit;
import org.teiid.connector.language.NamedTable;
import org.teiid.connector.language.Select;
-import org.teiid.connector.language.TableReference;
import org.teiid.connector.metadata.runtime.Column;
import org.teiid.connector.metadata.runtime.RuntimeMetadata;
@@ -56,7 +56,6 @@
super(metadata);
}
-
public void visit(Select query) {
super.visit(query);
if (query.isDistinct()) {
@@ -88,28 +87,30 @@
}
++index;
}
+ }
+
+ @Override
+ public void visit(NamedTable obj) {
try {
- // could be a join here, but if so we do nothing and handle
- // it in visit(IJoin join).
- TableReference fromItem = query.getFrom().get(0);
- if(fromItem instanceof NamedTable) {
- table = ((NamedTable)fromItem).getMetadataObject();
- String supportsQuery = table.getProperties().get(Constants.SUPPORTS_QUERY);
- objectSupportsRetrieve = Boolean.valueOf(table.getProperties().get(Constants.SUPPORTS_RETRIEVE));
- if (!Boolean.valueOf(supportsQuery)) {
- throw new ConnectorException(table.getNameInSource() + " "
- + Messages.getString("CriteriaVisitor.query.not.supported"));
- }
- loadColumnMetadata((NamedTable)fromItem);
- }
+ table = obj.getMetadataObject();
+ String supportsQuery = table.getProperties().get(Constants.SUPPORTS_QUERY);
+ objectSupportsRetrieve = Boolean.valueOf(table.getProperties().get(Constants.SUPPORTS_RETRIEVE));
+ if (!Boolean.valueOf(supportsQuery)) {
+ throw new ConnectorException(table.getNameInSource() + " "
+ + Messages.getString("CriteriaVisitor.query.not.supported"));
+ }
+ loadColumnMetadata(obj);
} catch (ConnectorException ce) {
exceptions.add(ce);
}
- if(null != query.getLimit()) {
- limitClause.append(LIMIT).append(SPACE).append(query.getLimit().getRowLimit());
- }
}
-
+
+ @Override
+ public void visit(Limit obj) {
+ super.visit(obj);
+ limitClause.append(LIMIT).append(SPACE).append(obj.getRowLimit());
+ }
+
/*
* The SOQL SELECT command uses the following syntax: SELECT fieldList FROM
* objectType [WHERE The Condition Expression (WHERE Clause)] [ORDER BY]
Modified: branches/JCA/connectors/connector-salesforce/src/test/java/com/metamatrix/connector/salesforce/execution/visitors/TestVisitors.java
===================================================================
--- branches/JCA/connectors/connector-salesforce/src/test/java/com/metamatrix/connector/salesforce/execution/visitors/TestVisitors.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-salesforce/src/test/java/com/metamatrix/connector/salesforce/execution/visitors/TestVisitors.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -28,24 +28,30 @@
import org.junit.Test;
import org.teiid.connector.language.Select;
+import org.teiid.connector.metadata.runtime.Column;
+import org.teiid.connector.metadata.runtime.MetadataStore;
+import org.teiid.connector.metadata.runtime.Schema;
+import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.connector.metadata.runtime.Column.SearchType;
+import org.teiid.metadata.CompositeMetadataStore;
+import org.teiid.metadata.TransformationMetadata;
import com.metamatrix.cdk.api.TranslationUtility;
import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.unittest.FakeMetadataFacade;
-import com.metamatrix.query.unittest.FakeMetadataFactory;
-import com.metamatrix.query.unittest.FakeMetadataObject;
-import com.metamatrix.query.unittest.FakeMetadataStore;
+import com.metamatrix.query.metadata.QueryMetadataInterface;
+import com.metamatrix.query.unittest.RealMetadataFactory;
public class TestVisitors {
- public static FakeMetadataFacade exampleSalesforce() {
+ public static QueryMetadataInterface exampleSalesforce() {
+ MetadataStore store = new MetadataStore();
// Create models
- FakeMetadataObject salesforceModel = FakeMetadataFactory.createPhysicalModel("SalesforceModel"); //$NON-NLS-1$
+ Schema salesforceModel = RealMetadataFactory.createPhysicalModel("SalesforceModel", store); //$NON-NLS-1$
// Create Account group
- FakeMetadataObject accounTable = FakeMetadataFactory.createPhysicalGroup("SalesforceModel.Account", salesforceModel); //$NON-NLS-1$
- accounTable.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, "Account"); //$NON-NLS-1$
- accounTable.setExtensionProp("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
+ Table accounTable = RealMetadataFactory.createPhysicalGroup("Account", salesforceModel); //$NON-NLS-1$
+ accounTable.setNameInSource("Account"); //$NON-NLS-1$
+ accounTable.setProperty("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
// Create Account Columns
String[] acctNames = new String[] {
"ID", "Name", "Stuff", "Industry" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
@@ -54,54 +60,40 @@
DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING
};
- List<FakeMetadataObject> acctCols = FakeMetadataFactory.createElements(accounTable, acctNames, acctTypes);
- acctCols.get(2).putProperty(FakeMetadataObject.Props.NATIVE_TYPE, "multipicklist"); //$NON-NLS-1$
- acctCols.get(2).putProperty(FakeMetadataObject.Props.SEARCHABLE_COMPARE, false);
- acctCols.get(2).putProperty(FakeMetadataObject.Props.SEARCHABLE_LIKE, true);
+ List<Column> acctCols = RealMetadataFactory.createElements(accounTable, acctNames, acctTypes);
+ acctCols.get(2).setNativeType("multipicklist"); //$NON-NLS-1$
+ acctCols.get(2).setSearchType(SearchType.Like_Only);
// Set name in source on each column
String[] accountNameInSource = new String[] {
- "id", "AccountName", "Stuff", "Industry" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ "id", "AccountName", "Stuff", "Industry" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
};
for(int i=0; i<2; i++) {
- FakeMetadataObject obj = acctCols.get(i);
- obj.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, accountNameInSource[i]);
+ Column obj = acctCols.get(i);
+ obj.setNameInSource(accountNameInSource[i]);
}
- // Add all Account to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(salesforceModel);
- store.addObject(accounTable);
- store.addObjects(acctCols);
-
// Create Contact group
- FakeMetadataObject contactTable = FakeMetadataFactory.createPhysicalGroup("SalesforceModel.Contact", salesforceModel); //$NON-NLS-1$
- contactTable.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, "Contact"); //$NON-NLS-1$
- contactTable.setExtensionProp("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
+ Table contactTable = RealMetadataFactory.createPhysicalGroup("Contact", salesforceModel); //$NON-NLS-1$
+ contactTable.setNameInSource("Contact"); //$NON-NLS-1$
+ contactTable.setProperty("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
// Create Contact Columns
String[] elemNames = new String[] {
- "ContactID", "Name", "AccountId" //$NON-NLS-1$ //$NON-NLS-2$
+ "ContactID", "Name", "AccountId" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
};
String[] elemTypes = new String[] {
DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING
};
- List<FakeMetadataObject> contactCols = FakeMetadataFactory.createElements(contactTable, elemNames, elemTypes);
+ List<Column> contactCols = RealMetadataFactory.createElements(contactTable, elemNames, elemTypes);
// Set name in source on each column
String[] contactNameInSource = new String[] {
"id", "ContactName", "accountid" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
};
for(int i=0; i<2; i++) {
- FakeMetadataObject obj = contactCols.get(i);
- obj.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, contactNameInSource[i]);
+ Column obj = contactCols.get(i);
+ obj.setNameInSource(contactNameInSource[i]);
}
-
- // Add all Account to the store
- store.addObject(salesforceModel);
- store.addObject(contactTable);
- store.addObjects(contactCols);
-
- // Create the facade from the store
- return new FakeMetadataFacade(store);
+ return new TransformationMetadata(null, new CompositeMetadataStore(store), null, null);
}
private static TranslationUtility translationUtility = new TranslationUtility(exampleSalesforce());
Modified: branches/JCA/connectors/connector-text/src/test/java/com/metamatrix/connector/text/Util.java
===================================================================
--- branches/JCA/connectors/connector-text/src/test/java/com/metamatrix/connector/text/Util.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/connectors/connector-text/src/test/java/com/metamatrix/connector/text/Util.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -29,10 +29,19 @@
import org.mockito.Mockito;
import org.teiid.connector.api.ConnectorLogger;
+import org.teiid.connector.metadata.runtime.Column;
+import org.teiid.connector.metadata.runtime.MetadataStore;
+import org.teiid.connector.metadata.runtime.Schema;
+import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.metadata.CompositeMetadataStore;
+import org.teiid.metadata.TransformationMetadata;
import com.metamatrix.cdk.api.ConnectorHost;
-import com.metamatrix.cdk.unittest.FakeTranslationFactory;
+import com.metamatrix.cdk.api.TranslationUtility;
+import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.core.util.UnitTestUtil;
+import com.metamatrix.query.metadata.QueryMetadataInterface;
+import com.metamatrix.query.unittest.RealMetadataFactory;
public class Util {
@@ -62,8 +71,31 @@
Mockito.stub(config.getLogger()).toReturn(Mockito.mock(ConnectorLogger.class));
- ConnectorHost host = new ConnectorHost(new TextConnector(), config, FakeTranslationFactory.getInstance().getTextTranslationUtility());
+ ConnectorHost host = new ConnectorHost(new TextConnector(), config, new TranslationUtility(exampleText()));
return host;
}
+
+ public static QueryMetadataInterface exampleText() {
+ MetadataStore store = new MetadataStore();
+ // Create models
+ Schema lib = RealMetadataFactory.createPhysicalModel("Text", store); //$NON-NLS-1$
+ // Create physical groups
+ Table library = RealMetadataFactory.createPhysicalGroup("Library", lib); //$NON-NLS-1$
+
+ // Create physical elements
+ String[] elemNames = new String[] {
+ "ID", "PDate", "Author" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.DATE,
+ DataTypeManager.DefaultDataTypes.STRING };
+
+ List<Column> libe1 = RealMetadataFactory.createElements( library, elemNames, elemTypes);
+ int index = 0;
+ for (Column column : libe1) {
+ column.setNameInSource(String.valueOf(index++));
+ }
+ return new TransformationMetadata(null, new CompositeMetadataStore(store), null, null);
+ }
+
}
Modified: branches/JCA/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java
===================================================================
--- branches/JCA/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -424,7 +424,7 @@
Ordering direction = items.get(i).isAscending() ? Ordering.ASC: Ordering.DESC;
SortSpecification orderByItem = null;
- if(symbol instanceof AliasSymbol || (symbol.getOutputName() != null && symbol.getOutputName().indexOf(ElementSymbol.SEPARATOR) == -1)){
+ if(symbol instanceof AliasSymbol || !items.get(i).isUnrelated()){
orderByItem = new SortSpecification(direction, new ColumnReference(null, symbol.getOutputName(), null, symbol.getType()));
} else {
orderByItem = new SortSpecification(direction, translate(symbol));
@@ -564,12 +564,12 @@
translate(update.getCriteria()));
}
- org.teiid.connector.language.SetClauseList translate(SetClauseList setClauseList) throws MetaMatrixComponentException {
+ List<org.teiid.connector.language.SetClause> translate(SetClauseList setClauseList) throws MetaMatrixComponentException {
List<org.teiid.connector.language.SetClause> clauses = new ArrayList<org.teiid.connector.language.SetClause>(setClauseList.getClauses().size());
for (SetClause setClause : setClauseList.getClauses()) {
clauses.add(translate(setClause));
}
- return new org.teiid.connector.language.SetClauseList(clauses);
+ return clauses;
}
org.teiid.connector.language.SetClause translate(SetClause setClause) throws MetaMatrixComponentException {
Modified: branches/JCA/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- branches/JCA/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -364,7 +364,7 @@
if (workItem != null) {
workItem.removeLobStream(lobRequestId);
}
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
public ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId,
@@ -468,7 +468,7 @@
public ResultsFuture<?> closeRequest(long requestId) throws MetaMatrixProcessingException, MetaMatrixComponentException {
DQPWorkContext workContext = DQPWorkContext.getWorkContext();
closeRequest(workContext.getRequestID(requestId));
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
/**
@@ -713,7 +713,7 @@
public ResultsFuture<?> begin() throws XATransactionException {
String threadId = DQPWorkContext.getWorkContext().getConnectionID();
this.getTransactionService().begin(threadId);
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
// local txn
@@ -758,13 +758,13 @@
public ResultsFuture<?> end(MMXid xid, int flags) throws XATransactionException {
String threadId = DQPWorkContext.getWorkContext().getConnectionID();
this.getTransactionService().end(threadId, xid, flags, false);
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
// global txn
public ResultsFuture<?> forget(MMXid xid) throws XATransactionException {
String threadId = DQPWorkContext.getWorkContext().getConnectionID();
this.getTransactionService().forget(threadId, xid, false);
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
// global txn
@@ -811,7 +811,7 @@
throws XATransactionException {
String threadId = DQPWorkContext.getWorkContext().getConnectionID();
this.getTransactionService().start(threadId, xid, flags, timeout, false);
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
public MetadataResult getMetadata(long requestID)
Modified: branches/JCA/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
===================================================================
--- branches/JCA/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -1944,7 +1944,7 @@
@Test public void testDefect10809(){
String sql = "select * from LOB_TESTING_ONE where CLOB_COLUMN LIKE '%fff%'"; //$NON-NLS-1$
- helpResolve(helpParse(sql), FakeMetadataFactory.exampleLOB(), AnalysisRecord.createNonRecordingRecord());
+ helpResolve(helpParse(sql), FakeMetadataFactory.exampleBQTCached(), AnalysisRecord.createNonRecordingRecord());
}
@Test public void testNonAutoConversionOfLiteralIntegerToShort() throws Exception {
Modified: branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java
===================================================================
--- branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -46,7 +46,6 @@
import com.metamatrix.query.mapping.xml.MappingAttribute;
import com.metamatrix.query.mapping.xml.MappingDocument;
import com.metamatrix.query.mapping.xml.MappingElement;
-import com.metamatrix.query.mapping.xml.MappingRecursiveElement;
import com.metamatrix.query.mapping.xml.MappingSequenceNode;
import com.metamatrix.query.metadata.QueryMetadataInterface;
import com.metamatrix.query.sql.symbol.ElementSymbol;
@@ -2137,405 +2136,6 @@
return RealMetadataFactory.exampleBQT();
}
- public static FakeMetadataFacade exampleUQT() {
- // Create models
- FakeMetadataObject uqt2 = createPhysicalModel("UQT2"); //$NON-NLS-1$
-
- // Create physical groups
- FakeMetadataObject uqt2UpdateA = createPhysicalGroup("UQT2.UpdateA", uqt2); //$NON-NLS-1$
- FakeMetadataObject uqt2UpdateB = createPhysicalGroup("UQT2.UpdateB", uqt2); //$NON-NLS-1$
- FakeMetadataObject uqt2BlobTable = createPhysicalGroup("UQT2.BlobTable", uqt2); //$NON-NLS-1$
-
- // Create physical elements
- String[] elemNames = new String[] {
- "IntKey", "StringKey", //$NON-NLS-1$ //$NON-NLS-2$
- "IntNum", "StringNum", //$NON-NLS-1$ //$NON-NLS-2$
- "FloatNum", "LongNum", //$NON-NLS-1$ //$NON-NLS-2$
- "DoubleNum", "ByteNum", //$NON-NLS-1$ //$NON-NLS-2$
- "DateValue", "TimeValue", //$NON-NLS-1$ //$NON-NLS-2$
- "TimestampValue", "BooleanValue", //$NON-NLS-1$ //$NON-NLS-2$
- "CharValue", "ShortValue", //$NON-NLS-1$ //$NON-NLS-2$
- "BigIntegerValue", "BigDecimalValue", //$NON-NLS-1$ //$NON-NLS-2$
- "ObjectValue" }; //$NON-NLS-1$
- String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING,
- DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING,
- DataTypeManager.DefaultDataTypes.FLOAT, DataTypeManager.DefaultDataTypes.LONG,
- DataTypeManager.DefaultDataTypes.DOUBLE, DataTypeManager.DefaultDataTypes.BYTE,
- DataTypeManager.DefaultDataTypes.DATE, DataTypeManager.DefaultDataTypes.TIME,
- DataTypeManager.DefaultDataTypes.TIMESTAMP, DataTypeManager.DefaultDataTypes.BOOLEAN,
- DataTypeManager.DefaultDataTypes.CHAR, DataTypeManager.DefaultDataTypes.SHORT,
- DataTypeManager.DefaultDataTypes.BIG_INTEGER, DataTypeManager.DefaultDataTypes.BIG_DECIMAL,
- DataTypeManager.DefaultDataTypes.OBJECT };
-
- String[] blobElemNames = new String[] {
- "id", "BlobValue" //$NON-NLS-1$ //$NON-NLS-2$
- };
- String[] blobElemTypes = new String[] {DataTypeManager.DefaultDataTypes.STRING,
- DataTypeManager.DefaultDataTypes.BLOB
- };
-
- List uqt2UpdateAe = createElements(uqt2UpdateA, elemNames, elemTypes);
- List uqt2UpdateBe = createElements(uqt2UpdateB, elemNames, elemTypes);
- List uqt2BlobTablee = createElements(uqt2BlobTable, blobElemNames, blobElemTypes);
-
- // Add all objects to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(uqt2);
- store.addObject(uqt2UpdateA);
- store.addObjects(uqt2UpdateAe);
- store.addObject(uqt2UpdateB);
- store.addObjects(uqt2UpdateBe);
- store.addObject(uqt2BlobTable);
- store.addObjects(uqt2BlobTablee);
-
- // Create the facade from the store
- return new FakeMetadataFacade(store);
- }
-
- public static FakeMetadataFacade exampleLOB() {
- // Create models
- FakeMetadataObject lib = createPhysicalModel("Blob"); //$NON-NLS-1$
-
- // Create physical groups
- FakeMetadataObject library = createPhysicalGroup("LOB_TESTING_ONE", lib, true); //$NON-NLS-1$
-
- // Create physical elements
- String[] elemNames = new String[] {
- "CLOB_COLUMN", "BLOB_COLUMN", "KEY_EMULATOR" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.CLOB, DataTypeManager.DefaultDataTypes.BLOB,
- DataTypeManager.DefaultDataTypes.INTEGER };
-
- List libe1 = createElements( library, elemNames, elemTypes, true);
-
- // Add all objects to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(lib);
- store.addObject(library);
- store.addObjects(libe1);
-
- // Create the facade from the store
- return new FakeMetadataFacade(store);
- }
-
- public static FakeMetadataFacade exampleStream(boolean isStream) {
- // Create models
- FakeMetadataObject lib = createPhysicalModel("Blob"); //$NON-NLS-1$
-
- // Create physical groups
- FakeMetadataObject library = null;
- if (isStream) {
- library = createPhysicalGroup("STREAMEXAMPLE", lib, true); //$NON-NLS-1$
- } else {
- library = createPhysicalGroup("READEREAMPLE", lib, true); //$NON-NLS-1$
- }
- // Create physical elements
- String[] elemNames = new String[] {
- "KEY_EMULATOR", "DATA"}; //$NON-NLS-1$ //$NON-NLS-2$
-
- String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.OBJECT};
-
- List libe1 = createElements( library, elemNames, elemTypes, true);
-
- // Add all objects to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(lib);
- store.addObject(library);
- store.addObjects(libe1);
-
- // Create the facade from the store
- return new FakeMetadataFacade(store);
- }
-
- public static FakeMetadataFacade exampleBytes() {
- // Create models
- FakeMetadataObject lib = createPhysicalModel("Blob"); //$NON-NLS-1$
-
- // Create physical groups
- FakeMetadataObject library = createPhysicalGroup("BYTE_EXAMPLE", lib, true); //$NON-NLS-1$
-
- // Create physical elements
- String[] elemNames = new String[] {
- "KEY_EMULATOR", "DATA"}; //$NON-NLS-1$ //$NON-NLS-2$
-
- String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.OBJECT};
-
- List libe1 = createElements( library, elemNames, elemTypes, true);
-
- // Add all objects to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(lib);
- store.addObject(library);
- store.addObjects(libe1);
-
- // Create the facade from the store
- return new FakeMetadataFacade(store);
- }
-
- public static FakeMetadataFacade exampleText() {
- // Create models
- FakeMetadataObject lib = createPhysicalModel("Text"); //$NON-NLS-1$
-
- // Create physical groups
- FakeMetadataObject library = createPhysicalGroup("Text.Library", lib, true); //$NON-NLS-1$
-
- // Create physical elements
- String[] elemNames = new String[] {
- "ID", "PDate", "Author" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.DATE,
- DataTypeManager.DefaultDataTypes.STRING };
-
- List libe1 = createElements( library, elemNames, elemTypes, false);
-
- // Add all objects to the store
- FakeMetadataStore store = new FakeMetadataStore();
- store.addObject(lib);
- store.addObject(library);
- store.addObjects(libe1);
-
- // Create the facade from the store
- return new FakeMetadataFacade(store);
- }
-
- public static FakeMetadataFacade exampleXQT() {
- FakeMetadataStore store = new FakeMetadataStore();
- FakeMetadataFacade facade = new FakeMetadataFacade(store);
-
- // Create models
- FakeMetadataObject xqt = FakeMetadataFactory.createPhysicalModel("XQT"); //$NON-NLS-1$
- FakeMetadataObject xqttest = FakeMetadataFactory.createVirtualModel("xqttest"); //$NON-NLS-1$
-
- // Create physical groups
- //FakeMetadataObject xqtGroup = FakeMetadataFactory.createPhysicalGroup("xqt.data", xqt);
- FakeMetadataObject xqtGroup = FakeMetadataFactory.createPhysicalGroup("BQT1.SmallA", xqt); //$NON-NLS-1$
-
-
- // Create physical elements
- List xqtData = FakeMetadataFactory.createElements(xqtGroup,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- // Create virtual groups
- QueryNode rsQuery = new QueryNode("xqttest.data", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey=13"); //$NON-NLS-1$ //$NON-NLS-2$
- FakeMetadataObject rs = FakeMetadataFactory.createVirtualGroup("xqttest.data", xqttest, rsQuery); //$NON-NLS-1$
-
- QueryNode rsQuery2 = new QueryNode("xqttest.data2", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey = ?"); //$NON-NLS-1$ //$NON-NLS-2$
- rsQuery2.addBinding("xqttest.data.intNum"); //$NON-NLS-1$
- FakeMetadataObject rs2 = FakeMetadataFactory.createVirtualGroup("xqttest.data2", xqttest, rsQuery2); //$NON-NLS-1$
-
- QueryNode rsQuery3 = new QueryNode("xqttest.data3", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey = ?"); //$NON-NLS-1$ //$NON-NLS-2$
- rsQuery3.addBinding("xqttest.data2.intNum"); //$NON-NLS-1$
- FakeMetadataObject rs3 = FakeMetadataFactory.createVirtualGroup("xqttest.data3", xqttest, rsQuery3); //$NON-NLS-1$
-
- QueryNode rsQuery4 = new QueryNode("xqttest.data4", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey = ?"); //$NON-NLS-1$ //$NON-NLS-2$
- rsQuery4.addBinding("xqttest.data.intNum"); //$NON-NLS-1$
- FakeMetadataObject rs4 = FakeMetadataFactory.createVirtualGroup("xqttest.data4", xqttest, rsQuery4); //$NON-NLS-1$
-
- QueryNode rsQuery5 = new QueryNode("xqttest.data5", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey = ?"); //$NON-NLS-1$ //$NON-NLS-2$
- rsQuery5.addBinding("xqttest.data4.intNum"); //$NON-NLS-1$
- FakeMetadataObject rs5 = FakeMetadataFactory.createVirtualGroup("xqttest.data5", xqttest, rsQuery5); //$NON-NLS-1$
-
- QueryNode rsQuery6 = new QueryNode("xqttest.data6", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey = ?"); //$NON-NLS-1$ //$NON-NLS-2$
- rsQuery6.addBinding("xqttest.data5.intNum"); //$NON-NLS-1$
- FakeMetadataObject rs6 = FakeMetadataFactory.createVirtualGroup("xqttest.data6", xqttest, rsQuery6); //$NON-NLS-1$
-
-
- QueryNode rsQuery7 = new QueryNode("xqttest.data7", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA"); //$NON-NLS-1$ //$NON-NLS-2$
- FakeMetadataObject rs7 = FakeMetadataFactory.createVirtualGroup("xqttest.data7", xqttest, rsQuery7); //$NON-NLS-1$
-
- QueryNode rsQuery8 = new QueryNode("xqttest.data8", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey < ?"); //$NON-NLS-1$ //$NON-NLS-2$
- rsQuery8.addBinding("xqttest.data7.intNum"); //$NON-NLS-1$
- FakeMetadataObject rs8 = FakeMetadataFactory.createVirtualGroup("xqttest.data8", xqttest, rsQuery8); //$NON-NLS-1$
-
- // Create virtual elements
- List rsElements = FakeMetadataFactory.createElements(rs,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements2 = FakeMetadataFactory.createElements(rs2,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements3 = FakeMetadataFactory.createElements(rs3,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements4 = FakeMetadataFactory.createElements(rs4,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements5 = FakeMetadataFactory.createElements(rs5,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements6 = FakeMetadataFactory.createElements(rs6,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements7 = FakeMetadataFactory.createElements(rs7,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- List rsElements8 = FakeMetadataFactory.createElements(rs8,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
-
- FakeMetadataObject doc1 = FakeMetadataFactory.createVirtualGroup("xqttest.doc1", xqttest, createXQTPlanRecursive_5988()); //$NON-NLS-1$
- FakeMetadataObject doc1a = FakeMetadataFactory.createVirtualGroup("xqttest.doc1a", xqttest, createXQTPlanRecursive1a_5988()); //$NON-NLS-1$
-// FakeMetadataObject doc2 = FakeMetadataFactory.createVirtualGroup("xqttest.doc2", xqttest, createXQTPlanRecursiveSiblings());
-// FakeMetadataObject doc3 = FakeMetadataFactory.createVirtualGroup("xqttest.doc3", xqttest, createXQTPlanRecursive3_5988());
-// FakeMetadataObject doc4 = FakeMetadataFactory.createVirtualGroup("xqttest.doc4", xqttest, createXQTPlanChoice_6796());
-
- store.addObject(xqt);
- store.addObject(xqtGroup);
- store.addObjects(xqtData);
-
- store.addObject(xqttest);
- store.addObject(rs);
- store.addObject(rs2);
- store.addObject(rs3);
- store.addObject(rs4);
- store.addObject(rs5);
- store.addObject(rs6);
- store.addObject(rs7);
- store.addObject(rs8);
- store.addObjects(rsElements);
- store.addObjects(rsElements2);
- store.addObjects(rsElements3);
- store.addObjects(rsElements4);
- store.addObjects(rsElements5);
- store.addObjects(rsElements6);
- store.addObjects(rsElements7);
- store.addObjects(rsElements8);
-
- store.addObject(doc1);
- store.addObject(doc1a);
-// store.addObject(doc2);
-// store.addObject(doc3);
-// store.addObject(doc4);
-
- return facade;
- }
-
- public static FakeMetadataFacade exampleXQT1() {
- FakeMetadataStore store = new FakeMetadataStore();
- FakeMetadataFacade facade = new FakeMetadataFacade(store);
-
- // Create models
- FakeMetadataObject xqt = FakeMetadataFactory.createPhysicalModel("XQT"); //$NON-NLS-1$
- FakeMetadataObject xqttest = FakeMetadataFactory.createVirtualModel("xqttest"); //$NON-NLS-1$
-
- // Create physical groups
- //FakeMetadataObject xqtGroup = FakeMetadataFactory.createPhysicalGroup("xqt.data", xqt);
- FakeMetadataObject xqtGroup = FakeMetadataFactory.createPhysicalGroup("BQT1.SmallA", xqt); //$NON-NLS-1$
-
- // Create physical elements
- List xqtData = FakeMetadataFactory.createElements(xqtGroup,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- // Create virtual groups
- QueryNode rsQuery = new QueryNode("xqttest.data", "SELECT intKey, intNum, stringNum FROM BQT1.SmallA WHERE intKey=13"); //$NON-NLS-1$ //$NON-NLS-2$
- FakeMetadataObject rs = FakeMetadataFactory.createVirtualGroup("xqttest.data", xqttest, rsQuery); //$NON-NLS-1$
-
- // Create virtual elements
- List rsElements = FakeMetadataFactory.createElements(rs,
- new String[] { "intKey", "intNum", "stringNum" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING });
-
- FakeMetadataObject doc1 = FakeMetadataFactory.createVirtualGroup("xqttest.doc1", xqttest, createBQTDocTest_Plan()); //$NON-NLS-1$
-
- store.addObject(xqt);
- store.addObject(xqtGroup);
- store.addObjects(xqtData);
-
- store.addObject(xqttest);
- store.addObject(rs);
- store.addObjects(rsElements);
- store.addObject(doc1);
-
- return facade;
- }
-
- /**
- * Method createXQTPlanRecursive.
- * @return Object
- */
- private static MappingDocument createXQTPlanRecursive_5988() {
- MappingDocument doc = new MappingDocument(true);
- MappingElement root = doc.addChildElement(new MappingElement("recursiveTest")); //$NON-NLS-1$
-
- MappingElement src1 = root.addChildElement(new MappingElement("src")); //$NON-NLS-1$
- src1.setSource("xqttest.data");//$NON-NLS-1$
-
- MappingSequenceNode seq1 = src1.addSequenceNode(new MappingSequenceNode());
- seq1.addChildElement(new MappingElement("key", "xqttest.data.intKey")); //$NON-NLS-1$ //$NON-NLS-2$
- seq1.addChildElement(new MappingElement("data", "xqttest.data.intNum")); //$NON-NLS-1$ //$NON-NLS-2$
-
- MappingElement src2 = seq1.addChildElement(new MappingElement("srcNested")); //$NON-NLS-1$
- src2.setSource("xqttest.data2");//$NON-NLS-1$
-
- MappingSequenceNode seq2 = src2.addSequenceNode(new MappingSequenceNode());
- seq2.addChildElement(new MappingElement("key", "xqttest.data2.intKey")); //$NON-NLS-1$ //$NON-NLS-2$
- seq2.addChildElement(new MappingElement("data", "xqttest.data2.intNum")); //$NON-NLS-1$ //$NON-NLS-2$
-
- MappingElement recursive = seq2.addChildElement(new MappingRecursiveElement("srcNestedRecursive", "xqttest.data2")); //$NON-NLS-1$ //$NON-NLS-2$
- recursive.setSource("xqttest.data3");//$NON-NLS-1$
-
- return doc;
- }
-
- /**
- * Method createXQTPlanRecursive.
- * @return Object
- */
- private static MappingDocument createXQTPlanRecursive1a_5988() {
-
- MappingDocument doc = new MappingDocument(true);
- MappingElement root = doc.addChildElement(new MappingElement("recursiveTest")); //$NON-NLS-1$
-
- MappingElement src1 = root.addChildElement(new MappingElement("src")); //$NON-NLS-1$
- src1.setSource("xqttest.data");//$NON-NLS-1$
-
- MappingSequenceNode seq1 = src1.addSequenceNode(new MappingSequenceNode());
- seq1.addChildElement(new MappingElement("key", "xqttest.data.intKey")); //$NON-NLS-1$ //$NON-NLS-2$
- seq1.addChildElement(new MappingElement("data", "xqttest.data.intNum")); //$NON-NLS-1$ //$NON-NLS-2$
-
- MappingElement src2 = seq1.addChildElement(new MappingElement("srcNested")); //$NON-NLS-1$
- src2.setSource("xqttest.data2");//$NON-NLS-1$
-
- MappingSequenceNode seq2 = src2.addSequenceNode(new MappingSequenceNode());
- seq2.addChildElement(new MappingElement("key", "xqttest.data2.intKey")); //$NON-NLS-1$ //$NON-NLS-2$
- seq2.addChildElement(new MappingElement("data", "xqttest.data2.intNum")); //$NON-NLS-1$ //$NON-NLS-2$
-
- MappingElement recursive = seq2.addChildElement(new MappingRecursiveElement("srcRecursive", "xqttest.data2")); //$NON-NLS-1$ //$NON-NLS-2$
- recursive.setSource("xqttest.data3");//$NON-NLS-1$
-
- // was not being used
-// MappingRecursiveElement src4 = new MappingRecursiveElement("srcRecursive", "xqttest.data"); //$NON-NLS-1$ //$NON-NLS-2$
-// src4.setSource("xqttest.data4"); //$NON-NLS-1$
- return doc;
- }
-
- /**
- * Method createXQTPlanRecursive.
- * @return Object
- */
- private static MappingDocument createBQTDocTest_Plan() {
- MappingDocument doc = new MappingDocument(false);
- MappingElement root = doc.addChildElement(new MappingElement("BQTDocTest")); //$NON-NLS-1$
-
- MappingElement src1 = root.addChildElement(new MappingElement("src")); //$NON-NLS-1$
- src1.setSource("xqttest.data");//$NON-NLS-1$
-
- MappingSequenceNode seq1 = src1.addSequenceNode(new MappingSequenceNode());
- seq1.addChildElement(new MappingElement("key", "xqttest.data.intKey")); //$NON-NLS-1$ //$NON-NLS-2$
- seq1.addChildElement(new MappingElement("data", "xqttest.data.intNum")); //$NON-NLS-1$ //$NON-NLS-2$
- return doc;
- }
-
public static FakeMetadataFacade exampleSymphony() {
// Create models
FakeMetadataObject model = createPhysicalModel("COMPLEX"); //$NON-NLS-1$
Modified: branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/RealMetadataFactory.java
===================================================================
--- branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/RealMetadataFactory.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/engine/src/test/java/com/metamatrix/query/unittest/RealMetadataFactory.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -81,6 +81,10 @@
Table bqt3MediumA = createPhysicalGroup("MediumA", bqt3); //$NON-NLS-1$
Table bqt3MediumB = createPhysicalGroup("MediumB", bqt3); //$NON-NLS-1$
Table lobTable = createPhysicalGroup("LobTbl", lob); //$NON-NLS-1$
+ Table library = createPhysicalGroup("LOB_TESTING_ONE", lob); //$NON-NLS-1$
+
+ createElements( library, new String[] { "CLOB_COLUMN", "BLOB_COLUMN", "KEY_EMULATOR" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ new String[] { DataTypeManager.DefaultDataTypes.CLOB, DataTypeManager.DefaultDataTypes.BLOB, DataTypeManager.DefaultDataTypes.INTEGER });
// Create virtual groups
QueryNode vqtn1 = new QueryNode("VQT.SmallA", "SELECT * FROM BQT1.SmallA"); //$NON-NLS-1$ //$NON-NLS-2$
Modified: branches/JCA/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestUpdateImpl.java
===================================================================
--- branches/JCA/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestUpdateImpl.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestUpdateImpl.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -63,7 +63,7 @@
}
public void testGetChanges() throws Exception {
- List changes = example().getChanges().getClauses();
+ List changes = example().getChanges();
assertNotNull(changes);
assertEquals(4, changes.size());
}
Modified: branches/JCA/runtime/src/main/java/org/teiid/transport/LogonImpl.java
===================================================================
--- branches/JCA/runtime/src/main/java/org/teiid/transport/LogonImpl.java 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/runtime/src/main/java/org/teiid/transport/LogonImpl.java 2010-02-28 02:38:06 UTC (rev 1881)
@@ -122,7 +122,7 @@
public ResultsFuture<?> logoff() throws InvalidSessionException {
this.service.closeSession(DQPWorkContext.getWorkContext().getSessionId());
DQPWorkContext.getWorkContext().reset();
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
public ResultsFuture<?> ping() throws InvalidSessionException,MetaMatrixComponentException {
@@ -132,7 +132,7 @@
if (id != -1) {
this.service.pingServer(id);
}
- return null;
+ return ResultsFuture.NULL_FUTURE;
}
@Override
Modified: branches/JCA/test-integration/pom.xml
===================================================================
--- branches/JCA/test-integration/pom.xml 2010-02-27 13:43:10 UTC (rev 1880)
+++ branches/JCA/test-integration/pom.xml 2010-02-28 02:38:06 UTC (rev 1881)
@@ -133,6 +133,6 @@
<modules>
<module>common</module>
- <module>db</module>
+ <!-- <module>db</module> -->
</modules>
</project>
\ No newline at end of file
More information about the teiid-commits
mailing list