You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by "Sylvain Benoist (JIRA)" <ji...@apache.org> on 2007/10/31 16:50:51 UTC
[jira] Commented: (TORQUE-105) Column specification assumes NULL as
implicit choice
[ https://issues.apache.org/jira/browse/TORQUE-105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12539106 ]
Sylvain Benoist commented on TORQUE-105:
----------------------------------------
Suggest overriding getNullString method in org.apache.torque.engine.platform.PlatformSybaseImpl,
or even DefaultPlatformImpl if this behavior should be applied consistently to all platforms.
public String getNullString(boolean notNull)
{
return (notNull ? "NOT NULL" : "NULL");
}
What bothers me is that this implementation is no longer in sync with all the comments that I have seen that indicate that the method returns an empty string for 'NULL' - this may break code that tests for string length for example.
> 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: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org