diff options
author | unknown <holyfoot/hf@mysql.com/hfmain.(none)> | 2007-02-12 15:41:36 +0400 |
---|---|---|
committer | unknown <holyfoot/hf@mysql.com/hfmain.(none)> | 2007-02-12 15:41:36 +0400 |
commit | 07f36668aecfd3d811c4ed5eb23b1bfdb8c86fdd (patch) | |
tree | 7dd961ed670d0d28d50bea67201109c50e9296ff /sql | |
parent | a30830460794651c0e9fc5ec4779cf77680514ee (diff) | |
download | mariadb-git-07f36668aecfd3d811c4ed5eb23b1bfdb8c86fdd.tar.gz |
bug #20691 (INSERT (DEFAULT) may insert garbage with NO DEFAULT NOT NULL field)
Some fields (GEOMETRY first of all) can't be handled properly in this
case at all. So we return an error in this case
mysql-test/r/default.result:
result fixed
mysql-test/r/gis.result:
result fixed
mysql-test/t/default.test:
VIEW test added
mysql-test/t/gis.test:
testcase added
sql/item.cc:
set_defaults() changed with the 'reset()'
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc index 9a55eb25e2c..b749ad97e64 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -5505,6 +5505,13 @@ int Item_default_value::save_in_field(Field *field_arg, bool no_conversions) { if (field_arg->flags & NO_DEFAULT_VALUE_FLAG) { + if (field_arg->reset()) + { + my_message(ER_CANT_CREATE_GEOMETRY_OBJECT, + ER(ER_CANT_CREATE_GEOMETRY_OBJECT), MYF(0)); + return -1; + } + if (context->error_processor == &view_error_processor) { TABLE_LIST *view= cached_table->top_table(); @@ -5523,7 +5530,6 @@ int Item_default_value::save_in_field(Field *field_arg, bool no_conversions) ER(ER_NO_DEFAULT_FOR_FIELD), field_arg->field_name); } - field_arg->set_default(); return 1; } field_arg->set_default(); |