summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorGleb Shchepa <gleb.shchepa@oracle.com>2012-06-29 14:12:21 +0400
committerGleb Shchepa <gleb.shchepa@oracle.com>2012-06-29 14:12:21 +0400
commit4661d95433b2b6f4c7f25facd2a45db23329dcba (patch)
treeaa3c60456b0b32facebea115b86bbc0b63d1aa9d /sql
parent6058319dba910576e00b0b566697b95aff6cb52c (diff)
parent767501fb54f19adf3c136e5131daf11e34b3f039 (diff)
downloadmariadb-git-4661d95433b2b6f4c7f25facd2a45db23329dcba.tar.gz
manual merge (WL6219)
sql/sql_yacc.yy: manual merge (backport of WL6219)
Diffstat (limited to 'sql')
-rw-r--r--sql/field.cc11
-rw-r--r--sql/sql_yacc.yy18
2 files changed, 28 insertions, 1 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 4fcf5b33dc1..352c8025e19 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -9929,6 +9929,17 @@ Create_field::Create_field(Field *old_field,Field *orig_field)
geom_type= ((Field_geom*)old_field)->geom_type;
break;
#endif
+ case MYSQL_TYPE_YEAR:
+ if (length != 4)
+ {
+ char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1];
+ snprintf(buff, sizeof(buff), "YEAR(%lu)", length);
+ push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
+ ER_WARN_DEPRECATED_SYNTAX,
+ ER(ER_WARN_DEPRECATED_SYNTAX),
+ buff, "YEAR(4)");
+ }
+ break;
default:
break;
}
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index bf7ca6b02ed..05a12ac826a 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -5465,7 +5465,23 @@ type:
$$= MYSQL_TYPE_VARCHAR;
}
| YEAR_SYM opt_field_length field_options
- { $$=MYSQL_TYPE_YEAR; }
+ {
+ if (Lex->length)
+ {
+ errno= 0;
+ ulong length= strtoul(Lex->length, NULL, 10);
+ if (errno == 0 && length <= MAX_FIELD_BLOBLENGTH && length != 4)
+ {
+ char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1];
+ snprintf(buff, sizeof(buff), "YEAR(%lu)", length);
+ push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_NOTE,
+ ER_WARN_DEPRECATED_SYNTAX,
+ ER(ER_WARN_DEPRECATED_SYNTAX),
+ buff, "YEAR(4)");
+ }
+ }
+ $$=MYSQL_TYPE_YEAR;
+ }
| DATE_SYM
{ $$=MYSQL_TYPE_DATE; }
| TIME_SYM