diff --git a/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java b/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java index 8b41979cbd..91fbdd4bff 100644 --- a/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java +++ b/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java @@ -171,8 +171,6 @@ public static int getLevel(String level) throws TeiidProcessingException { private Map> systemTables = new HashMap>(); private Map> systemAdminTables = new HashMap>(); - private int i; - public DataTierManagerImpl(DQPCore requestMgr, BufferManager bufferMgr, boolean detectChangeEvents) { this.requestMgr = requestMgr; this.bufferManager = bufferMgr; @@ -356,7 +354,7 @@ public void fillRow(List row, VDBMetaData record, VDBMetaData vdb, TransformationMetadata metadata, CommandContext cc, SimpleIterator iter) { row.add(record.getName()); - row.add(record.getVersion()); + row.add(String.valueOf(record.getVersion())); } }); name = SystemTables.PROCEDUREPARAMS.name(); diff --git a/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java b/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java index fd387e6ad6..4ec53eb236 100644 --- a/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java +++ b/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java @@ -29,6 +29,7 @@ import java.sql.ParameterMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; @@ -326,4 +327,20 @@ public void onComplete(Statement s) { assertEquals(0, s.executeUpdate("call logMsg('DEBUG', 'org.teiid.foo', 'hello world')")); } + @Test public void testExpectedTypes() throws Exception { + ResultSet rs = this.internalConnection.createStatement().executeQuery("select name from tables where schemaname in ('SYS', 'SYSADMIN')"); + while (rs.next()) { + String name = rs.getString(1); + System.out.println(name); + ResultSet rs1 = this.internalConnection.createStatement().executeQuery("select * from " + name + " limit 1"); + ResultSetMetaData metadata = rs1.getMetaData(); + if (rs1.next()) { + for (int i = 1; i <= metadata.getColumnCount(); i++) { + Object o = rs1.getObject(i); + assertTrue("Type mismatch for " + name + " " + metadata.getColumnName(i), o == null || Class.forName(metadata.getColumnClassName(i)).isAssignableFrom(o.getClass())); + } + } + } + } + }