Commit fe93176c authored by mhansson/martin@linux-st28.site's avatar mhansson/martin@linux-st28.site
Browse files

Merge linux-st28.site:/home/martin/mysql/src/bug32848/my50-bug32848-gca

into  linux-st28.site:/home/martin/mysql/src/bug32848/my51-bug32848-gca
parents 99927613 6f6e1880
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
set autocommit=1;
reset master;
create table bug16206 (a int);
insert into bug16206 values(1);
start transaction;
insert into bug16206 values(2);
commit;
show binlog events;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
f	n	Format_desc	1	n	Server ver: VERSION, Binlog ver: 4
f	n	Query	1	n	use `test`; create table bug16206 (a int)
f	n	Query	1	n	use `test`; insert into bug16206 values(1)
f	n	Query	1	n	use `test`; insert into bug16206 values(2)
drop table bug16206;
reset master;
create table bug16206 (a int) engine=         bdb;
insert into bug16206 values(0);
insert into bug16206 values(1);
start transaction;
insert into bug16206 values(2);
commit;
insert into bug16206 values(3);
show binlog events;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
f	n	Format_desc	1	n	Server ver: VERSION, Binlog ver: 4
f	n	Query	1	n	use `test`; create table bug16206 (a int) engine=         bdb
f	n	Query	1	n	use `test`; insert into bug16206 values(0)
f	n	Query	1	n	use `test`; insert into bug16206 values(1)
f	n	Query	1	n	use `test`; BEGIN
f	n	Query	1	n	use `test`; insert into bug16206 values(2)
f	n	Query	1	n	use `test`; COMMIT
f	n	Query	1	n	use `test`; insert into bug16206 values(3)
drop table bug16206;
set autocommit=0;
End of 5.0 tests
+24 −0
Original line number Diff line number Diff line
@@ -1445,4 +1445,28 @@ select @var;
1
(select 2) union (select 1 into @var);
ERROR 42000: Result consisted of more than one row
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1), (2), (3);
CREATE TABLE t2 SELECT * FROM (SELECT NULL) a UNION SELECT a FROM t1;
DESC t2;
Field	Type	Null	Key	Default	Extra
NULL	int(11)	YES		NULL	
CREATE TABLE t3 SELECT a FROM t1 UNION SELECT * FROM (SELECT NULL) a;
DESC t3;
Field	Type	Null	Key	Default	Extra
a	int(11)	YES		NULL	
CREATE TABLE t4 SELECT NULL;
DESC t4;
Field	Type	Null	Key	Default	Extra
NULL	binary(0)	YES		NULL	
CREATE TABLE t5 SELECT NULL UNION SELECT NULL;
DESC t5;
Field	Type	Null	Key	Default	Extra
NULL	binary(0)	YES		NULL	
CREATE TABLE t6 
SELECT * FROM (SELECT * FROM (SELECT NULL)a) b UNION SELECT a FROM t1;
DESC t6;
Field	Type	Null	Key	Default	Extra
NULL	int(11)	YES		NULL	
DROP TABLE t1, t2, t3, t4, t5, t6;
End of 5.0 tests
+38 −0
Original line number Diff line number Diff line
-- source include/not_embedded.inc
-- source include/have_bdb.inc

#
# Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode
#
set autocommit=1;

let $VERSION=`select version()`;

reset master;
create table bug16206 (a int);
insert into bug16206 values(1);
start transaction;
insert into bug16206 values(2);
commit;
--replace_result $VERSION VERSION
--replace_column 1 f 2 n 5 n
show binlog events;
drop table bug16206;

reset master;
create table bug16206 (a int) engine=         bdb;
insert into bug16206 values(0);
insert into bug16206 values(1);
start transaction;
insert into bug16206 values(2);
commit;
insert into bug16206 values(3);
--replace_result $VERSION VERSION
--replace_column 1 f 2 n 5 n
show binlog events;
drop table bug16206;

set autocommit=0;


--echo End of 5.0 tests
+24 −0
Original line number Diff line number Diff line
@@ -922,4 +922,28 @@ DROP TABLE t1;
select @var;
--error 1172
(select 2) union (select 1 into @var);

#
# Bug#32848: Data type conversion bug in union subselects in MySQL 5.0.38
#
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1), (2), (3);

CREATE TABLE t2 SELECT * FROM (SELECT NULL) a UNION SELECT a FROM t1;
DESC t2;

CREATE TABLE t3 SELECT a FROM t1 UNION SELECT * FROM (SELECT NULL) a;
DESC t3;

CREATE TABLE t4 SELECT NULL;
DESC t4;

CREATE TABLE t5 SELECT NULL UNION SELECT NULL;
DESC t5;

CREATE TABLE t6 
SELECT * FROM (SELECT * FROM (SELECT NULL)a) b UNION SELECT a FROM t1;
DESC t6;

DROP TABLE t1, t2, t3, t4, t5, t6;
--echo End of 5.0 tests
+2 −1
Original line number Diff line number Diff line
@@ -1307,7 +1307,8 @@ Field::Field(uchar *ptr_arg,uint32 length_arg,uchar *null_ptr_arg,
   field_name(field_name_arg),
   key_start(0), part_of_key(0), part_of_key_not_clustered(0),
   part_of_sortkey(0), unireg_check(unireg_check_arg),
   field_length(length_arg), null_bit(null_bit_arg)
   field_length(length_arg), null_bit(null_bit_arg), 
   is_created_from_null_item(FALSE)
{
  flags=null_ptr ? 0: NOT_NULL_FLAG;
  comment.str= (char*) "";
Loading