diff options
author | monty@hundin.mysql.fi <> | 2002-10-16 10:32:45 +0300 |
---|---|---|
committer | monty@hundin.mysql.fi <> | 2002-10-16 10:32:45 +0300 |
commit | b4343ba9398082b74a02b568625aee42587450f0 (patch) | |
tree | b2749496347a8bc7352927d95fef69660bb47fe3 /sql/item.cc | |
parent | 73506bb612822dc25c940a2ca2f8b1e84a0a395d (diff) | |
download | mariadb-git-b4343ba9398082b74a02b568625aee42587450f0.tar.gz |
Fixed bug in LEFT JOIN ... WHERE not_null_key_column=NULL;
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/sql/item.cc b/sql/item.cc index 0ce37cdd593..9b4274ab71d 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -383,7 +383,7 @@ void Item_field::save_org_in_field(Field *to) if (field->is_null()) { null_value=1; - set_field_to_null(to); + set_field_to_null_with_conversions(to); } else { @@ -398,7 +398,7 @@ bool Item_field::save_in_field(Field *to) if (result_field->is_null()) { null_value=1; - return set_field_to_null(to); + return set_field_to_null_with_conversions(to); } else { @@ -409,9 +409,42 @@ bool Item_field::save_in_field(Field *to) return 0; } +/* + Store null in field + + SYNOPSIS + save_in_field() + field Field where we want to store NULL + + DESCRIPTION + This is used on INSERT. + Allow NULL to be inserted in timestamp and auto_increment values + + RETURN VALUES + 0 ok + 1 Field doesn't support NULL values and can't handle 'field = NULL' +*/ bool Item_null::save_in_field(Field *field) { + return set_field_to_null_with_conversions(field); +} + + +/* + Store null in field + + SYNOPSIS + save_safe_in_field() + field Field where we want to store NULL + + RETURN VALUES + 0 ok + 1 Field doesn't support NULL values +*/ + +bool Item_null::save_safe_in_field(Field *field) +{ return set_field_to_null(field); } @@ -427,7 +460,7 @@ bool Item::save_in_field(Field *field) str_value.set_quick(buff,sizeof(buff)); result=val_str(&str_value); if (null_value) - return set_field_to_null(field); + return set_field_to_null_with_conversions(field); field->set_notnull(); field->store(result->ptr(),result->length()); str_value.set_quick(0, 0); @@ -444,13 +477,14 @@ bool Item::save_in_field(Field *field) { longlong nr=val_int(); if (null_value) - return set_field_to_null(field); + return set_field_to_null_with_conversions(field); field->set_notnull(); field->store(nr); } return 0; } + bool Item_string::save_in_field(Field *field) { String *result; |