From 70ebfa1f6a2533a2f4cd2eaa7db68f1d786afd08 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Thu, 7 Dec 2017 16:35:37 +0100 Subject: [PATCH] [#5574] In MySQL, an incorrect column default is generated when the default is CURRENT_TIMESTAMP --- .../src/main/java/org/jooq/util/JavaGenerator.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java index 86bb48a897..7d24f7db88 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java @@ -5852,9 +5852,17 @@ public class JavaGenerator extends AbstractGenerator { sb.append(".defaultValue("); if (MYSQL == db.getDialect().family()) - sb.append("org.jooq.impl.DSL.inline(\"") - .append(escapeString(d)) - .append("\""); + + // [#5574] While MySQL usually reports actual values, it does report + // a CURRENT_TIMESTAMP expression, inconsistently + if (d != null && d.toLowerCase().startsWith("current_timestamp")) + sb.append("org.jooq.impl.DSL.field(\"") + .append(escapeString(d)) + .append("\""); + else + sb.append("org.jooq.impl.DSL.inline(\"") + .append(escapeString(d)) + .append("\""); else sb.append("org.jooq.impl.DSL.field(\"") .append(escapeString(d))