[
https://issues.apache.org/jira/browse/TORQUE-368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Max Philipp Wriedt updated TORQUE-368:
--------------------------------------
Description:
Example XML:
{code:java}
<table name="feiertag" javaName="Holiday">
<column name="id" primaryKey="true" type="INTEGER"
required="true"/>
<column name="datum" javaName="Date" type="BIGINT"
default="0" required="true"/>
<column name="name" javaName="Name" type="VARCHAR"
size="150" default="" required="true"/>
<column name="zuschlag" javaName="Bonus" type="CHAR"
size="1" default="N" required="true"/>
<column name="bundesland" javaName="State" type="VARCHAR"
size="2" default="" required="true"/>
<unique name="dateunique"><unique-column name="datum"/></unique>
</table> {code}
Generates SQL:
{code:java}
CREATE TABLE feiertag(
id INTEGER NOT NULL AUTO_INCREMENT,
datum BIGINT default 0 NOT NULL,
name VARCHAR(150) NOT NULL,
zuschlag CHAR(1) default 'N' NOT NULL,
bundesland VARCHAR(2) NOT NULL,
PRIMARY KEY(id),
UNIQUE dateunique (datum)
); {code}
As you can see, the VARCHAR name and the VARCHAR bundesland are correctly
defined a "NOT NULL". The
{code:java}
default=""{code}
is ignored.
This wasn't a problem until NO_ENGINE_SUBSTITUTION was set as default in MySQL
5.6 & MariaDb 10.1.7
I wasn't able to find the corresponding generation for the DEFAULT value inside
the template or the generator.
Also: should we make this switchable, i.e. if default tag is present, always
generate a DEFAULT or if default tag is present but empty, leave it out
completely?
was:
Example XML:
{code:java}
<table name="feiertag" javaName="Holiday">
<column name="id" primaryKey="true" type="INTEGER"
required="true"/>
<column name="datum" javaName="Date" type="BIGINT"
default="0" required="true"/>
<column name="name" javaName="Name" type="VARCHAR"
size="150" default="" required="true"/>
<column name="zuschlag" javaName="Bonus" type="CHAR"
size="1" default="N" required="true"/>
<column name="bundesland" javaName="State" type="VARCHAR"
size="2" default="" required="true"/>
<unique name="dateunique"><unique-column name="datum"/></unique>
</table> {code}
Generates SQL:
{code:java}
CREATE TABLE feiertag(
id INTEGER NOT NULL AUTO_INCREMENT,
datum BIGINT default 0 NOT NULL,
name VARCHAR(150) NOT NULL,
zuschlag CHAR(1) default 'N' NOT NULL,
bundesland VARCHAR(2) NOT NULL,
PRIMARY KEY(id),
UNIQUE dateunique (datum)
); {code}
As you can see, the VARCHAR name and the VARCHAR bundesland are correctly
defined a "NOT NULL". The
{code:java}
default=""{code}
is ignored.
This wasn't a problem until NO_ENGINE_SUBSTITUTION was set as default in MySQL
5.6 & MariaDb 10.1.
I wasn't able to find the corresponding generation for the DEFAULT value inside
the template or the generator.
Also: should we make this switchable, i.e. if default tag is present, always
generate a DEFAULT or if default tag is present but empty, leave it out
completely?
> MySQL/MariaDb Column Default not set in generated sql for empty string
> ----------------------------------------------------------------------
>
> Key: TORQUE-368
> URL: https://issues.apache.org/jira/browse/TORQUE-368
> Project: Torque
> Issue Type: Bug
> Components: Generator, Templates
> Affects Versions: 5.1, 6.0
> Reporter: Max Philipp Wriedt
> Priority: Major
>
> Example XML:
> {code:java}
> <table name="feiertag" javaName="Holiday">
> <column name="id" primaryKey="true" type="INTEGER"
> required="true"/>
> <column name="datum" javaName="Date" type="BIGINT"
> default="0" required="true"/>
> <column name="name" javaName="Name" type="VARCHAR"
> size="150" default="" required="true"/>
> <column name="zuschlag" javaName="Bonus" type="CHAR"
> size="1" default="N" required="true"/>
> <column name="bundesland" javaName="State" type="VARCHAR"
> size="2" default="" required="true"/>
> <unique name="dateunique"><unique-column name="datum"/></unique>
> </table> {code}
> Generates SQL:
> {code:java}
> CREATE TABLE feiertag(
> id INTEGER NOT NULL AUTO_INCREMENT,
> datum BIGINT default 0 NOT NULL,
> name VARCHAR(150) NOT NULL,
> zuschlag CHAR(1) default 'N' NOT NULL,
> bundesland VARCHAR(2) NOT NULL,
> PRIMARY KEY(id),
> UNIQUE dateunique (datum)
> ); {code}
> As you can see, the VARCHAR name and the VARCHAR bundesland are correctly
> defined a "NOT NULL". The
> {code:java}
> default=""{code}
> is ignored.
> This wasn't a problem until NO_ENGINE_SUBSTITUTION was set as default in
> MySQL 5.6 & MariaDb 10.1.7
> I wasn't able to find the corresponding generation for the DEFAULT value
> inside the template or the generator.
> Also: should we make this switchable, i.e. if default tag is present, always
> generate a DEFAULT or if default tag is present but empty, leave it out
> completely?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]