mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Merge rurik.mysql.com:/home/igor/tmp_merge
into rurik.mysql.com:/home/igor/dev/mysql-5.1-0 mysql-test/r/join_outer.result: Auto merged sql/sql_yacc.yy: Auto merged
This commit is contained in:
commit
de0e4a9a8f
3 changed files with 52 additions and 0 deletions
|
@ -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 t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
|
||||
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;
|
||||
|
||||
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;
|
||||
|
|
|
@ -475,6 +475,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||
%token NUMERIC_SYM
|
||||
%token NVARCHAR_SYM
|
||||
%token OFFSET_SYM
|
||||
%token OJ_SYM
|
||||
%token OLD_PASSWORD
|
||||
%token ON
|
||||
%token ONE_SHOT_SYM
|
||||
|
@ -6943,11 +6944,14 @@ table_factor:
|
|||
}
|
||||
expr '}'
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
YYERROR_UNLESS($3 && $7);
|
||||
add_join_on($7,$10);
|
||||
Lex->pop_context();
|
||||
$7->outer_join|=JOIN_TYPE_LEFT;
|
||||
$$=$7;
|
||||
if (!($$= lex->current_select->nest_last_join(lex->thd)))
|
||||
YYABORT;
|
||||
}
|
||||
| select_derived_init get_select_lex select_derived2
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue