Commit 4e125645 authored by unknown's avatar unknown
Browse files

Merge rurik.mysql.com:/home/igor/mysql-5.0

into rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/sql_select.cc:
  Auto merged
parents 22eeea04 3b808af0
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -3138,4 +3138,44 @@ x
x
3
drop procedure bug10961|
DROP PROCEDURE IF EXISTS bug6866|
DROP VIEW IF EXISTS tv|
Warnings:
Note	1051	Unknown table 'test.tv'
DROP TABLE IF EXISTS tt1,tt2,tt3|
Warnings:
Note	1051	Unknown table 'tt1'
Note	1051	Unknown table 'tt2'
Note	1051	Unknown table 'tt3'
CREATE TABLE tt1 (a1 int, a2 int, a3 int, data varchar(10))|
CREATE TABLE tt2 (a2 int, data2 varchar(10))|
CREATE TABLE tt3 (a3 int, data3 varchar(10))|
INSERT INTO tt1 VALUES (1, 1, 4, 'xx')|
INSERT INTO tt2 VALUES (1, 'a')|
INSERT INTO tt2 VALUES (2, 'b')|
INSERT INTO tt2 VALUES (3, 'c')|
INSERT INTO tt3 VALUES (4, 'd')|
INSERT INTO tt3 VALUES (5, 'e')|
INSERT INTO tt3 VALUES (6, 'f')|
CREATE VIEW tv AS
SELECT tt1.*, tt2.data2, tt3.data3
FROM tt1 INNER JOIN tt2 ON tt1.a2 = tt2.a2
LEFT JOIN tt3 ON tt1.a3 = tt3.a3
ORDER BY tt1.a1, tt2.a2, tt3.a3|
CREATE PROCEDURE bug6866 (_a1 int)
BEGIN
SELECT * FROM tv WHERE a1 = _a1;
END|
CALL bug6866(1)|
a1	a2	a3	data	data2	data3
1	1	4	xx	a	d
CALL bug6866(1)|
a1	a2	a3	data	data2	data3
1	1	4	xx	a	d
CALL bug6866(1)|
a1	a2	a3	data	data2	data3
1	1	4	xx	a	d
DROP PROCEDURE bug6866;
DROP VIEW tv|
DROP TABLE tt1, tt2, tt3|
drop table t1,t2;
+44 −0
Original line number Diff line number Diff line
@@ -3848,6 +3848,50 @@ call bug10961()|

drop procedure bug10961|

#
# BUG #6866: Second call of a stored procedure using a view with on expressions
#

--disable_warnings
DROP PROCEDURE IF EXISTS bug6866|
--enable_warnings

DROP VIEW IF EXISTS tv|
DROP TABLE IF EXISTS tt1,tt2,tt3|

CREATE TABLE tt1 (a1 int, a2 int, a3 int, data varchar(10))|
CREATE TABLE tt2 (a2 int, data2 varchar(10))|
CREATE TABLE tt3 (a3 int, data3 varchar(10))|

INSERT INTO tt1 VALUES (1, 1, 4, 'xx')|

INSERT INTO tt2 VALUES (1, 'a')|
INSERT INTO tt2 VALUES (2, 'b')|
INSERT INTO tt2 VALUES (3, 'c')|

INSERT INTO tt3 VALUES (4, 'd')|
INSERT INTO tt3 VALUES (5, 'e')|
INSERT INTO tt3 VALUES (6, 'f')|

CREATE VIEW tv AS
SELECT tt1.*, tt2.data2, tt3.data3
  FROM tt1 INNER JOIN tt2 ON tt1.a2 = tt2.a2
         LEFT JOIN tt3 ON tt1.a3 = tt3.a3
    ORDER BY tt1.a1, tt2.a2, tt3.a3|

CREATE PROCEDURE bug6866 (_a1 int)
BEGIN
SELECT * FROM tv WHERE a1 = _a1;
END|

CALL bug6866(1)|
CALL bug6866(1)|
CALL bug6866(1)|

DROP PROCEDURE bug6866;

DROP VIEW tv|
DROP TABLE tt1, tt2, tt3|

#
# BUG#NNNN: New bug synopsis
+2 −0
Original line number Diff line number Diff line
@@ -7379,6 +7379,8 @@ simplify_joins(JOIN *join, List<TABLE_LIST> *join_list, COND *conds, bool top)
    }
    else
    {
      if (!(table->prep_on_expr))
        table->prep_on_expr= table->on_expr;
      used_tables= table->table->map;
      if (conds)
        not_null_tables= conds->not_null_tables();