summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 14fc748c288..4f1a0589db1 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -3229,7 +3229,18 @@ bool add_field_to_list(char *field_name, enum_field_types type,
}
break;
case FIELD_TYPE_TIMESTAMP:
+#if MYSQL_VERSION_ID < 40100
+ /*
+ When in in --new mode, we should create TIMESTAMP(19) fields by default;
+ otherwise we will have problems with ALTER TABLE changing lengths of
+ existing TIMESTAMP fields to 19 and adding new fields with length 14.
+ */
+ if (thd->variables.new_mode)
+ new_field->length= 19;
+ else if (!length)
+#else
if (!length)
+#endif
new_field->length= 14; // Full date YYYYMMDDHHMMSS
else if (new_field->length != 19)
{