Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 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 : OFF Directory : /www/server/mysql/mysql-test/t/ |
Upload File : |
# The include statement below is a temp one for tests that are yet to #be ported to run with InnoDB, #but needs to be kept for tests that would need MyISAM in future. --source include/force_myisam_default.inc # # Test negation elimination # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (a int, key (a)); insert into t1 values (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12), (13), (14), (15), (16), (17), (18), (19); explain select * from t1 where not(not(a)); select * from t1 where not(not(a)); explain select * from t1 where not(not(not(a > 10))); select * from t1 where not(not(not(a > 10))); explain select * from t1 where not(not(not(a < 5) and not(a > 10))); select * from t1 where not(not(not(a < 5) and not(a > 10))); explain select * from t1 where not(a = 10); select * from t1 where not(a = 10); explain select * from t1 where not(a != 10); select * from t1 where not(a != 1); explain select * from t1 where not(a < 10); select * from t1 where not(a < 10); explain select * from t1 where not(a >= 10); select * from t1 where not(a >= 10); explain select * from t1 where not(a > 10); select * from t1 where not(a > 10); explain select * from t1 where not(a <= 10); select * from t1 where not(a <= 10); explain select * from t1 where not(a is null); select * from t1 where not(a is null); explain select * from t1 where not(a is not null); select * from t1 where not(a is not null); explain select * from t1 where not(a < 5 or a > 15); select * from t1 where not(a < 5 or a > 15); explain select * from t1 where not(a < 15 and a > 5); select * from t1 where not(a < 15 and a > 5); explain select * from t1 where a = 2 or not(a < 10); select * from t1 where a = 2 or not(a < 10); explain select * from t1 where a > 5 and not(a > 10); select * from t1 where a > 5 and not(a > 10); explain select * from t1 where a > 5 xor a < 10; select * from t1 where a > 5 xor a < 10; explain select * from t1 where a = 2 or not(a < 5 or a > 15); select * from t1 where a = 2 or not(a < 5 or a > 15); explain select * from t1 where a = 7 or not(a < 15 and a > 5); select * from t1 where a = 7 or not(a < 15 and a > 5); explain select * from t1 where NULL or not(a < 15 and a > 5); select * from t1 where NULL or not(a < 15 and a > 5); explain select * from t1 where not(NULL and a > 5); select * from t1 where not(NULL and a > 5); explain select * from t1 where not(NULL or a); select * from t1 where not(NULL or a); explain select * from t1 where not(NULL and a); select * from t1 where not(NULL and a); explain select * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17)); select * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17)); explain select * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17)); select * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17)); explain select * from t1 where ((a between 5 and 15) and (not(a like 10))); select * from t1 where ((a between 5 and 15) and (not(a like 10))); --echo # XOR (Note: XOR is negated by negating one of the operands) --echo # Should return 6,7 SELECT * FROM t1 WHERE ((a > 5) XOR (a > 7)); --echo # Should return 0..5,8..19 SELECT * FROM t1 WHERE ((NOT (a > 5)) XOR (a > 7)); SELECT * FROM t1 WHERE ((a > 5) XOR (NOT (a > 7))); SELECT * FROM t1 WHERE NOT ((a > 5) XOR (a > 7)); --echo # Should return 6,7 SELECT * FROM t1 WHERE NOT ((NOT (a > 5)) XOR (a > 7)); SELECT * FROM t1 WHERE NOT ((a > 5) XOR (NOT (a > 7))); --echo # Should return 0..5,8..19 SELECT * FROM t1 WHERE NOT ((NOT (a > 5)) XOR (NOT (a > 7))); --echo # Should have empty result SELECT * FROM t1 WHERE (NULL XOR (a > 7)); SELECT * FROM t1 WHERE NOT (NULL XOR (a > 7)); --echo # Should be simplified to "...WHERE (a XOR a) EXPLAIN EXTENDED SELECT * FROM t1 WHERE NOT ((NOT a) XOR (a)); --echo # Should be simplified to "...WHERE (a XOR a) EXPLAIN EXTENDED SELECT * FROM t1 WHERE NOT (a XOR (NOT a)); --echo # End XOR delete from t1 where a > 3; select a, not(not(a)) from t1; explain extended select a, not(not(a)), not(a <= 2 and not(a)), not(a not like "1"), not (a not in (1,2)), not(a != 2) from t1 where not(not(a)) having not(not(a)); drop table t1; # End of 4.1 tests