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

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # Test of procedure analyse
  3. #
  4. --disable_warnings
  5. drop table if exists t1,t2;
  6. --enable_warnings
  7. create table t1 (i int, j int, empty_string char(10), bool char(1), d date);
  8. insert into t1 values (1,2,"","Y","2002-03-03"), (3,4,"","N","2002-03-04"), (5,6,"","Y","2002-03-04"), (7,8,"","N","2002-03-05");
  9. select count(*) from t1 procedure analyse();
  10. select * from t1 procedure analyse();
  11. select * from t1 procedure analyse(2);
  12. create table t2 select * from t1 procedure analyse();
  13. select * from t2;
  14. drop table t1,t2;
  15. EXPLAIN SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE();
  16. #
  17. # Test with impossible where
  18. #
  19. create table t1 (a int not null);
  20. create table t2 select * from t1 where 0=1 procedure analyse();
  21. show create table t2;
  22. select * from t1 where 0=1 procedure analyse();
  23. insert into t1 values(1);
  24. drop table t2;
  25. create table t2 select * from t1 where 0=1 procedure analyse();
  26. show create table t2;
  27. select * from t2;
  28. insert into t2 select * from t1 procedure analyse();
  29. select * from t2;
  30. insert into t1 values(2);
  31. drop table t2;
  32. create table t2 select * from t1 where 0=1 procedure analyse();
  33. show create table t2;
  34. select * from t2;
  35. insert into t2 select * from t1 procedure analyse();
  36. select * from t2;
  37. drop table t1,t2;
  38. #
  39. # Bug#2813 - analyse does not quote string values in enums from string
  40. #
  41. create table t1 (v varchar(128));
  42. insert into t1 values ('abc'),('abc'def\hij"klmopq'),('''),('"'),('\'),('a'),('b''),('c"'),('d\'),(''b'),('"c'),('\d'),('ab'),('a''''b'),('a""""b'),('a\\\\b'),(''\"'),(''''),('""'),('\\'),('TheZEnd');
  43. select * from t1 procedure analyse();
  44. drop table t1;
  45. #
  46. # Bug#10716 - Procedure Analyse results in wrong values for optimal field type
  47. #
  48. create table t1 (d double);
  49. insert into t1 values (100000);
  50. select * from t1 procedure analyse (1,1);
  51. drop table t1;
  52. #
  53. # Bug #14138 ROLLUP and PROCEDURE ANALYSE() hang server
  54. #
  55. create table t1 (product varchar(32), country_id int not null, year int,
  56.                  profit int);
  57. insert into t1  values ( 'Computer', 2,2000, 1200),
  58.     ( 'TV', 1, 1999, 150),
  59.     ( 'Calculator', 1, 1999,50),
  60.     ( 'Computer', 1, 1999,1500),
  61.     ( 'Computer', 1, 2000,1500),
  62.     ( 'TV', 1, 2000, 150),
  63.     ( 'TV', 2, 2000, 100),
  64.     ( 'TV', 2, 2000, 100),
  65.     ( 'Calculator', 1, 2000,75),
  66.     ( 'Calculator', 2, 2000,75),
  67.     ( 'TV', 1, 1999, 100),
  68.     ( 'Computer', 1, 1999,1200),
  69.     ( 'Computer', 2, 2000,1500),
  70.     ( 'Calculator', 2, 2000,75),
  71.     ( 'Phone', 3, 2003,10)
  72.     ;
  73. create table t2 (country_id int primary key, country char(20) not null); 
  74. insert into t2 values (1, 'USA'),(2,'India'), (3,'Finland');
  75. select product, sum(profit),avg(profit) from t1 group by product with rollup procedure analyse();
  76. drop table t1,t2;
  77. # End of 4.1 tests