diff options
author | unknown <monty@mashka.mysql.fi> | 2003-03-26 18:37:38 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-03-26 18:37:38 +0200 |
commit | 9630bdffddc52d9ecd2e9ccab1c492756f07076d (patch) | |
tree | 007e99eab2948fed93bba975a04801b24ba9c92a /sql/sql_parse.cc | |
parent | c8bdced21469ec1777abfea13662becc66944919 (diff) | |
parent | 221dfec1a4fb2a7208d9ae88eaa151857e95486c (diff) | |
download | mariadb-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.cc | 20 |
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); |