diff options
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 09f7678fd83..632bdd25915 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -6196,22 +6196,26 @@ type: | DATE_SYM { $$=MYSQL_TYPE_DATE; } | TIME_SYM opt_field_length - { $$=MYSQL_TYPE_TIME; } + { $$= opt_mysql56_temporal_format ? + MYSQL_TYPE_TIME2 : MYSQL_TYPE_TIME; } | TIMESTAMP opt_field_length { if (thd->variables.sql_mode & MODE_MAXDB) - $$=MYSQL_TYPE_DATETIME; + $$= opt_mysql56_temporal_format ? + MYSQL_TYPE_DATETIME2 : MYSQL_TYPE_DATETIME; else { /* Unlike other types TIMESTAMP fields are NOT NULL by default. */ Lex->type|= NOT_NULL_FLAG; - $$=MYSQL_TYPE_TIMESTAMP; + $$= opt_mysql56_temporal_format ? + MYSQL_TYPE_TIMESTAMP2 : MYSQL_TYPE_TIMESTAMP; } } | DATETIME opt_field_length - { $$=MYSQL_TYPE_DATETIME; } + { $$= opt_mysql56_temporal_format ? + MYSQL_TYPE_DATETIME2 : MYSQL_TYPE_DATETIME; } | TINYBLOB { Lex->charset=&my_charset_bin; |