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

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # test of HANDLER ...
  3. #
  4. --disable_warnings
  5. drop table if exists t1;
  6. --enable_warnings
  7. create table t1 (a int, b char(10), key a(a), key b(a,b));
  8. insert into t1 values
  9. (17,"ddd"),(18,"eee"),(19,"fff"),(19,"yyy"),
  10. (14,"aaa"),(15,"bbb"),(16,"ccc"),(16,"xxx"),
  11. (20,"ggg"),(21,"hhh"),(22,"iii");
  12. handler t1 open as t2;
  13. -- error 1064
  14. handler t2 read a=(SELECT 1);
  15. handler t2 read a first;
  16. handler t2 read a next;
  17. handler t2 read a next;
  18. handler t2 read a prev;
  19. handler t2 read a last;
  20. handler t2 read a prev;
  21. handler t2 read a prev;
  22. handler t2 read a first;
  23. handler t2 read a prev;
  24. handler t2 read a last;
  25. handler t2 read a prev;
  26. handler t2 read a next;
  27. handler t2 read a next;
  28. handler t2 read a=(15);
  29. handler t2 read a=(16);
  30. --error 1070
  31. handler t2 read a=(19,"fff");
  32. handler t2 read b=(19,"fff");
  33. handler t2 read b=(19,"yyy");
  34. handler t2 read b=(19);
  35. --error 1109
  36. handler t1 read a last;
  37. handler t2 read a=(11);
  38. handler t2 read a>=(11);
  39. handler t2 read a=(18);
  40. handler t2 read a>=(18);
  41. handler t2 read a>(18);
  42. handler t2 read a<=(18);
  43. handler t2 read a<(18);
  44. handler t2 read a first limit 5;
  45. handler t2 read a next  limit 3;
  46. handler t2 read a prev  limit 10;
  47. handler t2 read a>=(16) limit 4;
  48. handler t2 read a>=(16) limit 2,2;
  49. handler t2 read a last  limit 3;
  50. handler t2 read a=(19);
  51. handler t2 read a=(19) where b="yyy";
  52. handler t2 read first;
  53. handler t2 read next;
  54. handler t2 read next;
  55. --error 1064
  56. handler t2 read last;
  57. handler t2 close;
  58. #
  59. # DROP TABLE / ALTER TABLE
  60. #
  61. handler t1 open as t2;
  62. drop table t1;
  63. create table t1 (a int);
  64. insert into t1 values (17);
  65. --error 1109
  66. handler t2 read first;
  67. handler t1 open as t2;
  68. alter table t1 engine=MyISAM;
  69. --error 1109
  70. handler t2 read first;
  71. drop table t1;
  72. #
  73. # Test case for the bug #787
  74. #
  75. create table t1 (a int);
  76. insert into t1 values (1),(2),(3),(4),(5),(6);
  77. delete from t1 limit 2;
  78. handler t1 open;
  79. handler t1 read first;
  80. handler t1 read first limit 1,1;
  81. handler t1 read first limit 2,2;
  82. delete from t1 limit 3;
  83. handler t1 read first;
  84. drop table t1;
  85. #
  86. # Test for #751
  87. #
  88. create table t1(a int, index(a));
  89. insert into t1 values (1), (2), (3);
  90. handler t1 open;
  91. --error 1054
  92. handler t1 read a=(W);
  93. --error 1210
  94. handler t1 read a=(a);
  95. drop table t1;
  96. #
  97. # BUG#2304
  98. #
  99. create table t1 (a char(5));
  100. insert into t1 values ("Ok");
  101. handler t1 open as t;
  102. handler t read first;
  103. use mysql;
  104. handler t read first;
  105. handler t close;
  106. handler test.t1 open as t;
  107. handler t read first;
  108. handler t close;
  109. use test;
  110. drop table t1;
  111. #
  112. # BUG#3649
  113. #
  114. create table t1 ( a int, b int, INDEX a (a) );
  115. insert into t1 values (1,2), (2,1);
  116. handler t1 open;
  117. handler t1 read a=(1) where b=2;
  118. handler t1 read a=(1) where b=3;
  119. handler t1 read a=(1) where b=1;
  120. handler t1 close;
  121. drop table t1;
  122. #
  123. # Check if two database names beginning the same are seen as different.
  124. #
  125. # This database begins like the usual 'test' database.
  126. #
  127. --disable_warnings
  128. drop database if exists test_test;
  129. --enable_warnings
  130. create database test_test;
  131. use test_test;
  132. create table t1(table_id char(20) primary key);
  133. insert into t1 values ('test_test.t1');
  134. insert into t1 values ('');
  135. handler t1 open;
  136. handler t1 read first limit 9;
  137. create table t2(table_id char(20) primary key);
  138. insert into t2 values ('test_test.t2');
  139. insert into t2 values ('');
  140. handler t2 open;
  141. handler t2 read first limit 9;
  142. #
  143. # This is the usual 'test' database.
  144. #
  145. use test;
  146. --disable_warnings
  147. drop table if exists t1;
  148. --enable_warnings
  149. create table t1(table_id char(20) primary key);
  150. insert into t1 values ('test.t1');
  151. insert into t1 values ('');
  152. --error 1066
  153. handler t1 open;
  154. #
  155. # Check accesibility of all the tables.
  156. #
  157. use test;
  158. --error 1064
  159. handler test.t1 read first limit 9;
  160. --error 1064
  161. handler test_test.t1 read first limit 9;
  162. handler t1 read first limit 9;
  163. --error 1064
  164. handler test_test.t2 read first limit 9;
  165. handler t2 read first limit 9;
  166. #
  167. # Cleanup.
  168. #
  169. --error 1064
  170. handler test_test.t1 close;
  171. handler t1 close;
  172. drop table test_test.t1;
  173. --error 1064
  174. handler test_test.t2 close;
  175. handler t2 close;
  176. drop table test_test.t2;
  177. drop database test_test;
  178. #
  179. use test;
  180. --error 1064
  181. handler test.t1 close;
  182. --error 1109
  183. handler t1 close;
  184. drop table test.t1;
  185. #
  186. # BUG#4335
  187. #
  188. --disable_warnings
  189. drop database if exists test_test;
  190. drop table if exists t1;
  191. drop table if exists t2;
  192. drop table if exists t3;
  193. --enable_warnings
  194. create database test_test;
  195. use test_test;
  196. create table t1 (c1 char(20));
  197. insert into t1 values ('test_test.t1');
  198. create table t3 (c1 char(20));
  199. insert into t3 values ('test_test.t3');
  200. handler t1 open;
  201. handler t1 read first limit 9;
  202. handler t1 open h1;
  203. handler h1 read first limit 9;
  204. use test;
  205. create table t1 (c1 char(20));
  206. create table t2 (c1 char(20));
  207. create table t3 (c1 char(20));
  208. insert into t1 values ('t1');
  209. insert into t2 values ('t2');
  210. insert into t3 values ('t3');
  211. --error 1066
  212. handler t1 open;
  213. --error 1066
  214. handler t2 open t1;
  215. --error 1066
  216. handler t3 open t1;
  217. handler t1 read first limit 9;
  218. --error 1064
  219. handler test.t1 close;
  220. --error 1066
  221. handler test.t1 open h1;
  222. --error 1066
  223. handler test_test.t1 open h1;
  224. handler test_test.t3 open h3;
  225. handler test.t1 open h2;
  226. handler t1 read first limit 9;
  227. handler h1 read first limit 9;
  228. handler h2 read first limit 9;
  229. handler h3 read first limit 9;
  230. handler h2 read first limit 9;
  231. --error 1064
  232. handler test.h1 close;
  233. handler t1 close;
  234. handler h1 close;
  235. handler h2 close;
  236. --error 1109
  237. handler t1 read first limit 9;
  238. --error 1109
  239. handler h1 read first limit 9;
  240. --error 1109
  241. handler h2 read first limit 9;
  242. handler h3 read first limit 9;
  243. handler h3 read first limit 9;
  244. use test_test;
  245. handler h3 read first limit 9;
  246. --error 1064
  247. handler test.h3 read first limit 9;
  248. handler h3 close;
  249. use test;
  250. drop table t3;
  251. drop table t2;
  252. drop table t1;
  253. drop database test_test;
  254. #
  255. # Test if fix for BUG#4286 correctly closes handler tables.
  256. #
  257. create table t1 (c1 char(20));
  258. insert into t1 values ("t1");
  259. handler t1 open as h1;
  260. handler h1 read first limit 9;
  261. create table t2 (c1 char(20));
  262. insert into t2 values ("t2");
  263. handler t2 open as h2;
  264. handler h2 read first limit 9;
  265. create table t3 (c1 char(20));
  266. insert into t3 values ("t3");
  267. handler t3 open as h3;
  268. handler h3 read first limit 9;
  269. create table t4 (c1 char(20));
  270. insert into t4 values ("t4");
  271. handler t4 open as h4;
  272. handler h4 read first limit 9;
  273. create table t5 (c1 char(20));
  274. insert into t5 values ("t5");
  275. handler t5 open as h5;
  276. handler h5 read first limit 9;
  277. # close first
  278. alter table t1 engine=MyISAM;
  279. --error 1109
  280. handler h1 read first limit 9;
  281. handler h2 read first limit 9;
  282. handler h3 read first limit 9;
  283. handler h4 read first limit 9;
  284. handler h5 read first limit 9;
  285. # close last
  286. alter table t5 engine=MyISAM;
  287. --error 1109
  288. handler h1 read first limit 9;
  289. handler h2 read first limit 9;
  290. handler h3 read first limit 9;
  291. handler h4 read first limit 9;
  292. --error 1109
  293. handler h5 read first limit 9;
  294. # close middle
  295. alter table t3 engine=MyISAM;
  296. --error 1109
  297. handler h1 read first limit 9;
  298. handler h2 read first limit 9;
  299. --error 1109
  300. handler h3 read first limit 9;
  301. handler h4 read first limit 9;
  302. --error 1109
  303. handler h5 read first limit 9;
  304. handler h2 close;
  305. handler h4 close;
  306. # close all depending handler tables
  307. handler t1 open as h1_1;
  308. handler t1 open as h1_2;
  309. handler t1 open as h1_3;
  310. handler h1_1 read first limit 9;
  311. handler h1_2 read first limit 9;
  312. handler h1_3 read first limit 9;
  313. alter table t1 engine=MyISAM;
  314. --error 1109
  315. handler h1_1 read first limit 9;
  316. --error 1109
  317. handler h1_2 read first limit 9;
  318. --error 1109
  319. handler h1_3 read first limit 9;
  320. drop table t1;
  321. drop table t2;
  322. drop table t3;
  323. drop table t4;
  324. drop table t5;
  325. #
  326. # Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  327. #
  328. create table t1 (c1 int);
  329. insert into t1 values (1);
  330. # client 1
  331. handler t1 open;
  332. handler t1 read first;
  333. # client 2
  334. connect (con2,localhost,root,,);
  335. connection con2;
  336. --exec echo send the below to another connection, do not wait for the result
  337. send optimize table t1;
  338. --sleep 1
  339. # client 1
  340. --exec echo proceed with the normal connection
  341. connection default;
  342. handler t1 read next;
  343. handler t1 close;
  344. # client 2
  345. --exec echo read the result from the other connection
  346. connection con2;
  347. reap;
  348. # client 1
  349. --exec echo proceed with the normal connection
  350. connection default;
  351. drop table t1;
  352. # End of 4.1 tests