[ 
https://issues.apache.org/jira/browse/TORQUE-373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18097468#comment-18097468
 ] 

Max Philipp Wriedt commented on TORQUE-373:
-------------------------------------------

[~gk] sounds good, and it fits the class anyway. {{hasSize}} and {{hasScale}} 
sit right above that spot in {{SQLModelTransformer.getDdlSql}} and have the 
same shape.

One thing I got wrong in the description: it isn't only LONGVARCHAR. In 
{{PlatformMysqlImpl}} six schema types end up on a type that can't take a 
default, namely LONGVARCHAR (MEDIUMTEXT), CLOB (LONGTEXT), BINARY (BLOB), 
VARBINARY (MEDIUMBLOB), and LONGVARBINARY and BLOB (both LONGBLOB). I just 
happened to run into the LONGVARCHAR one.

{{hasSize}} in the same class already maintains exactly that list:

{code:java}
return !(Arrays.asList("MEDIUMTEXT", "LONGTEXT", "BLOB", "MEDIUMBLOB", 
"LONGBLOB")
        .contains(sqlType));
{code}

so hasDefault can reuse it, probably as a shared constant rather than keeping 
the same list twice.

I'll log a warning when a default is dropped instead of removing it silently, 
so it doesn't disappear from the generated schema without a trace. (Newer MySQL 
and MariaDB do accept defaults on TEXT/BLOB, MySQL only as a parenthesized 
expression, but we don't distinguish platform versions at all, so that would be 
its own issue.)


> DEFAULT value generated for non supporting sql-types
> ----------------------------------------------------
>
>                 Key: TORQUE-373
>                 URL: https://issues.apache.org/jira/browse/TORQUE-373
>             Project: Torque
>          Issue Type: Task
>          Components: Templates
>    Affects Versions: 6.0, 7.0
>            Reporter: Max Philipp Wriedt
>            Assignee: Max Philipp Wriedt
>            Priority: Major
>
> When defining a column as LONGVARCHAR with a default value the SQL generated 
> contains a "DEFAULT" which is invalid for the mapped "MEDIUMTEXT" in 
> MySQL/MariaDB. (but might be ignored/warning-only based on the executor of 
> the SQL-schema).
> I've started working on a fix, but I'm indifferent, whether this is a special 
> case for MySQL or if we should add a "hasDefault" at the Platform interface.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to