summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy12
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;