summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-03-26 18:37:38 +0200
committerunknown <monty@mashka.mysql.fi>2003-03-26 18:37:38 +0200
commit9630bdffddc52d9ecd2e9ccab1c492756f07076d (patch)
tree007e99eab2948fed93bba975a04801b24ba9c92a /sql/sql_parse.cc
parentc8bdced21469ec1777abfea13662becc66944919 (diff)
parent221dfec1a4fb2a7208d9ae88eaa151857e95486c (diff)
downloadmariadb-git-9630bdffddc52d9ecd2e9ccab1c492756f07076d.tar.gz
Merge with 4.0.13
BitKeeper/etc/gone: auto-union BitKeeper/etc/logging_ok: auto-union myisam/sort.c: Auto merged mysql-test/r/group_by.result: Auto merged mysql-test/r/join_outer.result: Auto merged mysql-test/r/order_by.result: Auto merged mysql-test/r/query_cache.result: Auto merged mysql-test/r/type_blob.result: Auto merged mysql-test/r/type_ranges.result: Auto merged mysql-test/r/update.result: Auto merged mysql-test/t/bdb-crash.test: Auto merged mysql-test/t/group_by.test: Auto merged mysql-test/t/join_outer.test: Auto merged mysql-test/t/order_by.test: Auto merged mysql-test/t/query_cache.test: Auto merged mysql-test/t/type_blob.test: Auto merged mysql-test/t/type_decimal.test: Auto merged mysql-test/t/type_ranges.test: Auto merged mysql-test/t/update.test: Auto merged sql-bench/crash-me.sh: Auto merged client/mysql.cc: Keep old code
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc20
1 files changed, 14 insertions, 6 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index d08e6b70634..318e67252c7 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -3419,21 +3419,29 @@ bool add_field_to_list(THD *thd, char *field_name, enum_field_types type,
lex->col_list.empty();
}
- if (default_value && default_value->type() == Item::NULL_ITEM)
+ if (default_value)
{
- if ((type_modifier & (NOT_NULL_FLAG | AUTO_INCREMENT_FLAG)) ==
- NOT_NULL_FLAG)
+ if (default_value->type() == Item::NULL_ITEM)
{
- net_printf(thd,ER_INVALID_DEFAULT,field_name);
+ default_value=0;
+ if ((type_modifier & (NOT_NULL_FLAG | AUTO_INCREMENT_FLAG)) ==
+ NOT_NULL_FLAG)
+ {
+ net_printf(thd,ER_INVALID_DEFAULT,field_name);
+ DBUG_RETURN(1);
+ }
+ }
+ else if (type_modifier & AUTO_INCREMENT_FLAG)
+ {
+ net_printf(&thd, ER_INVALID_DEFAULT, field_name);
DBUG_RETURN(1);
}
- default_value=0;
}
if (!(new_field=new create_field()))
DBUG_RETURN(1);
new_field->field=0;
new_field->field_name=field_name;
- new_field->def= (type_modifier & AUTO_INCREMENT_FLAG ? 0 : default_value);
+ new_field->def= default_value;
new_field->flags= type_modifier;
new_field->unireg_check= (type_modifier & AUTO_INCREMENT_FLAG ?
Field::NEXT_NUMBER : Field::NONE);