55 lines
2.2 KiB
Plaintext
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
|