diff options
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sql/item.cc b/sql/item.cc index c84496f8eb7..a82037c3762 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3204,6 +3204,7 @@ bool Item_default_value::fix_fields(THD *thd, return FALSE; } + void Item_default_value::print(String *str) { if (!arg) @@ -3216,6 +3217,27 @@ void Item_default_value::print(String *str) str->append(')'); } + +int Item_default_value::save_in_field(Field *field_arg, bool no_conversions) +{ + if (!arg) + { + if (field_arg->flags & NO_DEFAULT_VALUE_FLAG) + { + push_warning_printf(field_arg->table->in_use, + MYSQL_ERROR::WARN_LEVEL_WARN, + ER_NO_DEFAULT_FOR_FIELD, + ER(ER_NO_DEFAULT_FOR_FIELD), + field_arg->field_name); + return 1; + } + field_arg->set_default(); + return 0; + } + return Item_field::save_in_field(field_arg, no_conversions); +} + + bool Item_insert_value::eq(const Item *item, bool binary_cmp) const { return item->type() == INSERT_VALUE_ITEM && |