diff options
author | unknown <Sinisa@sinisa.nasamreza.org> | 2003-08-06 18:48:34 +0300 |
---|---|---|
committer | unknown <Sinisa@sinisa.nasamreza.org> | 2003-08-06 18:48:34 +0300 |
commit | b5e85696741e02ab33432bdec254edd802839fa1 (patch) | |
tree | 2175cccf3ca201dc44c8b403fe9e891dfde092b8 /mysql-test | |
parent | 5dadac8701ae9cd464b052f03137117e71983072 (diff) | |
download | mariadb-git-b5e85696741e02ab33432bdec254edd802839fa1.tar.gz |
sql_union.cc, sql_select.cc:
Code clean-up
sql_union.cc, union.test, union.result:
A fix for a bug #978.
This enables that NULL's can be entered into UNION's result set,
although first SELECT columns are NOT NULL.
This is also a start of fixing UNION's properly regarding type
acceptance.
sql_select.cc:
A commit for my second July SPRINT task
mysql-test/r/union.result:
A fix for a bug #978.
This enables that NULL's can be entered into UNION's result set,
although first SELECT columns are NOT NULL.
This is also a start of fixing UNION's properly regarding type
acceptance.
mysql-test/t/union.test:
A fix for a bug #978.
This enables that NULL's can be entered into UNION's result set,
although first SELECT columns are NOT NULL.
This is also a start of fixing UNION's properly regarding type
acceptance.
sql/sql_select.cc:
Code clean-up
sql/sql_union.cc:
Code clean-up
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/union.result | 13 | ||||
-rw-r--r-- | mysql-test/t/union.test | 9 |
2 files changed, 22 insertions, 0 deletions
diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index 5b7b26bc1bb..6d8bd263546 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -328,3 +328,16 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 const PRIMARY PRIMARY 4 const 1 2 UNION t1 ref b b 5 const 1 Using where drop table t1,t2; +create table t1 ( id int not null auto_increment, primary key (id) ,user_name text ); +create table t2 ( id int not null auto_increment, primary key (id) ,group_name text ); +create table t3 ( id int not null auto_increment, primary key (id) ,user_id int ,index user_idx (user_id) ,foreign key (user_id) references users(id) ,group_id int ,index group_idx (group_id) ,foreign key (group_id) references groups(id) ); +insert into t1 (user_name) values ('Tester'); +insert into t2 (group_name) values ('Group A'); +insert into t2 (group_name) values ('Group B'); +insert into t3 (user_id, group_id) values (1,1); +select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION select 0 'is_in_group', a.user_name, c.group_name, null from t1 a, t2 c; +is_in_group user_name group_name id +1 Tester Group A 1 +0 Tester Group A NULL +0 Tester Group B NULL +drop table t1, t2, t3; diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test index 6d857a4b40f..aeea27ade0f 100644 --- a/mysql-test/t/union.test +++ b/mysql-test/t/union.test @@ -209,3 +209,12 @@ explain (select * from t1 where a=1) union (select * from t2 where a=1); explain (select * from t1 where a=1 and b=10) union (select t1.a,t2.a from t1,t2 where t1.a=t2.a); explain (select * from t1 where a=1) union (select * from t1 where b=1); drop table t1,t2; +create table t1 ( id int not null auto_increment, primary key (id) ,user_name text ); +create table t2 ( id int not null auto_increment, primary key (id) ,group_name text ); +create table t3 ( id int not null auto_increment, primary key (id) ,user_id int ,index user_idx (user_id) ,foreign key (user_id) references users(id) ,group_id int ,index group_idx (group_id) ,foreign key (group_id) references groups(id) ); +insert into t1 (user_name) values ('Tester'); +insert into t2 (group_name) values ('Group A'); +insert into t2 (group_name) values ('Group B'); +insert into t3 (user_id, group_id) values (1,1); +select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION select 0 'is_in_group', a.user_name, c.group_name, null from t1 a, t2 c; +drop table t1, t2, t3; |