[#3648] Use JDBC Escape syntax for MySQL Date / Time literals to circumvent a known MySQL bug

This commit is contained in:
Lukas Eder 2014-09-23 13:43:38 +02:00
parent 5ccf02f3b5
commit bfd0c6ae0c

View File

@ -441,6 +441,11 @@ class Val<T> extends AbstractParam<T> {
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<T> extends AbstractParam<T> {
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<T> extends AbstractParam<T> {
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