mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-2
This commit is contained in:
@ -1154,3 +1154,25 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
|
1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
|
||||||
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
|
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
DROP VIEW IF EXISTS v1,v2;
|
||||||
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
|
CREATE TABLE t1 (a int);
|
||||||
|
CREATE table t2 (b int);
|
||||||
|
INSERT INTO t1 VALUES (1), (2), (3), (4), (1), (1), (3);
|
||||||
|
INSERT INTO t2 VALUES (2), (3);
|
||||||
|
CREATE VIEW v1 AS SELECT a FROM t1 JOIN t2 ON t1.a=t2.b;
|
||||||
|
CREATE VIEW v2 AS SELECT b FROM t2 JOIN t1 ON t2.b=t1.a;
|
||||||
|
SELECT v1.a, v2. b
|
||||||
|
FROM v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3)
|
||||||
|
GROUP BY v1.a;
|
||||||
|
a b
|
||||||
|
2 NULL
|
||||||
|
3 3
|
||||||
|
SELECT v1.a, v2. b
|
||||||
|
FROM { OJ v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3) }
|
||||||
|
GROUP BY v1.a;
|
||||||
|
a b
|
||||||
|
2 NULL
|
||||||
|
3 3
|
||||||
|
DROP VIEW v1,v2;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -779,3 +779,29 @@ SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
|||||||
WHERE t1.name LIKE 'A%' OR FALSE;
|
WHERE t1.name LIKE 'A%' OR FALSE;
|
||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug 19396: LEFT OUTER JOIN over views in curly braces
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
DROP VIEW IF EXISTS v1,v2;
|
||||||
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int);
|
||||||
|
CREATE table t2 (b int);
|
||||||
|
INSERT INTO t1 VALUES (1), (2), (3), (4), (1), (1), (3);
|
||||||
|
INSERT INTO t2 VALUES (2), (3);
|
||||||
|
|
||||||
|
CREATE VIEW v1 AS SELECT a FROM t1 JOIN t2 ON t1.a=t2.b;
|
||||||
|
CREATE VIEW v2 AS SELECT b FROM t2 JOIN t1 ON t2.b=t1.a;
|
||||||
|
|
||||||
|
SELECT v1.a, v2. b
|
||||||
|
FROM v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3)
|
||||||
|
GROUP BY v1.a;
|
||||||
|
SELECT v1.a, v2. b
|
||||||
|
FROM { OJ v1 LEFT OUTER JOIN v2 ON (v1.a=v2.b) AND (v1.a >= 3) }
|
||||||
|
GROUP BY v1.a;
|
||||||
|
|
||||||
|
DROP VIEW v1,v2;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -448,6 +448,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
%token NUMERIC_SYM
|
%token NUMERIC_SYM
|
||||||
%token NVARCHAR_SYM
|
%token NVARCHAR_SYM
|
||||||
%token OFFSET_SYM
|
%token OFFSET_SYM
|
||||||
|
%token OJ_SYM
|
||||||
%token OLD_PASSWORD
|
%token OLD_PASSWORD
|
||||||
%token ON
|
%token ON
|
||||||
%token ONE_SHOT_SYM
|
%token ONE_SHOT_SYM
|
||||||
@ -5246,11 +5247,14 @@ table_factor:
|
|||||||
}
|
}
|
||||||
expr '}'
|
expr '}'
|
||||||
{
|
{
|
||||||
|
LEX *lex= Lex;
|
||||||
YYERROR_UNLESS($3 && $7);
|
YYERROR_UNLESS($3 && $7);
|
||||||
add_join_on($7,$10);
|
add_join_on($7,$10);
|
||||||
Lex->pop_context();
|
Lex->pop_context();
|
||||||
$7->outer_join|=JOIN_TYPE_LEFT;
|
$7->outer_join|=JOIN_TYPE_LEFT;
|
||||||
$$=$7;
|
$$=$7;
|
||||||
|
if (!($$= lex->current_select->nest_last_join(lex->thd)))
|
||||||
|
YYABORT;
|
||||||
}
|
}
|
||||||
| select_derived_init get_select_lex select_derived2
|
| select_derived_init get_select_lex select_derived2
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user