summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <holyfoot/hf@mysql.com/hfmain.(none)>2007-02-12 15:41:36 +0400
committerunknown <holyfoot/hf@mysql.com/hfmain.(none)>2007-02-12 15:41:36 +0400
commit07f36668aecfd3d811c4ed5eb23b1bfdb8c86fdd (patch)
tree7dd961ed670d0d28d50bea67201109c50e9296ff /sql
parenta30830460794651c0e9fc5ec4779cf77680514ee (diff)
downloadmariadb-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.cc8
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();