Skip to content

Commit

Permalink
TEIID-2437 fixing type mismatch in sys.virtualdatabases
Browse files Browse the repository at this point in the history
  • Loading branch information
shawkins committed Mar 16, 2013
1 parent 3dd22e9 commit 18f1fb7
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
Expand Up @@ -171,8 +171,6 @@ public static int getLevel(String level) throws TeiidProcessingException {
private Map<SystemTables, BaseExtractionTable<?>> systemTables = new HashMap<SystemTables, BaseExtractionTable<?>>();
private Map<SystemAdminTables, BaseExtractionTable<?>> systemAdminTables = new HashMap<SystemAdminTables, BaseExtractionTable<?>>();

private int i;

public DataTierManagerImpl(DQPCore requestMgr, BufferManager bufferMgr, boolean detectChangeEvents) {
this.requestMgr = requestMgr;
this.bufferManager = bufferMgr;
Expand Down Expand Up @@ -356,7 +354,7 @@ public void fillRow(List<Object> row, VDBMetaData record,
VDBMetaData vdb, TransformationMetadata metadata,
CommandContext cc, SimpleIterator<VDBMetaData> iter) {
row.add(record.getName());
row.add(record.getVersion());
row.add(String.valueOf(record.getVersion()));
}
});
name = SystemTables.PROCEDUREPARAMS.name();
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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()));
}
}
}
}

}

0 comments on commit 18f1fb7

Please sign in to comment.