mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
@ -58,6 +58,16 @@ skr 2
|
|||||||
test 1
|
test 1
|
||||||
test 2
|
test 2
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (id int NOT NULL DEFAULT 8);
|
||||||
|
insert into t1 values(NULL);
|
||||||
|
Column 'id' cannot be null
|
||||||
|
insert into t1 values (1), (NULL), (2);
|
||||||
|
select * from t1;
|
||||||
|
id
|
||||||
|
1
|
||||||
|
8
|
||||||
|
2
|
||||||
|
drop table t1;
|
||||||
drop database if exists foo;
|
drop database if exists foo;
|
||||||
create database foo;
|
create database foo;
|
||||||
use foo;
|
use foo;
|
||||||
|
@ -50,6 +50,17 @@ insert into t1 values ('rts',NULL),('rts',NULL),('test',NULL);
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
#Test of behaviour with INSERT VALUES (NULL)
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (id int NOT NULL DEFAULT 8);
|
||||||
|
-- error 1048
|
||||||
|
insert into t1 values(NULL);
|
||||||
|
insert into t1 values (1), (NULL), (2);
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test of mysqld crash with fully qualified column names
|
# Test of mysqld crash with fully qualified column names
|
||||||
#
|
#
|
||||||
@ -60,3 +71,4 @@ use foo;
|
|||||||
create table t1 (c int);
|
create table t1 (c int);
|
||||||
insert into foo.t1 set foo.t1.c = '1';
|
insert into foo.t1 set foo.t1.c = '1';
|
||||||
drop database foo;
|
drop database foo;
|
||||||
|
|
||||||
|
@ -72,10 +72,12 @@ public:
|
|||||||
virtual void reset_fields() {}
|
virtual void reset_fields() {}
|
||||||
virtual void set_default()
|
virtual void set_default()
|
||||||
{
|
{
|
||||||
memcpy(ptr, ptr + table->rec_buff_length, pack_length());
|
my_ptrdiff_t offset = (my_ptrdiff_t) (table->record[2] -
|
||||||
|
table->record[0]);
|
||||||
|
memcpy(ptr, ptr + offset, pack_length());
|
||||||
if (null_ptr)
|
if (null_ptr)
|
||||||
*null_ptr= ((*null_ptr & (uchar) ~null_bit) |
|
*null_ptr= ((*null_ptr & (uchar) ~null_bit) |
|
||||||
null_ptr[table->rec_buff_length] & null_bit);
|
null_ptr[offset] & null_bit);
|
||||||
}
|
}
|
||||||
virtual bool binary() const { return 1; }
|
virtual bool binary() const { return 1; }
|
||||||
virtual bool zero_pack() const { return 1; }
|
virtual bool zero_pack() const { return 1; }
|
||||||
|
@ -118,10 +118,9 @@ set_field_to_null(Field *field)
|
|||||||
field->reset();
|
field->reset();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
field->reset();
|
field->set_default();
|
||||||
if (current_thd->count_cuted_fields)
|
if (current_thd->count_cuted_fields)
|
||||||
{
|
{
|
||||||
field->set_default();
|
|
||||||
current_thd->cuted_fields++; // Increment error counter
|
current_thd->cuted_fields++; // Increment error counter
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -171,12 +170,11 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions)
|
|||||||
((Field_timestamp*) field)->set_time();
|
((Field_timestamp*) field)->set_time();
|
||||||
return 0; // Ok to set time to NULL
|
return 0; // Ok to set time to NULL
|
||||||
}
|
}
|
||||||
field->reset();
|
field->set_default();
|
||||||
if (field == field->table->next_number_field)
|
if (field == field->table->next_number_field)
|
||||||
return 0; // field is set in handler.cc
|
return 0; // field is set in handler.cc
|
||||||
if (current_thd->count_cuted_fields)
|
if (current_thd->count_cuted_fields)
|
||||||
{
|
{
|
||||||
field->set_default();
|
|
||||||
current_thd->cuted_fields++; // Increment error counter
|
current_thd->cuted_fields++; // Increment error counter
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user