Merge with 3.23.54

BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/deleted/.del-LICENSE~4cfaff8de837acb8:
  Auto merged
BitKeeper/deleted/.del-MySQLEULA.txt:
  Delete: Docs/MySQLEULA.txt
BitKeeper/deleted/.del-global.h~e80d28157acfdcb5:
  Auto merged
Build-tools/mysql-copyright-2:
  Auto merged
Build-tools/mysql-copyright:
  Auto merged
heap/heapdef.h:
  Auto merged
heap/hp_open.c:
  Auto merged
innobase/btr/btr0cur.c:
  Auto merged
innobase/lock/lock0lock.c:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/os/os0thread.c:
  Auto merged
myisam/mi_open.c:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
mysql-test/t/null_key.test:
  Auto merged
mysys/safemalloc.c:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
scripts/mysqld_safe.sh:
  Auto merged
scripts/mysqlhotcopy.sh:
  Auto merged
sql/field.h:
  Auto merged
sql/field_conv.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
tests/grant.res:
  Auto merged
Build-tools/Do-compile:
  merge
Docs/manual.texi:
  merge
configure.in:
  merge
mysql-test/r/distinct.result:
  merge
mysql-test/r/null_key.result:
  merge
sql/ha_innodb.cc:
  merge
sql/item.h:
  merge
sql/log.cc:
  merge
sql/mysqld.cc:
  merge
support-files/mysql.spec.sh:
  merge
This commit is contained in:
unknown 2002-10-16 13:11:25 +03:00
commit 7013d8ef0a
29 changed files with 392 additions and 76 deletions

View file

@ -419,7 +419,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
{
@ -434,7 +434,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
{
@ -445,8 +445,41 @@ 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);
}
@ -463,7 +496,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);
@ -480,13 +513,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;