[
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]