teiid SVN: r2658 - branches/7.1.x/engine/src/test/java/org/teiid/query/validator.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-10-18 15:03:20 -0400 (Mon, 18 Oct 2010)
New Revision: 2658
Modified:
branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java
Log:
updating test to ensure that the nested procedure gets validated
Modified: branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java 2010-10-18 15:23:08 UTC (rev 2657)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java 2010-10-18 19:03:20 UTC (rev 2658)
@@ -39,6 +39,7 @@
import org.junit.Test;
import org.teiid.api.exception.query.QueryMetadataException;
import org.teiid.api.exception.query.QueryResolverException;
+import org.teiid.api.exception.query.QueryValidatorException;
import org.teiid.client.metadata.ParameterInfo;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidException;
@@ -56,7 +57,6 @@
import org.teiid.query.sql.lang.Command;
import org.teiid.query.sql.lang.ProcedureContainer;
import org.teiid.query.sql.lang.SPParameter;
-import org.teiid.query.sql.proc.CreateUpdateProcedureCommand;
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.sql.visitor.SQLStringVisitor;
@@ -381,37 +381,39 @@
QueryMetadataInterface metadata = FakeMetadataFactory.exampleUpdateProc(procedureType, procedure);
try {
-
- Command command = helpResolve(userUpdateStr, metadata);
- //System.out.println(command.printCommandTree());
- ValidatorReport report = Validator.validate(command, metadata);
- //System.out.println("\nReport = \n" + report);
-
- // Get invalid objects from report
- Collection actualObjs = new ArrayList();
- report.collectInvalidObjects(actualObjs);
- if(actualObjs.size() > 0) {
- fail("Expected no failures but got some: " + report.getFailureMessage()); //$NON-NLS-1$
- }
+ validateProcedure(userUpdateStr, metadata);
} catch(TeiidException e) {
throw new TeiidRuntimeException(e);
}
}
+
+ private void validateProcedure(String userUpdateStr,
+ QueryMetadataInterface metadata) throws QueryResolverException,
+ QueryMetadataException, TeiidComponentException,
+ QueryValidatorException {
+ ProcedureContainer command = (ProcedureContainer)helpResolve(userUpdateStr, metadata);
+
+ Command proc = QueryResolver.expandCommand(command, metadata, AnalysisRecord.createNonRecordingRecord());
+
+ ValidatorReport report = Validator.validate(proc, metadata);
+ if(report.hasItems()) {
+ throw new QueryValidatorException(report.getFailureMessage());
+ }
+
+ report = Validator.validate(command, metadata);
+ if(report.hasItems()) {
+ throw new QueryValidatorException(report.getFailureMessage());
+ }
+ }
private void helpFailProcedure(String procedure, String userUpdateStr, String procedureType) {
QueryMetadataInterface metadata = FakeMetadataFactory.exampleUpdateProc(procedureType, procedure);
try {
-
- ProcedureContainer command = (ProcedureContainer)helpResolve(userUpdateStr, metadata);
- CreateUpdateProcedureCommand cmd = (CreateUpdateProcedureCommand)QueryResolver.expandCommand(command, metadata, null);
- ValidatorReport report = Validator.validate(cmd, metadata);
-
- // Get invalid objects from report
- Collection actualObjs = new ArrayList();
- report.collectInvalidObjects(actualObjs);
- assertTrue("Expected some failures but got none for procedure = " + procedure, !actualObjs.isEmpty()); //$NON-NLS-1$
+ validateProcedure(userUpdateStr, metadata);
+ fail("Expected failures for " + procedure);
+ } catch (QueryValidatorException e) {
} catch(TeiidException e) {
throw new RuntimeException(e);
}
13 years, 6 months
teiid SVN: r2657 - in branches/7.1.x: engine/src/main/java/org/teiid/dqp/internal/process and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-10-18 11:23:08 -0400 (Mon, 18 Oct 2010)
New Revision: 2657
Modified:
branches/7.1.x/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
Log:
TEIID-1283 minor updates to client batching logic
Modified: branches/7.1.x/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java
===================================================================
--- branches/7.1.x/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java 2010-10-18 15:08:14 UTC (rev 2656)
+++ branches/7.1.x/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java 2010-10-18 15:23:08 UTC (rev 2657)
@@ -336,8 +336,7 @@
*/
public List getCurrentRecord() throws SQLException {
checkClosed();
- List wholeRecord = batchResults.getCurrentRow();
- return wholeRecord.subList(0, wholeRecord.size() - getOffset());
+ return batchResults.getCurrentRow();
}
/*
* @see java.sql.ResultSet#getType()
@@ -1062,6 +1061,9 @@
* @throws SQLException
*/
public boolean isAfterLast() throws SQLException {
+ if (getFinalRowNumber() == -1) {
+ return false;
+ }
// return true if the current row has a next row
// it is also not the last
return !hasNext() && this.getAbsoluteRowNumber() > BEFORE_FIRST_ROW && this.getAbsoluteRowNumber() > getFinalRowNumber();
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2010-10-18 15:08:14 UTC (rev 2656)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2010-10-18 15:23:08 UTC (rev 2657)
@@ -422,7 +422,7 @@
//TODO: support fetching more than 1 batch
boolean fromBuffer = false;
- if (batch == null || !(batch.containsRow(this.begin))) {
+ if (batch == null || !(batch.containsRow(this.begin) || (batch.getTerminationFlag() && batch.getEndRow() <= this.begin))) {
if (savedBatch != null && savedBatch.containsRow(this.begin)) {
batch = savedBatch;
} else {
13 years, 6 months
teiid SVN: r2656 - branches/7.1.x/documentation/reference/src/main/docbook/en-US/content.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-10-18 11:08:14 -0400 (Mon, 18 Oct 2010)
New Revision: 2656
Modified:
branches/7.1.x/documentation/reference/src/main/docbook/en-US/content/translators.xml
Log:
TEIID-1255
Modified: branches/7.1.x/documentation/reference/src/main/docbook/en-US/content/translators.xml
===================================================================
--- branches/7.1.x/documentation/reference/src/main/docbook/en-US/content/translators.xml 2010-10-15 18:32:06 UTC (rev 2655)
+++ branches/7.1.x/documentation/reference/src/main/docbook/en-US/content/translators.xml 2010-10-18 15:08:14 UTC (rev 2656)
@@ -1276,7 +1276,15 @@
You must deploy a data source for each source defined.
</para>
</note>
-
+
+ <note>
+ <para>
+ If you would like to use "SOURCE_NAME" in your transformations to control which sources are accessed or updated,
+ you would manually need to add this extra column on your view table in
+ the Designer. This column will not be automatically added on the source table, when you import
+ the medata from source.
+ </para>
+ </note>
</section>
</chapter>
\ No newline at end of file
13 years, 6 months
teiid SVN: r2655 - in branches/7.1.x: connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc and 6 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-10-15 14:32:06 -0400 (Fri, 15 Oct 2010)
New Revision: 2655
Modified:
branches/7.1.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java
branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/LanguageBridgeFactory.java
branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/AliasGenerator.java
branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestInlineViewImpl.java
branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestOrderByImpl.java
branches/7.1.x/engine/src/test/java/org/teiid/query/optimizer/relational/TestAliasGenerator.java
branches/7.1.x/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java
Log:
TEIID-1305 fix to ensure that order by contains actual column references if a source doesn't support select expressions. While modeshape supports select aliases, we currently just look at supportsSelectExpressions to determine if aliasing should be used. there is also still a lurking issue with set query order by if supportsSelectExpressions is false
Modified: branches/7.1.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
===================================================================
--- branches/7.1.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -243,5 +243,10 @@
public boolean supportsIntersect() {
return true;
}
+
+ @Override
+ public boolean supportsSetQueryOrderBy() {
+ return false;
+ }
}
Modified: branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java
===================================================================
--- branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -377,9 +377,9 @@
}
@Test public void testVisitISelectWithComment() throws Exception {
- String expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+ String expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC"; //$NON-NLS-1$
assertEquals(expected, getStringWithContext(TestQueryImpl.example(false)));
- expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+ expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC"; //$NON-NLS-1$
assertEquals(expected, getStringWithContext(TestQueryImpl.example(true)));
}
Modified: branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
===================================================================
--- branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -731,7 +731,7 @@
@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) WHERE ROWNUM <= 100) x GROUP BY x.stringkey"; //$NON-NLS-1$
+ String output = "SELECT MAX(x.intkey), x.stringkey FROM (SELECT * FROM (SELECT SmallA.IntKey, SmallA.StringKey FROM SmallA ORDER BY SmallA.IntKey) WHERE ROWNUM <= 100) x GROUP BY x.stringkey"; //$NON-NLS-1$
helpTestVisitor(FakeMetadataFactory.exampleBQTCached(),
input,
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/LanguageBridgeFactory.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/LanguageBridgeFactory.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/LanguageBridgeFactory.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -167,7 +167,7 @@
}
result.setLeftQuery(translate(union.getLeftQuery()));
result.setRightQuery(translate(union.getRightQuery()));
- result.setOrderBy(translate(union.getOrderBy()));
+ result.setOrderBy(translate(union.getOrderBy(), true));
result.setLimit(translate(union.getLimit()));
return result;
}
@@ -207,7 +207,7 @@
Select q = new Select(translatedSymbols, query
.getSelect().isDistinct(), items,
translate(query.getCriteria()), translate(query.getGroupBy()),
- translate(query.getHaving()), translate(query.getOrderBy()));
+ translate(query.getHaving()), translate(query.getOrderBy(), false));
q.setLimit(translate(query.getLimit()));
return q;
}
@@ -417,7 +417,7 @@
return new org.teiid.language.GroupBy(translatedItems);
}
- public org.teiid.language.OrderBy translate(OrderBy orderBy) {
+ public org.teiid.language.OrderBy translate(OrderBy orderBy, boolean set) {
if(orderBy == null){
return null;
}
@@ -428,10 +428,10 @@
Ordering direction = items.get(i).isAscending() ? Ordering.ASC: Ordering.DESC;
SortSpecification orderByItem = null;
- if(symbol instanceof AliasSymbol || !items.get(i).isUnrelated()){
+ if(items.get(i).isUnrelated() || (!set && symbol instanceof ElementSymbol)){
+ orderByItem = new SortSpecification(direction, translate(symbol));
+ } else {
orderByItem = new SortSpecification(direction, new ColumnReference(null, symbol.getOutputName(), null, symbol.getType()));
- } else {
- orderByItem = new SortSpecification(direction, translate(symbol));
}
orderByItem.setNullOrdering(items.get(i).getNullOrdering());
translatedItems.add(orderByItem);
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/AliasGenerator.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/AliasGenerator.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/optimizer/relational/AliasGenerator.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -263,7 +263,7 @@
*/
public void visit(Query obj) {
if (obj.getOrderBy() != null || obj.getLimit() != null) {
- visitor.namingContext.aliasColumns = true && !stripColumnAliases;
+ visitor.namingContext.aliasColumns = !stripColumnAliases;
}
visitNode(obj.getFrom());
visitNode(obj.getCriteria());
@@ -360,8 +360,10 @@
if (needsAlias) {
element = new AliasSymbol(element.getShortName(), (SingleElementSymbol)expr);
- obj.getOrderByItems().get(i).setSymbol(element);
+ } else if (expr instanceof ElementSymbol) {
+ element = (ElementSymbol)expr;
}
+ item.setSymbol(element);
element.setOutputName(name);
}
Modified: branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestInlineViewImpl.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestInlineViewImpl.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestInlineViewImpl.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -48,7 +48,7 @@
}
public void testGetQuery() throws Exception {
- assertEquals("SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC", example().getQuery().toString()); //$NON-NLS-1$
+ assertEquals("SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC", example().getQuery().toString()); //$NON-NLS-1$
}
}
Modified: branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestOrderByImpl.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestOrderByImpl.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/datamgr/TestOrderByImpl.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -22,33 +22,26 @@
package org.teiid.dqp.internal.datamgr;
+import static org.junit.Assert.*;
+
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
-import junit.framework.TestCase;
-
+import org.junit.Test;
import org.teiid.language.OrderBy;
import org.teiid.language.SortSpecification;
+import org.teiid.query.sql.symbol.ElementSymbol;
-public class TestOrderByImpl extends TestCase {
+public class TestOrderByImpl {
- /**
- * Constructor for TestOrderByImpl.
- * @param name
- */
- public TestOrderByImpl(String name) {
- super(name);
- }
-
public static org.teiid.query.sql.lang.OrderBy helpExample() {
- ArrayList elements = new ArrayList();
+ ArrayList<ElementSymbol> elements = new ArrayList<ElementSymbol>();
elements.add(TestElementImpl.helpExample("vm1.g1", "e1")); //$NON-NLS-1$ //$NON-NLS-2$
elements.add(TestElementImpl.helpExample("vm1.g1", "e2")); //$NON-NLS-1$ //$NON-NLS-2$
elements.add(TestElementImpl.helpExample("vm1.g1", "e3")); //$NON-NLS-1$ //$NON-NLS-2$
elements.add(TestElementImpl.helpExample("vm1.g1", "e4")); //$NON-NLS-1$ //$NON-NLS-2$
- ArrayList types = new ArrayList();
+ ArrayList<Boolean> types = new ArrayList<Boolean>();
types.add(Boolean.TRUE);
types.add(Boolean.FALSE);
types.add(Boolean.TRUE);
@@ -57,17 +50,13 @@
}
public static OrderBy example() throws Exception {
- return TstLanguageBridgeFactory.factory.translate(helpExample());
+ return TstLanguageBridgeFactory.factory.translate(helpExample(), false);
}
- public void testGetItems() throws Exception {
- List items = example().getSortSpecifications();
+ @Test public void testGetItems() throws Exception {
+ List<SortSpecification> items = example().getSortSpecifications();
assertNotNull(items);
assertEquals(4, items.size());
- for (Iterator i = items.iterator(); i.hasNext();) {
- assertTrue(i.next() instanceof SortSpecification);
- }
-
}
}
Modified: branches/7.1.x/engine/src/test/java/org/teiid/query/optimizer/relational/TestAliasGenerator.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/optimizer/relational/TestAliasGenerator.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/optimizer/relational/TestAliasGenerator.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -27,8 +27,8 @@
import org.junit.Test;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
+import org.teiid.dqp.internal.datamgr.LanguageBridgeFactory;
import org.teiid.query.metadata.QueryMetadataInterface;
-import org.teiid.query.optimizer.relational.AliasGenerator;
import org.teiid.query.parser.QueryParser;
import org.teiid.query.resolver.TestResolver;
import org.teiid.query.rewriter.QueryRewriter;
@@ -39,7 +39,7 @@
import org.teiid.query.sql.symbol.SingleElementSymbol;
import org.teiid.query.unittest.FakeMetadataFactory;
-
+@SuppressWarnings("nls")
public class TestAliasGenerator {
private Command helpTest(String sql,
@@ -159,7 +159,10 @@
@Test public void testStripAliases1() throws Exception {
String sql = "select intkey as a, stringkey as b from BQT1.SmallA ORDER BY a, b"; //$NON-NLS-1$
String expected = "SELECT BQT1.SmallA.intkey, BQT1.SmallA.stringkey FROM BQT1.SmallA ORDER BY BQT1.SmallA.intkey, BQT1.SmallA.stringkey"; //$NON-NLS-1$
- helpTest(sql, expected, false, true, FakeMetadataFactory.exampleBQTCached());
+ Command command = helpTest(sql, expected, false, true, FakeMetadataFactory.exampleBQTCached());
+ LanguageBridgeFactory lbf = new LanguageBridgeFactory(FakeMetadataFactory.exampleBQTCached());
+ org.teiid.language.Command c = lbf.translate(command);
+ assertEquals("SELECT SmallA.IntKey, SmallA.StringKey FROM SmallA ORDER BY SmallA.IntKey, SmallA.StringKey", c.toString());
}
}
Modified: branches/7.1.x/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java
===================================================================
--- branches/7.1.x/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java 2010-10-14 18:57:42 UTC (rev 2654)
+++ branches/7.1.x/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java 2010-10-15 18:32:06 UTC (rev 2655)
@@ -150,7 +150,7 @@
* Test for void visit(IExistsCriteria)
*/
@Test public void testVisitIExistsCriteria() throws Exception {
- String expected = "EXISTS (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+ String expected = "EXISTS (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC)"; //$NON-NLS-1$
assertEquals(expected, getString(TestExistsCriteriaImpl.example()));
}
@@ -278,7 +278,7 @@
* Test for void visit(IOrderBy)
*/
@Test public void testVisitIOrderBy() throws Exception {
- String expected = "ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+ String expected = "ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC"; //$NON-NLS-1$
assertEquals(expected, getString(TestOrderByImpl.example()));
}
@@ -294,7 +294,7 @@
* Test for void visit(IQuery)
*/
@Test public void testVisitIQuery() throws Exception {
- String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+ String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC"; //$NON-NLS-1$
assertEquals(expected, getString(TestQueryImpl.example(true)));
}
@@ -302,7 +302,7 @@
* Test for void visit(IScalarSubquery)
*/
@Test public void testVisitIScalarSubquery() throws Exception {
- String expected = "(SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+ String expected = "(SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC)"; //$NON-NLS-1$
assertEquals(expected, getString(TestScalarSubqueryImpl.example()));
}
@@ -318,9 +318,9 @@
* Test for void visit(ISelect)
*/
@Test public void testVisitISelect() throws Exception {
- String expected = "SELECT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+ String expected = "SELECT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC"; //$NON-NLS-1$
assertEquals(expected, getString(TestQueryImpl.example(false)));
- expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+ expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC"; //$NON-NLS-1$
assertEquals(expected, getString(TestQueryImpl.example(true)));
}
@@ -339,7 +339,7 @@
* Test for void visit(ISubqueryCompareCriteria)
*/
@Test public void testVisitISubqueryCompareCriteria() throws Exception {
- String expected = "g1.e1 > SOME (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+ String expected = "g1.e1 > SOME (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC)"; //$NON-NLS-1$
assertEquals(expected, getString(TestSubqueryCompareCriteriaImpl.example()));
}
@@ -347,12 +347,12 @@
* Test for void visit(ISubqueryInCriteria)
*/
@Test public void testVisitISubqueryInCriteria() throws Exception {
- String expected = "g1.e1 NOT IN (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+ String expected = "g1.e1 NOT IN (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC)"; //$NON-NLS-1$
assertEquals(expected, getString(TestSubqueryInCriteriaImpl.example()));
}
@Test public void testVisitIUnion1() throws Exception {
- String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC UNION SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC ORDER BY e1, e2 DESC, e3, e4 DESC";//$NON-NLS-1$
+ String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC UNION SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY g1.e1, g1.e2 DESC, g1.e3, g1.e4 DESC ORDER BY e1, e2 DESC, e3, e4 DESC";//$NON-NLS-1$
assertEquals(expected, getString(TestSetQueryImpl.example()));
}
13 years, 6 months
teiid SVN: r2654 - in branches/7.1.x: engine/src/main/java/org/teiid/query/sql and 2 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-10-14 14:57:42 -0400 (Thu, 14 Oct 2010)
New Revision: 2654
Modified:
branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html
branches/7.1.x/engine/src/main/java/org/teiid/query/sql/ProcedureReservedWords.java
branches/7.1.x/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java
branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties
Log:
TEIID-1294 additional procedure validation to clarify assignment syntax.
Modified: branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html 2010-10-14 16:21:44 UTC (rev 2653)
+++ branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html 2010-10-14 18:57:42 UTC (rev 2654)
@@ -51,8 +51,10 @@
<li>Overwriting an existing VDB will cause old connections to be terminated. Production systems should rely on VDB versioning.
<li>The jdbc:metamatrix JDBC URL prefix is no longer accepted. Use jdbc:teiid instead.
<li>Model visibility no longer restricts access to tables and procedures. Setting visible to false will only hide entries from system tables. Data roles should be used to restrict data access.
- <li>On Admin API "getWorkManagerStats" methods renamed to "getWorkerPoolStats". Also, "setRuntimeProperty" and "getProcesses" methods are not supported.
- <li>By default the "ENV" system function is now turned off. To enable it, edit the Teiid configuration file.
+ <li>Admin API "getWorkManagerStats" methods renamed to "getWorkerPoolStats". Also, "setRuntimeProperty" and "getProcesses" methods were removed.
+ <li>By default the "ENV" system function is now turned off. To enable it, edit the teiid-jboss-beans.xml configuration file.
+ <li>The use of VARIABLES.ROWCOUNT is now reserved. Use a different
+ <li>Direct assignments in virtual procedures using stored procedures (e.g. var = EXEC foo()) are only valid if the procedure has a return parameter and no result set.
</ul>
<h4>from 7.0</h4>
<ul>
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/sql/ProcedureReservedWords.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/sql/ProcedureReservedWords.java 2010-10-14 16:21:44 UTC (rev 2653)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/sql/ProcedureReservedWords.java 2010-10-14 18:57:42 UTC (rev 2654)
@@ -40,6 +40,8 @@
public static final String INPUTS = "INPUTS"; //$NON-NLS-1$
public static final String ROWS_UPDATED = "ROWS_UPDATED"; //$NON-NLS-1$
+
+ public static final String ROWCOUNT = "ROWCOUNT"; //$NON-NLS-1$
public static final String CHANGING = "CHANGING"; //$NON-NLS-1$
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java 2010-10-14 16:21:44 UTC (rev 2653)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java 2010-10-14 18:57:42 UTC (rev 2654)
@@ -81,6 +81,7 @@
import org.teiid.query.sql.lang.SetClauseList;
import org.teiid.query.sql.lang.SetCriteria;
import org.teiid.query.sql.lang.SetQuery;
+import org.teiid.query.sql.lang.StoredProcedure;
import org.teiid.query.sql.lang.SubqueryCompareCriteria;
import org.teiid.query.sql.lang.SubqueryContainer;
import org.teiid.query.sql.lang.SubqueryFromClause;
@@ -376,7 +377,16 @@
if(groupName.equals(ProcedureReservedWords.CHANGING) || groupName.equals(ProcedureReservedWords.INPUTS)) {
handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0012", ProcedureReservedWords.INPUTS, ProcedureReservedWords.CHANGING), obj); //$NON-NLS-1$
}
-
+
+ if (obj.getExpression() instanceof ScalarSubquery) {
+ ScalarSubquery ss = (ScalarSubquery)obj.getExpression();
+ if (ss.getCommand() instanceof StoredProcedure) {
+ StoredProcedure sp = (StoredProcedure)ss.getCommand();
+ if (sp.returnsResultSet() || !sp.returnsScalarValue()) {
+ handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.procedure_assigment"), obj); //$NON-NLS-1$
+ }
+ }
+ }
}
@Override
@@ -418,6 +428,8 @@
// varible cannot be one of the special variables
if(elementname.equals(ProcedureReservedWords.ROWS_UPDATED)) {
handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0017", new Object[] {ProcedureReservedWords.ROWS_UPDATED}), obj); //$NON-NLS-1$
+ } else if(elementname.equals(ProcedureReservedWords.ROWCOUNT)) {
+ handleValidationError(QueryPlugin.Util.getString("ERR.015.012.0017", new Object[] {ProcedureReservedWords.ROWCOUNT}), obj); //$NON-NLS-1$
}
visit((AssignmentStatement)obj);
Modified: branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties 2010-10-14 16:21:44 UTC (rev 2653)
+++ branches/7.1.x/engine/src/main/resources/org/teiid/query/i18n.properties 2010-10-14 18:57:42 UTC (rev 2654)
@@ -176,6 +176,7 @@
ERR.015.012.0010 = The query defining an updatable simple virtual group should select all the required elements in its FROM clause {0}
ERR.015.012.0011 = There must be exactly one projected symbol in the subcommand of an IN clause.
ERR.015.012.0012 = An AssignmentStatement cannot change the value of a {0} or {1} variable.
+ValidationVisitor.procedure_assigment = A procedure used in an assignment should have a return parameter. If result set or out parameter values are needed, please use a scalar subquery, e.g. (SELECT param FROM (EXEC proc(...)) X)
ERR.015.012.0016 = Variable {0} not assigned any value in this procedure.
ERR.015.012.0017 = Variables declared the procedure''s DeclareStatement cannot be one of the special variables: {0}, {1} and {2}.
ERR.015.012.0019 = TranslateCriteria cannot be used in on an if or while statement.
13 years, 6 months
teiid SVN: r2653 - branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util.
by teiid-commits@lists.jboss.org
Author: tejones
Date: 2010-10-14 12:21:44 -0400 (Thu, 14 Oct 2010)
New Revision: 2653
Modified:
branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
Log:
TEIID-982: Added ODBC mat view filter to MATVIEW query
Modified: branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
===================================================================
--- branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-10-14 15:54:18 UTC (rev 2652)
+++ branches/7.1.x/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-10-14 16:21:44 UTC (rev 2653)
@@ -232,7 +232,8 @@
public static interface Value {
public final static String STOP_NOW = "stopNow"; //$NON-NLS-1$
public final static String MAT_VIEW_QUERY = "select SchemaName, Name, TargetSchemaName, TargetName, " + //$NON-NLS-1$
- "Valid, LoadState, Updated, Cardinality from SYSADMIN.MATVIEWS"; //$NON-NLS-1$
+ "Valid, LoadState, Updated, Cardinality from SYSADMIN.MATVIEWS " + //$NON-NLS-1$
+ "where SchemaName != 'pg_catalog'"; //$NON-NLS-1$
public final static String MAT_VIEW_REFRESH = "exec SYSADMIN.refreshMatView('param1','param2');"; //$NON-NLS-1$
public final static String WAIT_UNTIL_FINISHED = "waitUntilFinished"; //$NON-NLS-1$
13 years, 6 months
teiid SVN: r2652 - branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-10-14 11:54:18 -0400 (Thu, 14 Oct 2010)
New Revision: 2652
Modified:
branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java
Log:
TEIID-1302 update to prevent indexing issues with older api versions.
Modified: branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java
===================================================================
--- branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java 2010-10-14 15:27:31 UTC (rev 2651)
+++ branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java 2010-10-14 15:54:18 UTC (rev 2652)
@@ -186,8 +186,7 @@
}
resultBatch = new ArrayList<List<Object>>();
- for(int resultIndex = 0; resultIndex < results.getSize(); resultIndex++) {
- SObject sObject = results.getRecords().get(resultIndex);
+ for(SObject sObject : results.getRecords()) {
List<Object[]> result = getObjectData(sObject);
for(Iterator<Object[]> i = result.iterator(); i.hasNext(); ) {
resultBatch.add(Arrays.asList(i.next()));
13 years, 6 months
teiid SVN: r2651 - branches/7.1.x/build/kits/jboss-container.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-10-14 11:27:31 -0400 (Thu, 14 Oct 2010)
New Revision: 2651
Modified:
branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html
Log:
TEIID-950 merging ENV function changes.
Modified: branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html 2010-10-14 15:18:55 UTC (rev 2650)
+++ branches/7.1.x/build/kits/jboss-container/teiid-releasenotes.html 2010-10-14 15:27:31 UTC (rev 2651)
@@ -34,7 +34,8 @@
<LI><B>Materialized View Performance</B> - materialized view tables will now automatically create and use non-unique secondary indexes for unique constraints and indexes defined on the view.
<LI><B>Binary Web Service Calls</B> - the ws translator now provides an invokeHttp procedure to return the blob contents and string content type of an http/https call.
<LI><B>Improved clustering support</B> - see the Admin Guide chapter on clustering.
- <LI><B>IPv6 support</B> - Teiid can started using IPv6 bind address and can be used with JDBC connection.
+ <LI><B>IPv6 support</B> - Teiid can started using IPv6 bind address and can be used with JDBC connection.
+ <LI><B>SESSION_ID</b> - A new system function "SESSION_ID" is added to the system function library.
</UL>
<h2><a name="Compatibility">Compatibility Issues</a></h2>
@@ -51,7 +52,7 @@
<li>The jdbc:metamatrix JDBC URL prefix is no longer accepted. Use jdbc:teiid instead.
<li>Model visibility no longer restricts access to tables and procedures. Setting visible to false will only hide entries from system tables. Data roles should be used to restrict data access.
<li>On Admin API "getWorkManagerStats" methods renamed to "getWorkerPoolStats". Also, "setRuntimeProperty" and "getProcesses" methods are not supported.
- <li>A new system function "session_id" is added to the system function library. By default "ENV" system function is now turned off. To enable it edit Teiid configuration file.
+ <li>By default the "ENV" system function is now turned off. To enable it, edit the Teiid configuration file.
</ul>
<h4>from 7.0</h4>
<ul>
13 years, 6 months
teiid SVN: r2650 - branches/7.1.x/console/src/main/java/org/teiid/rhq/admin.
by teiid-commits@lists.jboss.org
Author: tejones
Date: 2010-10-14 11:18:55 -0400 (Thu, 14 Oct 2010)
New Revision: 2650
Modified:
branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
Log:
TEIID-982: Fix ClassCastException when building mat view results
Modified: branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
===================================================================
--- branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-10-14 15:17:20 UTC (rev 2649)
+++ branches/7.1.x/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-10-14 15:18:55 UTC (rev 2650)
@@ -69,7 +69,7 @@
private static final MetaValueFactory metaValueFactory = MetaValueFactory
.getInstance();
- private static final String VDB_EXT = ".vdb";
+ private static final String VDB_EXT = ".vdb"; //$NON-NLS-1$
public DQPManagementView() {
}
@@ -330,7 +330,6 @@
operationResult.setContent(createReportResultListForMatViewQuery(
fieldNameList, sqlResultsObject.iterator()));
} else if (operationName.equals(VDB.Operations.RELOAD_MATVIEW)) {
- List<String> fieldNameList = operationResult.getFieldNameList();
MetaValue resultsMetaValue = reloadMaterializedView(connection,
formatVdbName(vdbName), Integer.parseInt(vdbVersion),
(String) valueMap.get(Operation.Value.MATVIEW_SCHEMA),
@@ -865,7 +864,7 @@
// Iterate through rows
while (objectIter.hasNext()) {
- ArrayList<String> columnValues = (ArrayList<String>) objectIter
+ ArrayList<Object> columnValues = (ArrayList<Object>) objectIter
.next();
Class cls = null;
13 years, 6 months