Column specification assumes NULL as implicit choice
----------------------------------------------------

                 Key: TORQUE-105
                 URL: https://issues.apache.org/jira/browse/TORQUE-105
             Project: Torque
          Issue Type: Bug
          Components: Generator
    Affects Versions: 3.3-RC2
         Environment: Maven2 plugin, Torque 3.3-RC2 ; tested with Sybase 15.0.2 
DEV Edition Windows - should affect all Sybase
            Reporter: Sylvain Benoist


When defining a column in a table with the Torque XML model, the assumption is 
that if the 'required' attribute is not present, or false, then the column is 
produced with no explicit NULL/ NOT NULL text. This leaves the door open to 
database specific behaviors.

For example, Sybase... see 
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/svrtsg/@Generic__BookTextView/15380.
It says that by default, Sybase assumes that a column without an explicit NULL 
or NOT NULL will be translated into a  NOT NULL. 

This means that from the following XML snippet :

<table name="country" description="Country data">
   <column name="country_id" domain="dm_CountryId" required="true" 
primaryKey="true" />
   <column name="country_name" domain="dm_GenericName30" required="true" />
   <column name="iso_source" domain="dm_Boolean" required="true" />
   <column name="iso_threechar_code" type="CHAR" size="3" required="false" />
   <column name="iso_numeric_code" type="INTEGER" required="false"/>
   <column name="active" domain="dm_Boolean" required="true" />
</table>

I end up with the following DDL :

CREATE TABLE country
(
                country_id CHAR (2) NOT NULL,
                country_name VARCHAR (30) NOT NULL,
                iso_source CHAR (1) default 'Y' NOT NULL,
                iso_threechar_code CHAR (3),
                iso_numeric_code INT,
                active CHAR (1) default 'Y' NOT NULL,
    CONSTRAINT country_PK PRIMARY KEY(country_id)
)
go

And Sybase default this to have all columns as NOT NULL, which is not what I 
specified in my XML.

To avoid being dependent on a database configuration option, it would be better 
to make things completely explicit, so that
when the 'required' XML attribute is either absent or false, the generated DDL 
specifies 'NULL' instead of an empty string.




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to