From bfd0c6ae0cf3e61347cefbf601f47db0863f1f01 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 23 Sep 2014 13:43:38 +0200 Subject: [PATCH] [#3648] Use JDBC Escape syntax for MySQL Date / Time literals to circumvent a known MySQL bug --- jOOQ/src/main/java/org/jooq/impl/Val.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java index d177b3267d..c0079b92e6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Val.java +++ b/jOOQ/src/main/java/org/jooq/impl/Val.java @@ -441,6 +441,11 @@ class Val extends AbstractParam { context.keyword("date('").sql(escape(val)).sql("')"); } + // [#3648] Circumvent a MySQL bug related to date literals + else if (family == MYSQL) { + context.keyword("{d '").sql(val.toString()).sql("'}"); + } + // Most dialects implement SQL standard date literals else { context.keyword("date '").sql(escape(val)).sql("'"); @@ -474,6 +479,11 @@ class Val extends AbstractParam { context.keyword("datetime '").sql(escape(val)).sql("'"); } + // [#3648] Circumvent a MySQL bug related to date literals + else if (family == MYSQL) { + context.keyword("{ts '").sql(val.toString()).sql("'}"); + } + // Most dialects implement SQL standard timestamp literals else { context.keyword("timestamp '").sql(escape(val)).sql("'"); @@ -502,6 +512,10 @@ class Val extends AbstractParam { context.keyword("time").sql("('").sql(escape(val)).sql("')"); } + // [#3648] Circumvent a MySQL bug related to date literals + else if (family == MYSQL) { + context.keyword("{t '").sql(val.toString()).sql("'}"); + } /* [pro] xx xx xxxxxxx xxxxxx xxxxxxx xxxx xxxx xxxxxxxx xxxx xx xxxxxxx xx xxxxxxx x