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

MySQL数据库

开发平台:

Visual C++

  1. ###################### ps_modify1.inc ########################
  2. #                                                            #
  3. #  Tests for prepared statements: big INSERT .. SELECTs      #
  4. #                                                            #
  5. ##############################################################
  6. #
  7. # NOTE: THESE TESTS CANNOT BE APPLIED TO TABLES OF TYPE MERGE.
  8. #       Test which can be applied to MERGE tables should be stored in
  9. #            include/ps_modify.inc .
  10. #
  11. #    
  12. # NOTE: PLEASE SEE ps_1general.test (bottom) 
  13. #       BEFORE ADDING NEW TEST CASES HERE !!!
  14. #
  15. # Please be aware, that this file will be sourced by several test case files
  16. # stored within the subdirectory 't'. So every change here will affect 
  17. # several test cases.
  18. #
  19. # Please do not modify the structure (DROP/ALTER..) of the tables
  20. #     't1' and 't9'. 
  21. #
  22. # But you are encouraged to use these two tables within your statements
  23. # (DELETE/UPDATE/...) whenever possible. 
  24. #     t1   - very simple table
  25. #     t9   - table with nearly all available column types
  26. #
  27. # The structure and the content of these tables can be found in
  28. #     include/ps_create.inc  CREATE TABLE ...
  29. #     include/ps_renew.inc   DELETE all rows and INSERT some rows
  30. #
  31. # Both tables are managed by the same storage engine.
  32. # The type of the storage engine is stored in the variable '$type' . 
  33. #------------------- Please insert your test cases here -------------------#
  34. #-------- Please be very carefull when editing behind this line  ----------#
  35. --source include/ps_renew.inc
  36. #
  37. # add a NULL row to t1: this row is used only in this test
  38. insert into t1 values(0,NULL) ;
  39. ## big insert select statements
  40. set @duplicate='duplicate ' ;
  41. set @1000=1000 ;
  42. set @5=5 ;
  43. select a,b from t1 where a < 5 order by a ;
  44. --enable_info
  45. insert into t1 select a + @1000, concat(@duplicate,b) from t1
  46. where a < @5 ;
  47. --disable_info
  48. select a,b from t1 where a >= 1000 order by a ;
  49. delete from t1 where a >= 1000 ;
  50. prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1
  51. where a < ? ' ;
  52. --enable_info
  53. execute stmt1 using @1000, @duplicate, @5;
  54. --disable_info
  55. select a,b from t1 where a >= 1000 order by a ;
  56. delete from t1 where a >= 1000 ;
  57. set @1=1 ;
  58. set @2=2 ;
  59. set @100=100 ;
  60. set @float=1.00;
  61. set @five='five' ;
  62. --disable_warnings
  63. drop table if exists t2;
  64. --enable_warnings
  65. create table t2 like t1 ;
  66. --enable_info
  67. insert into t2 (b,a) 
  68. select @duplicate, sum(first.a) from t1 first, t1 second
  69.   where first.a <> @5 and second.b = first.b
  70.      and second.b <> @five
  71.   group by second.b
  72.   having sum(second.a) > @2
  73. union
  74. select b, a + @100 from t1
  75.   where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b 
  76.                  from t1);
  77. --disable_info
  78. select a,b from t2 order by a ;
  79. delete from t2 ;
  80. prepare stmt1 from ' insert into t2 (b,a) 
  81. select ?, sum(first.a)
  82.   from t1 first, t1 second 
  83.   where first.a <> ? and second.b = first.b and second.b <> ?
  84.   group by second.b
  85.   having sum(second.a) > ?
  86. union
  87. select b, a + ? from t1
  88.   where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b 
  89.                  from t1 ) ' ;
  90. --enable_info
  91. execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ;
  92. --disable_info
  93. select a,b from t2 order by a ;
  94. drop table t2;