mirror of
https://github.com/MariaDB/server.git
synced 2026-04-29 19:55:32 +02:00
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:
commit
7013d8ef0a
29 changed files with 392 additions and 76 deletions
42
sql/item.cc
42
sql/item.cc
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue