db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Damien Trog (JIRA)" <j...@apache.org>
Subject [jira] Created: (DDLUTILS-237) SqlBuilder does not shorten the name of columns in references in foreignkeys
Date Sat, 17 Jan 2009 16:39:59 GMT
SqlBuilder does not shorten the name of columns in references in foreignkeys
----------------------------------------------------------------------------

                 Key: DDLUTILS-237
                 URL: https://issues.apache.org/jira/browse/DDLUTILS-237
             Project: DdlUtils
          Issue Type: Bug
          Components: Core (No specific database)
    Affects Versions: 1.0
         Environment: Tested with Postgresql
            Reporter: Damien Trog
            Assignee: Thomas Dudziak


Sqlbuilder shortens the names of columns and tables corresponding to the length found in PlatformInfo.
When writing the column names in the References of the ForeignKeys this shortening is not
applied. This leads to invalid foreignkeys when your column name was longer than the max size.

I have applied a fix locally in the source. This is what I changed in SqlBuilder class:

    protected void writeForeignReferences(ForeignKey key) throws IOException
    {
        for (int idx = 0; idx < key.getReferenceCount(); idx++)
        {
            if (idx > 0)
            {
                print(", ");
            }
            // FIXME added this myself to prevent foreign keys references having too long
columnname lenght
            printIdentifier(shortenName(key.getReference(idx).getForeignColumnName(),getMaxColumnNameLength()));
        }
    }

    /**
     * Writes a list of local references for the given foreign key.
     * 
     * @param key The foreign key
     */
    protected void writeLocalReferences(ForeignKey key) throws IOException
    {
        for (int idx = 0; idx < key.getReferenceCount(); idx++)
        {
            if (idx > 0)
            {
                print(", ");
            }
            // FIXME same
            printIdentifier(shortenName(key.getReference(idx).getLocalColumnName(), getMaxColumnNameLength()));
        }
    }


-- 
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