JdbcModelReader merges metadata between tables ----------------------------------------------
Key: DDLUTILS-246 URL: https://issues.apache.org/jira/browse/DDLUTILS-246 Project: DdlUtils Issue Type: Bug Components: Core (No specific database) Affects Versions: 1.0 Environment: Java 1.5, Oracle 8/9/10/11, DB2 8/9, MSSQL 2000/2005, possibly others Reporter: Frank Jakop Assignee: Thomas Dudziak Priority: Critical When reading the columns for a table, JdbcModelReader relies on metadata given by DatabaseMetaDataWrapper. Given two tables TABLE FOO_MATIC (COL1 INTEGER) TABLE FOOTMATIC (COL2 INTEGER, COL3 INTEGER) the returned columns for table FOO_MATIC is (COL1, COL2, COL3). No need to say, that subsequent queries on FOO_MATIC fail due to nonexistent columns COL2 and COL3. The reason for this behavior is that the underscore is interpreted as a wildcard character in DatabaseMetaData.getColumns(String,String), so both tables match the pattern FOO_MATIC. The workaround I use is to re-check the table name in JdbcModelReader.readColumns(DatabaseMetaDataWrapper,String) while (columnData.next()) { if (columnData.getString("TABLE_NAME").equals(tableName)) { Map values = readColumns(columnData, getColumnsForColumn()); columns.add(readColumn(metaData, values)); } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.