diff --git a/sql/field.cc b/sql/field.cc index 57a08128e69..4ccfc066808 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -10937,7 +10937,7 @@ bool Column_definition::check(THD *thd) We need to do this check here and in mysql_create_prepare_table() as sp_head::fill_field_definition() calls this function. */ - if (!default_value && unireg_check == Field::NONE && (flags & NOT_NULL_FLAG)) + if (!default_value && !has_default_function() && (flags & NOT_NULL_FLAG)) { /* TIMESTAMP columns get implicit DEFAULT value when diff --git a/sql/field.h b/sql/field.h index c31b38d78e6..58bac6623cf 100644 --- a/sql/field.h +++ b/sql/field.h @@ -5486,7 +5486,12 @@ class Column_definition: public Sql_alloc, bool has_default_function() const { - return unireg_check != Field::NONE; + return unireg_check != Field::NONE && + unireg_check != Field::TMYSQL_COMPRESSED; } Field *make_field(TABLE_SHARE *share, MEM_ROOT *mem_root,