Commit a59807d8 authored by unknown's avatar unknown
Browse files

Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new

parents c8e2e3fd 3a0d0b4c
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -116,3 +116,17 @@ execute st_1676 using @arg0, @arg1, @arg2;
cola	colb	cold
aaaa	yyyy	R
drop table t1, t2;
create table t1 (a int primary key);
insert into t1 values (1);
explain select * from t1 where 3 in (select (1+1) union select 1);
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	PRIMARY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables
2	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
3	DEPENDENT UNION	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
NULL	UNION RESULT	<union2,3>	ALL	NULL	NULL	NULL	NULL	NULL	
select * from t1 where 3 in (select (1+1) union select 1);
a
prepare st_18492 from 'select * from t1 where 3 in (select (1+1) union select 1)';
execute st_18492;
a
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -734,7 +734,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3	DEPENDENT UNION	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
NULL	UNION RESULT	<union2,3>	ALL	NULL	NULL	NULL	NULL	NULL	
Warnings:
Note	1003	select test.t2.id AS `id` from test.t2 where <in_optimizer>(test.t2.id,<exists>(select 1 AS `Not_used` having (<cache>(test.t2.id) = <null_helper>(1)) union select 1 AS `Not_used` having (<cache>(test.t2.id) = <null_helper>(3))))
Note	1003	select test.t2.id AS `id` from test.t2 where <in_optimizer>(test.t2.id,<exists>(select 1 AS `1` having (<cache>(test.t2.id) = <ref_null_helper>(1)) union select 3 AS `3` having (<cache>(test.t2.id) = <ref_null_helper>(3))))
SELECT * FROM t2 WHERE id IN (SELECT 5 UNION SELECT 3);
id
SELECT * FROM t2 WHERE id IN (SELECT 5 UNION SELECT 2);
+14 −0
Original line number Diff line number Diff line
@@ -130,3 +130,17 @@ drop table t1, t2;
# end of bug#1676

# End of 4.1 tests

# bug#18492: mysqld reports ER_ILLEGAL_REFERENCE in --ps-protocol

create table t1 (a int primary key);
insert into t1 values (1);

explain select * from t1 where 3 in (select (1+1) union select 1);

select * from t1 where 3 in (select (1+1) union select 1);

prepare st_18492 from 'select * from t1 where 3 in (select (1+1) union select 1)';
execute st_18492;

drop table t1;
+0 −8
Original line number Diff line number Diff line
@@ -2716,14 +2716,6 @@ void Item_ref_null_helper::print(String *str)
}


void Item_null_helper::print(String *str)
{
  str->append("<null_helper>(", 14);
  store->print(str);
  str->append(')');
}


bool Item_default_value::eq(const Item *item, bool binary_cmp) const
{
  return item->type() == DEFAULT_VALUE_ITEM && 
+0 −13
Original line number Diff line number Diff line
@@ -1045,19 +1045,6 @@ class Item_ref_null_helper: public Item_ref
  }
};

class Item_null_helper :public Item_ref_null_helper
{
  Item *store;
public:
  Item_null_helper(Item_in_subselect* master, Item *item,
		   const char *table_name_par, const char *field_name_par)
    :Item_ref_null_helper(master, &item, table_name_par, field_name_par),
     store(item)
    { ref= &store; }
  void print(String *str);
};


/*
  The following class is used to optimize comparing of date and bigint columns
  We need to save the original item ('ref') to be able to call
Loading