Commit 3066c377 authored by Sergey Petrunya's avatar Sergey Petrunya

DS-MRR improvements: review feedback

- Switch from one bi-directional buffer class to two 
  virtual inheritance-based forward and backward buffer classes.
parent 51f90976
...@@ -865,12 +865,12 @@ LEFT JOIN ...@@ -865,12 +865,12 @@ LEFT JOIN
(t1,t2) (t1,t2)
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b; ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
a b a b a b a b a b a b
4 2 1 2 4 2
4 2 1 2 3 2 4 2 1 2 3 2
4 2 1 2 4 2 4 2 1 2 4 2
4 2 1 2 3 2 4 2 1 2 3 2
4 2 1 2 4 2 4 2 1 2 4 2
4 2 1 2 3 2 4 2 1 2 3 2
4 2 1 2 4 2
NULL NULL 2 2 3 2 NULL NULL 2 2 3 2
NULL NULL 2 2 4 2 NULL NULL 2 2 4 2
EXPLAIN EXTENDED EXPLAIN EXTENDED
...@@ -1105,8 +1105,8 @@ t0.b=t1.b AND ...@@ -1105,8 +1105,8 @@ t0.b=t1.b AND
(t8.b=t9.b OR t8.c IS NULL) AND (t8.b=t9.b OR t8.c IS NULL) AND
(t9.a=1); (t9.a=1);
a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b
1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2
1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2 1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2
1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2
1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1 1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1
1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1 1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1
1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2 1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2
...@@ -1785,8 +1785,8 @@ ON t7.b=t8.b AND t6.b < 10 ...@@ -1785,8 +1785,8 @@ ON t7.b=t8.b AND t6.b < 10
ON t6.b >= 2 AND t5.b=t7.b AND ON t6.b >= 2 AND t5.b=t7.b AND
(t8.a > 0 OR t8.c IS NULL); (t8.a > 0 OR t8.c IS NULL);
a b a b a b a b a b a b a b a b
2 2 3 2 2 2 1 2
2 2 1 2 2 2 1 2 2 2 1 2 2 2 1 2
2 2 3 2 2 2 1 2
1 1 1 2 1 1 NULL NULL 1 1 1 2 1 1 NULL NULL
1 1 3 2 1 1 NULL NULL 1 1 3 2 1 1 NULL NULL
3 3 NULL NULL NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL
......
...@@ -352,14 +352,14 @@ Thimble Smith Happy 3 3 ...@@ -352,14 +352,14 @@ Thimble Smith Happy 3 3
Lilliana Angelovska NULL NULL NULL Lilliana Angelovska NULL NULL NULL
select t1.name, t2.name, t2.id,t3.id from t1 right join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner; select t1.name, t2.name, t2.id,t3.id from t1 right join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner;
name name id id name name id id
Antonio Paz Perrito 2 1
Antonio Paz El Gato 1 1 Antonio Paz El Gato 1 1
Antonio Paz Perrito 2 1
Thimble Smith Happy 3 3 Thimble Smith Happy 3 3
NULL NULL NULL 2 NULL NULL NULL 2
select t1.name, t2.name, t2.id, t2.owner, t3.id from t1 left join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner; select t1.name, t2.name, t2.id, t2.owner, t3.id from t1 left join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner;
name name id owner id name name id owner id
Antonio Paz Perrito 2 1 1
Antonio Paz El Gato 1 1 1 Antonio Paz El Gato 1 1 1
Antonio Paz Perrito 2 1 1
Thimble Smith Happy 3 3 3 Thimble Smith Happy 3 3 3
NULL NULL NULL NULL 2 NULL NULL NULL NULL 2
drop table t1,t2; drop table t1,t2;
...@@ -413,9 +413,9 @@ insert into t2 values (1, 2, 3),(2, 2, 8), (4,3,9),(3,2,10); ...@@ -413,9 +413,9 @@ insert into t2 values (1, 2, 3),(2, 2, 8), (4,3,9),(3,2,10);
select t1.*, t2.* from t1 left join t2 on t1.n = t2.n and select t1.*, t2.* from t1 left join t2 on t1.n = t2.n and
t1.m = t2.m where t1.n = 1; t1.m = t2.m where t1.n = 1;
n m o n m o n m o n m o
1 2 9 1 2 3
1 2 7 1 2 3
1 2 11 1 2 3 1 2 11 1 2 3
1 2 7 1 2 3
1 2 9 1 2 3
1 3 9 NULL NULL NULL 1 3 9 NULL NULL NULL
select t1.*, t2.* from t1 left join t2 on t1.n = t2.n and select t1.*, t2.* from t1 left join t2 on t1.n = t2.n and
t1.m = t2.m where t1.n = 1 order by t1.o; t1.m = t2.m where t1.n = 1 order by t1.o;
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment