db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "CG Monroe (JIRA)" <j...@apache.org>
Subject [jira] Commented: (TORQUE-44) Column names in generated classes are uppercase
Date Thu, 14 Sep 2006 12:55:24 GMT
    [ http://issues.apache.org/jira/browse/TORQUE-44?page=comments#action_12434668 ] 
            
CG Monroe commented on TORQUE-44:
---------------------------------

Not preserviing case probably was a poor choice from a long time ago.  But it is the DEFACTO
Torque API standard.  IMHO, forcing changes in a point revision that dictate major API changes
and demostrated breaking of existing application code is a major NO-NO.  A point revision
changes like this should follow the physician credo of "Do no harm".

You might say, well it's just my code... but a lot of folks don't/won't use dev level code,
so what happens when it gets released?  Is this standard for Torque to tell folk they have
to rewrite code that's worked with every version of Torque since before 3.0?

One thing to consider is that the SQL Standard clearly states that column names are to be
case insensitive unless delimited.  So keeping the upper case as the DEFACTO standard only
effects SQL servers that are non-standard or in the case of some server, not configured to
support the standard.  

Yes, supporting more DB server modes is good. Yes, maintaining case from XML is probably a
good thing in some situation (but not all).   The point is that this fix has problems and
needs to be re-thought/re-done to "do no harm".

> Column names in generated classes are uppercase
> -----------------------------------------------
>
>                 Key: TORQUE-44
>                 URL: http://issues.apache.org/jira/browse/TORQUE-44
>             Project: Torque
>          Issue Type: Bug
>          Components: Generator
>    Affects Versions: 3.1, 3.1.1, 3.2
>            Reporter: Thoralf Rickert
>         Assigned To: Thomas Fischer
>             Fix For: 3.2.1
>
>         Attachments: patch.txt
>
>
> The generator creates constants for the column names in tables. The content of this constants
uses upper cases.
> For example if you have a table like:
> <table name="address">
>         <column name="class" javaName="aClass" primaryKey="true" required="true" size="2"
type="CHAR"/>
>         <column name="id" primaryKey="true" required="true" size="30" type="VARCHAR"/>
>         <column name="position" primaryKey="true" required="true" type="INTEGER"/>
>         <column name="name1" size="50" type="VARCHAR"/>
>         <column name="name2" size="50" type="VARCHAR"/>
>         <column name="name3" size="50" type="VARCHAR"/>
>         <column name="street" size="50" type="VARCHAR"/>
>         <column name="zipcode" size="25" type="VARCHAR"/>
>         <column name="city" size="60" type="VARCHAR"/>
>         <column name="phone" size="40" type="VARCHAR"/>
>         <column name="phone2" size="40" type="VARCHAR"/>
>         <column name="country" size="200" type="VARCHAR"/>
>         <column name="state" size="200" type="VARCHAR"/>
>         <column name="fax" size="40" type="VARCHAR"/>
>         <column name="email" size="150" type="VARCHAR"/>
> </table>
> The generator creates in the corresponding BaseAddressPeer the following constants.
> ...
>     static
>     {
>           CLASS = "address.CLASS";
>           ID = "address.ID";
>           POSITION = "address.POSITION";
>           NAME1 = "address.NAME1";
>           NAME2 = "address.NAME2";
>           NAME3 = "address.NAME3";
>           STREET = "address.STREET";
>           ZIPCODE = "address.ZIPCODE";
>           CITY = "address.CITY";
>           PHONE = "address.PHONE";
>           PHONE2 = "address.PHONE2";
>           COUNTRY = "address.COUNTRY";
>           STATE = "address.STATE";
>           FAX = "address.FAX";
>           EMAIL = "address.EMAIL";
>    ....
> but this variables should be for example "address.email".
> The AddressMapBuilder.doBuild() method creates the same uppercase mapping:
>   public void doBuild() throws TorqueException {
> ...
>     dbMap.addTable("address");
>     TableMap tMap = dbMap.getTable("address");
>     tMap.setPrimaryKeyMethod("none");
>     tMap.addPrimaryKey("address.CLASS", "" );
>     tMap.addPrimaryKey("address.ID", "" );
>     tMap.addPrimaryKey("address.POSITION", new Integer(0) );
>     tMap.addColumn("address.NAME1", "", 50 );
>     tMap.addColumn("address.NAME2", "", 50 );
>     tMap.addColumn("address.NAME3", "", 50 );
>     tMap.addColumn("address.STREET", "", 50 );
>     tMap.addColumn("address.ZIPCODE", "", 25 );
>     tMap.addColumn("address.CITY", "", 60 );
>     tMap.addColumn("address.PHONE", "", 40 );
>     tMap.addColumn("address.PHONE2", "", 40 );
>     tMap.addColumn("address.COUNTRY", "", 200 );
>     tMap.addColumn("address.STATE", "", 200 );
>     tMap.addColumn("address.FAX", "", 40 );
>     tMap.addColumn("address.EMAIL", "", 150 );
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


Mime
View raw message