diff options
author | unknown <ramil@mysql.com> | 2005-07-25 14:36:07 +0500 |
---|---|---|
committer | unknown <ramil@mysql.com> | 2005-07-25 14:36:07 +0500 |
commit | 17132a93f2bde74f625e860daee655d99c8e81a7 (patch) | |
tree | b350d603071f3551d9f6e63df354fa564a5ecc81 /sql/field.cc | |
parent | 0eea2a124bd5c8269a5382da9ac82526a5e2f384 (diff) | |
download | mariadb-git-17132a93f2bde74f625e860daee655d99c8e81a7.tar.gz |
fix (bug #11964: ALTER TABLE gives wrong error message with sql-mode TRADITIONAL (timestamp)).
sql/field.cc:
fix (bug #11964: ALTER TABLE gives wrong error message with sql-mode TRADITIONAL (timestamp)).
set def only if timestamp fields have explicit default value.
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/field.cc b/sql/field.cc index 3fdd7ab45e6..06ed84ae870 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -8462,7 +8462,10 @@ create_field::create_field(Field *old_field,Field *orig_field) def=0; if (!(flags & (NO_DEFAULT_VALUE_FLAG | BLOB_FLAG)) && !old_field->is_real_null() && - old_field->ptr && orig_field) + old_field->ptr && orig_field && + (sql_type != FIELD_TYPE_TIMESTAMP || /* set def only if */ + old_field->table->timestamp_field != old_field || /* timestamp field */ + unireg_check == Field::TIMESTAMP_UN_FIELD)) /* has default val */ { char buff[MAX_FIELD_WIDTH],*pos; String tmp(buff,sizeof(buff), charset), *res; |