db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frank Jakop (JIRA)" <j...@apache.org>
Subject [jira] Created: (DDLUTILS-246) JdbcModelReader merges metadata between tables
Date Wed, 01 Apr 2009 09:01:13 GMT
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.


Mime
View raw message