polardbxengine/mysql-test/suite/query_rewrite_plugins/r/joins.result

80 lines
4.1 KiB
Plaintext

CREATE TABLE t1 ( c1 INTEGER, c2 INTEGER );
CREATE TABLE t2 ( c1 INTEGER, c2 INTEGER );
INSERT INTO t1 VALUES (1, 2), (2, 0), (3, 1), (4, 3), (5, 4), (6, 1), (7, 2);
INSERT INTO t2 VALUES (1, 1), (3, 3), (4, 0), (6, 3), (9, 1), (8, 10);
# Query rewrite plugin was installed.
SET sql_mode = 'PIPES_AS_CONCAT';
INSERT INTO query_rewrite.rewrite_rules( pattern, replacement )
VALUES ( 'SELECT * FROM test.t1 JOIN test.t2 ON ' ||
'( test.t1.c1 = test.t2.c1 AND test.t1.c2 > ? )',
'SELECT * FROM test.t1 JOIN test.t2 ON ' ||
'( test.t1.c1 = test.t2.c1 AND test.t2.c2 > ? )' ),
( 'SELECT * FROM ( SELECT * FROM test.t2 WHERE c1=? ) b',
'SELECT * FROM test.t1 WHERE c1=?' ),
( 'SELECT ( SELECT c1 FROM test.t2 WHERE c2=? ) c1',
'SELECT c1, c2 FROM test.t1 WHERE c2=?' ),
( 'SELECT * FROM test.t1 ' ||
'JOIN ( SELECT * FROM test.t2 WHERE c1 > ? ) a ' ||
'ON ( test.t1.c1 = test.t2.c1 AND test.t1.c2 <> ? )',
'SELECT * FROM test.t1 JOIN test.t2 ' ||
'ON ( test.t1.c1 = test.t2.c1 AND test.t2.c1 > ? AND test.t1.c2 <> ? )'),
( 'WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = ? ) SELECT c1 FROM qn',
'SELECT c1, c2+1 FROM test.t1 WHERE c2=?' ),
( 'WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = ? ) SELECT * FROM qn, qn AS qn1',
'WITH qn(a,b) AS ( SELECT c1,c2+1 FROM test.t1 WHERE c2 = ? ) SELECT * FROM qn, qn AS qn1'
);
CALL query_rewrite.flush_rewrite_rules();
SELECT * FROM query_rewrite.rewrite_rules;
id pattern pattern_database replacement enabled message
1 SELECT * FROM test.t1 JOIN test.t2 ON ( test.t1.c1 = test.t2.c1 AND test.t1.c2 > ? ) NULL SELECT * FROM test.t1 JOIN test.t2 ON ( test.t1.c1 = test.t2.c1 AND test.t2.c2 > ? ) YES NULL
2 SELECT * FROM ( SELECT * FROM test.t2 WHERE c1=? ) b NULL SELECT * FROM test.t1 WHERE c1=? YES NULL
3 SELECT ( SELECT c1 FROM test.t2 WHERE c2=? ) c1 NULL SELECT c1, c2 FROM test.t1 WHERE c2=? YES NULL
4 SELECT * FROM test.t1 JOIN ( SELECT * FROM test.t2 WHERE c1 > ? ) a ON ( test.t1.c1 = test.t2.c1 AND test.t1.c2 <> ? ) NULL SELECT * FROM test.t1 JOIN test.t2 ON ( test.t1.c1 = test.t2.c1 AND test.t2.c1 > ? AND test.t1.c2 <> ? ) YES NULL
5 WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = ? ) SELECT c1 FROM qn NULL SELECT c1, c2+1 FROM test.t1 WHERE c2=? YES NULL
6 WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = ? ) SELECT * FROM qn, qn AS qn1 NULL WITH qn(a,b) AS ( SELECT c1,c2+1 FROM test.t1 WHERE c2 = ? ) SELECT * FROM qn, qn AS qn1 YES NULL
SELECT * FROM t1 JOIN t2 ON ( t1.c1 = t2.c1 AND t2.c2 > 2 );
c1 c2 c1 c2
3 1 3 3
6 1 6 3
SELECT * FROM ( SELECT * FROM test.t2 WHERE c1 = 3 ) b;
c1 c2
3 1
Warnings:
Note 1105 Query 'SELECT * FROM ( SELECT * FROM test.t2 WHERE c1 = 3 ) b' rewritten to 'SELECT * FROM test.t1 WHERE c1=3' by a query rewrite plugin
SELECT ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) c1;
c1 c2
3 1
6 1
Warnings:
Note 1105 Query 'SELECT ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) c1' rewritten to 'SELECT c1, c2 FROM test.t1 WHERE c2=1' by a query rewrite plugin
SELECT *
FROM test.t1 JOIN ( SELECT * FROM test.t2 WHERE c1 > 1 ) a
ON ( test.t1.c1 = test.t2.c1 AND test.t1.c2 <> 3 );
c1 c2 c1 c2
3 1 3 3
6 1 6 3
Warnings:
Note 1105 Query 'SELECT *
FROM test.t1 JOIN ( SELECT * FROM test.t2 WHERE c1 > 1 ) a
ON ( test.t1.c1 = test.t2.c1 AND test.t1.c2 <> 3 )' rewritten to 'SELECT * FROM test.t1 JOIN test.t2 ON ( test.t1.c1 = test.t2.c1 AND test.t2.c1 > 1 AND test.t1.c2 <> 3 )' by a query rewrite plugin
WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) SELECT c1 FROM qn;
c1 c2+1
3 2
6 2
Warnings:
Note 1105 Query 'WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) SELECT c1 FROM qn' rewritten to 'SELECT c1, c2+1 FROM test.t1 WHERE c2=1' by a query rewrite plugin
WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) SELECT * FROM qn, qn AS qn1;
a b a b
3 2 3 2
3 2 6 2
6 2 3 2
6 2 6 2
Note 1105 Query 'WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) SELECT * FROM qn, qn AS qn1' rewritten to 'WITH qn(a,b) AS ( SELECT c1,c2+1 FROM test.t1 WHERE c2 = 1 ) SELECT * FROM qn, qn AS qn1' by a query rewrite plugin
Warnings:
DROP TABLE t1;
DROP TABLE t2;
SET sql_mode = DEFAULT;
Warnings:
Warning 1620 Plugin is busy and will be uninstalled on shutdown
# Query rewrite plugin was queued for uninstalling.