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

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # test of new fulltext search features
  3. #
  4. #
  5. # two-level tree
  6. #
  7. --disable_warnings
  8. DROP TABLE IF EXISTS t1;
  9. --enable_warnings
  10. CREATE TABLE t1 (
  11.   i int(10) unsigned not null auto_increment primary key,
  12.   a varchar(255) not null,
  13.   FULLTEXT KEY (a)
  14. ) ENGINE=MyISAM;
  15. # two-level entry, second-level tree with depth 2
  16. --disable_query_log
  17. let $1=260;
  18. while ($1)
  19. {
  20.   eval insert t1 (a) values ('aaaxxx');
  21.   dec $1;
  22. }
  23. # two-level entry, second-level tree has only one page
  24. let $1=255;
  25. while ($1)
  26. {
  27.   eval insert t1 (a) values ('aaazzz');
  28.   dec $1;
  29. }
  30. # one-level entry (entries)
  31. let $1=250;
  32. while ($1)
  33. {
  34.   eval insert t1 (a) values ('aaayyy');
  35.   dec $1;
  36. }
  37. --enable_query_log
  38. # converting to two-level
  39. repair table t1 quick;
  40. check table t1;
  41. optimize table t1; # BUG#5327 - mi_sort_index() of 2-level tree
  42. check table t1;
  43. select count(*) from t1 where match a against ('aaaxxx');
  44. select count(*) from t1 where match a against ('aaayyy');
  45. select count(*) from t1 where match a against ('aaazzz');
  46. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  47. select count(*) from t1 where match a against ('aaayyy' in boolean mode);
  48. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  49. select count(*) from t1 where match a against ('aaaxxx aaayyy aaazzz');
  50. select count(*) from t1 where match a against ('aaaxxx aaayyy aaazzz' in boolean mode);
  51. select count(*) from t1 where match a against ('aaax*' in boolean mode);
  52. select count(*) from t1 where match a against ('aaay*' in boolean mode);
  53. select count(*) from t1 where match a against ('aaa*' in boolean mode);
  54. # mi_write:
  55. insert t1 (a) values ('aaaxxx'),('aaayyy');
  56. # call to enlarge_root() below
  57. insert t1 (a) values ('aaazzz'),('aaazzz'),('aaazzz'),('aaazzz'),('aaazzz');
  58. select count(*) from t1 where match a against ('aaaxxx');
  59. select count(*) from t1 where match a against ('aaayyy');
  60. select count(*) from t1 where match a against ('aaazzz');
  61. # mi_delete
  62. insert t1 (a) values ('aaaxxx 000000');
  63. select count(*) from t1 where match a against ('000000');
  64. delete from t1 where match a against ('000000');
  65. select count(*) from t1 where match a against ('000000');
  66. select count(*) from t1 where match a against ('aaaxxx');
  67. delete from t1 where match a against ('aaazzz');
  68. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  69. select count(*) from t1 where match a against ('aaayyy' in boolean mode);
  70. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  71. # double-check without index
  72. select count(*) from t1 where a = 'aaaxxx';
  73. select count(*) from t1 where a = 'aaayyy';
  74. select count(*) from t1 where a = 'aaazzz';
  75. # update
  76. insert t1 (a) values ('aaaxxx 000000');
  77. select count(*) from t1 where match a against ('000000');
  78. update t1 set a='aaazzz' where match a against ('000000');
  79. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  80. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  81. update t1 set a='aaazzz' where a = 'aaaxxx';
  82. update t1 set a='aaaxxx' where a = 'aaayyy';
  83. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  84. select count(*) from t1 where match a against ('aaayyy' in boolean mode);
  85. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  86. drop table t1;
  87. CREATE TABLE t1 (
  88.   i int(10) unsigned not null auto_increment primary key,
  89.   a varchar(255) not null,
  90.   FULLTEXT KEY (a)
  91. ) ENGINE=MyISAM;
  92. #
  93. # now same as about but w/o repair table
  94. # 2-level tree created by mi_write
  95. #
  96. # two-level entry, second-level tree with depth 2
  97. --disable_query_log
  98. let $1=260;
  99. while ($1)
  100. {
  101.   eval insert t1 (a) values ('aaaxxx');
  102.   dec $1;
  103. }
  104. let $1=255;
  105. while ($1)
  106. {
  107.   eval insert t1 (a) values ('aaazzz');
  108.   dec $1;
  109. }
  110. let $1=250;
  111. while ($1)
  112. {
  113.   eval insert t1 (a) values ('aaayyy');
  114.   dec $1;
  115. }
  116. --enable_query_log
  117. select count(*) from t1 where match a against ('aaaxxx');
  118. select count(*) from t1 where match a against ('aaayyy');
  119. select count(*) from t1 where match a against ('aaazzz');
  120. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  121. select count(*) from t1 where match a against ('aaayyy' in boolean mode);
  122. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  123. select count(*) from t1 where match a against ('aaaxxx aaayyy aaazzz');
  124. select count(*) from t1 where match a against ('aaaxxx aaayyy aaazzz' in boolean mode);
  125. select count(*) from t1 where match a against ('aaax*' in boolean mode);
  126. select count(*) from t1 where match a against ('aaay*' in boolean mode);
  127. select count(*) from t1 where match a against ('aaa*' in boolean mode);
  128. # mi_write:
  129. insert t1 (a) values ('aaaxxx'),('aaayyy');
  130. insert t1 (a) values ('aaazzz'),('aaazzz'),('aaazzz'),('aaazzz'),('aaazzz');
  131. select count(*) from t1 where match a against ('aaaxxx');
  132. select count(*) from t1 where match a against ('aaayyy');
  133. select count(*) from t1 where match a against ('aaazzz');
  134. # mi_delete
  135. insert t1 (a) values ('aaaxxx 000000');
  136. select count(*) from t1 where match a against ('000000');
  137. delete from t1 where match a against ('000000');
  138. select count(*) from t1 where match a against ('000000');
  139. select count(*) from t1 where match a against ('aaaxxx');
  140. delete from t1 where match a against ('aaazzz');
  141. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  142. select count(*) from t1 where match a against ('aaayyy' in boolean mode);
  143. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  144. # double-check without index
  145. select count(*) from t1 where a = 'aaaxxx';
  146. select count(*) from t1 where a = 'aaayyy';
  147. select count(*) from t1 where a = 'aaazzz';
  148. # update
  149. insert t1 (a) values ('aaaxxx 000000');
  150. select count(*) from t1 where match a against ('000000');
  151. update t1 set a='aaazzz' where match a against ('000000');
  152. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  153. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  154. update t1 set a='aaazzz' where a = 'aaaxxx';
  155. update t1 set a='aaaxxx' where a = 'aaayyy';
  156. select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
  157. select count(*) from t1 where match a against ('aaayyy' in boolean mode);
  158. select count(*) from t1 where match a against ('aaazzz' in boolean mode);
  159. drop table t1;
  160. # End of 4.1 tests