negation_elimination.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # Test negation elimination
  3. #
  4. --disable_warnings
  5. drop table if exists t1;
  6. --enable_warnings
  7. create table t1 (a int, key (a));
  8. insert into t1 values (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
  9. (10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
  10. explain select * from t1 where not(not(a));
  11. select * from t1 where not(not(a));
  12. explain select * from t1 where not(not(not(a > 10)));
  13. select * from t1 where not(not(not(a > 10)));
  14. explain select * from t1 where not(not(not(a < 5) and not(a > 10)));
  15. select * from t1 where not(not(not(a < 5) and not(a > 10)));
  16. explain select * from t1 where not(a = 10);
  17. select * from t1 where not(a = 10);
  18. explain select * from t1 where not(a != 10);
  19. select * from t1 where not(a != 1);
  20. explain select * from t1 where not(a < 10);
  21. select * from t1 where not(a < 10);
  22. explain select * from t1 where not(a >= 10);
  23. select * from t1 where not(a >= 10);
  24. explain select * from t1 where not(a > 10);
  25. select * from t1 where not(a > 10);
  26. explain select * from t1 where not(a <= 10);
  27. select * from t1 where not(a <= 10);
  28. explain select * from t1 where not(a is null);
  29. select * from t1 where not(a is null);
  30. explain select * from t1 where not(a is not null);
  31. select * from t1 where not(a is not null);
  32. explain select * from t1 where not(a < 5 or a > 15);
  33. select * from t1 where not(a < 5 or a > 15);
  34. explain select * from t1 where not(a < 15 and a > 5);
  35. select * from t1 where not(a < 15 and a > 5);
  36. explain select * from t1 where a = 2 or not(a < 10);
  37. select * from t1 where a = 2 or not(a < 10);
  38. explain select * from t1 where a > 5 and not(a > 10);
  39. select * from t1 where a > 5 and not(a > 10);
  40. explain select * from t1 where a > 5 xor a < 10;
  41. select * from t1 where a > 5 xor a < 10;
  42. explain select * from t1 where a = 2 or not(a < 5 or a > 15);
  43. select * from t1 where a = 2 or not(a < 5 or a > 15);
  44. explain select * from t1 where a = 7 or not(a < 15 and a > 5);
  45. select * from t1 where a = 7 or not(a < 15 and a > 5);
  46. explain select * from t1 where NULL or not(a < 15 and a > 5);
  47. select * from t1 where NULL or not(a < 15 and a > 5);
  48. explain select * from t1 where not(NULL and a > 5);
  49. select * from t1 where not(NULL and a > 5);
  50. explain select * from t1 where not(NULL or a);
  51. select * from t1 where not(NULL or a);
  52. explain select * from t1 where not(NULL and a);
  53. select * from t1 where not(NULL and a);
  54. explain select * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17));
  55. select * from t1 where not((a < 5 or a < 10) and (not(a > 16) or a > 17));
  56. explain select * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17));
  57. select * from t1 where not((a < 5 and a < 10) and (not(a > 16) or a > 17));
  58. explain select * from t1 where ((a between 5 and 15) and (not(a like 10)));
  59. select * from t1 where ((a between 5 and 15) and (not(a like 10)));
  60. delete from t1 where a > 3;
  61. select a, not(not(a)) from t1;
  62. 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));
  63. drop table t1;
  64. # End of 4.1 tests