polardbxengine/mysql-test/suite/query_rewrite_plugins/t/joins.test

55 lines
2.2 KiB
Plaintext

--source suite/query_rewrite_plugins/include/have_plugin_rewriter.inc
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);
--source suite/query_rewrite_plugins/include/install_rewriter.inc
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;
SELECT * FROM t1 JOIN t2 ON ( t1.c1 = t2.c1 AND t2.c2 > 2 );
SELECT * FROM ( SELECT * FROM test.t2 WHERE c1 = 3 ) b;
SELECT ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) c1;
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 );
WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) SELECT c1 FROM qn;
--sorted_result
WITH qn AS ( SELECT c1 FROM test.t2 WHERE c2 = 1 ) SELECT * FROM qn, qn AS qn1;
DROP TABLE t1;
DROP TABLE t2;
SET sql_mode = DEFAULT;
--source suite/query_rewrite_plugins/include/uninstall_rewriter.inc