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

MySQL数据库

开发平台:

Visual C++

  1. use test;
  2. drop table if exists t1, t9 ;
  3. create table t1
  4. (
  5. a int, b varchar(30),
  6. primary key(a)
  7. ) engine = 'HEAP'  ;
  8. drop table if exists t9;
  9. create table t9 
  10. (
  11. c1  tinyint, c2  smallint, c3  mediumint, c4  int,
  12. c5  integer, c6  bigint, c7  float, c8  double,
  13. c9  double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
  14. c13 date, c14 datetime, c15 timestamp(14), c16 time,
  15. c17 year, c18 bit, c19 bool, c20 char,
  16. c21 char(10), c22 varchar(30), c23 char(100), c24 char(100),
  17. c25 char(100), c26 char(100), c27 char(100), c28 char(100),
  18. c29 char(100), c30 char(100), c31 enum('one', 'two', 'three'),
  19. c32 set('monday', 'tuesday', 'wednesday'),
  20. primary key(c1)
  21. ) engine = 'HEAP'  ;
  22. delete from t1 ;
  23. insert into t1 values (1,'one');
  24. insert into t1 values (2,'two');
  25. insert into t1 values (3,'three');
  26. insert into t1 values (4,'four');
  27. commit ;
  28. delete from t9 ;
  29. insert into t9
  30. set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1,
  31. c10= 1, c11= 1, c12 = 1,
  32. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  33. c16= '11:11:11', c17= '2004',
  34. c18= 1, c19=true, c20= 'a', c21= '123456789a', 
  35. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  36. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  37. c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday';
  38. insert into t9
  39. set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9,
  40. c10= 9, c11= 9, c12 = 9,
  41. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  42. c16= '11:11:11', c17= '2004',
  43. c18= 1, c19=false, c20= 'a', c21= '123456789a', 
  44. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  45. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  46. c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday';
  47. commit ;
  48. test_sequence
  49. ------ simple select tests ------
  50. prepare stmt1 from ' select * from t9 order by c1 ' ;
  51. execute stmt1;
  52. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  53. def test t9 t9 c1 c1 1 4 1 N 49155 0 63
  54. def test t9 t9 c2 c2 2 6 1 Y 32768 0 63
  55. def test t9 t9 c3 c3 9 9 1 Y 32768 0 63
  56. def test t9 t9 c4 c4 3 11 1 Y 32768 0 63
  57. def test t9 t9 c5 c5 3 11 1 Y 32768 0 63
  58. def test t9 t9 c6 c6 8 20 1 Y 32768 0 63
  59. def test t9 t9 c7 c7 4 12 1 Y 32768 31 63
  60. def test t9 t9 c8 c8 5 22 1 Y 32768 31 63
  61. def test t9 t9 c9 c9 5 22 1 Y 32768 31 63
  62. def test t9 t9 c10 c10 5 22 1 Y 32768 31 63
  63. def test t9 t9 c11 c11 0 9 6 Y 32768 4 63
  64. def test t9 t9 c12 c12 0 10 6 Y 32768 4 63
  65. def test t9 t9 c13 c13 10 10 10 Y 128 0 63
  66. def test t9 t9 c14 c14 12 19 19 Y 128 0 63
  67. def test t9 t9 c15 c15 7 19 19 N 1249 0 63
  68. def test t9 t9 c16 c16 11 8 8 Y 128 0 63
  69. def test t9 t9 c17 c17 13 4 4 Y 32864 0 63
  70. def test t9 t9 c18 c18 1 1 1 Y 32768 0 63
  71. def test t9 t9 c19 c19 1 1 1 Y 32768 0 63
  72. def test t9 t9 c20 c20 254 1 1 Y 0 0 8
  73. def test t9 t9 c21 c21 253 10 10 Y 0 0 8
  74. def test t9 t9 c22 c22 253 30 30 Y 0 0 8
  75. def test t9 t9 c23 c23 253 100 8 Y 0 0 8
  76. def test t9 t9 c24 c24 253 100 8 Y 0 0 8
  77. def test t9 t9 c25 c25 253 100 4 Y 0 0 8
  78. def test t9 t9 c26 c26 253 100 4 Y 0 0 8
  79. def test t9 t9 c27 c27 253 100 10 Y 0 0 8
  80. def test t9 t9 c28 c28 253 100 10 Y 0 0 8
  81. def test t9 t9 c29 c29 253 100 8 Y 0 0 8
  82. def test t9 t9 c30 c30 253 100 8 Y 0 0 8
  83. def test t9 t9 c31 c31 254 5 3 Y 256 0 8
  84. def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
  85. c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
  86. 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  87. 9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday
  88. set @arg00='SELECT' ;
  89. prepare stmt1 from ' ? a from t1 where a=1 ';
  90. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1
  91. set @arg00=1 ;
  92. select @arg00, b from t1 where a=1 ;
  93. @arg00 b
  94. 1 one
  95. prepare stmt1 from ' select ?, b from t1 where a=1 ' ;
  96. execute stmt1 using @arg00 ;
  97. ? b
  98. 1 one
  99. set @arg00='lion' ;
  100. select @arg00, b from t1 where a=1 ;
  101. @arg00 b
  102. lion one
  103. prepare stmt1 from ' select ?, b from t1 where a=1 ' ;
  104. execute stmt1 using @arg00 ;
  105. ? b
  106. lion one
  107. set @arg00=NULL ;
  108. select @arg00, b from t1 where a=1 ;
  109. @arg00 b
  110. NULL one
  111. prepare stmt1 from ' select ?, b from t1 where a=1 ' ;
  112. execute stmt1 using @arg00 ;
  113. ? b
  114. NULL one
  115. set @arg00=1 ;
  116. select b, a - @arg00 from t1 where a=1 ;
  117. b a - @arg00
  118. one 0
  119. prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ;
  120. execute stmt1 using @arg00 ;
  121. b a - ?
  122. one 0
  123. set @arg00=null ;
  124. select @arg00 as my_col ;
  125. my_col
  126. NULL
  127. prepare stmt1 from ' select ? as my_col';
  128. execute stmt1 using @arg00 ;
  129. my_col
  130. NULL
  131. select @arg00 + 1 as my_col ;
  132. my_col
  133. NULL
  134. prepare stmt1 from ' select ? + 1 as my_col';
  135. execute stmt1 using @arg00 ;
  136. my_col
  137. NULL
  138. select 1 + @arg00 as my_col ;
  139. my_col
  140. NULL
  141. prepare stmt1 from ' select 1 + ? as my_col';
  142. execute stmt1 using @arg00 ;
  143. my_col
  144. NULL
  145. set @arg00='MySQL' ;
  146. select substr(@arg00,1,2) from t1 where a=1 ;
  147. substr(@arg00,1,2)
  148. My
  149. prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ;
  150. execute stmt1 using @arg00 ;
  151. substr(?,1,2)
  152. My
  153. set @arg00=3 ;
  154. select substr('MySQL',@arg00,5) from t1 where a=1 ;
  155. substr('MySQL',@arg00,5)
  156. SQL
  157. prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ;
  158. execute stmt1 using @arg00 ;
  159. substr('MySQL',?,5)
  160. SQL
  161. select substr('MySQL',1,@arg00) from t1 where a=1 ;
  162. substr('MySQL',1,@arg00)
  163. MyS
  164. prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ;
  165. execute stmt1 using @arg00 ;
  166. substr('MySQL',1,?)
  167. MyS
  168. set @arg00='MySQL' ;
  169. select a , concat(@arg00,b) from t1 order by a;
  170. a concat(@arg00,b)
  171. 1 MySQLone
  172. 2 MySQLtwo
  173. 3 MySQLthree
  174. 4 MySQLfour
  175. prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ;
  176. execute stmt1 using @arg00;
  177. a concat(?,b)
  178. 1 MySQLone
  179. 2 MySQLtwo
  180. 3 MySQLthree
  181. 4 MySQLfour
  182. select a , concat(b,@arg00) from t1 order by a ;
  183. a concat(b,@arg00)
  184. 1 oneMySQL
  185. 2 twoMySQL
  186. 3 threeMySQL
  187. 4 fourMySQL
  188. prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ;
  189. execute stmt1 using @arg00;
  190. a concat(b,?)
  191. 1 oneMySQL
  192. 2 twoMySQL
  193. 3 threeMySQL
  194. 4 fourMySQL
  195. set @arg00='MySQL' ;
  196. select group_concat(@arg00,b order by a) from t1 
  197. group by 'a' ;
  198. group_concat(@arg00,b order by a)
  199. MySQLone,MySQLtwo,MySQLthree,MySQLfour
  200. prepare stmt1 from ' select group_concat(?,b order by a) from t1
  201. group by ''a'' ' ;
  202. execute stmt1 using @arg00;
  203. group_concat(?,b order by a)
  204. MySQLone,MySQLtwo,MySQLthree,MySQLfour
  205. select group_concat(b,@arg00 order by a) from t1 
  206. group by 'a' ;
  207. group_concat(b,@arg00 order by a)
  208. oneMySQL,twoMySQL,threeMySQL,fourMySQL
  209. prepare stmt1 from ' select group_concat(b,? order by a) from t1
  210. group by ''a'' ' ;
  211. execute stmt1 using @arg00;
  212. group_concat(b,? order by a)
  213. oneMySQL,twoMySQL,threeMySQL,fourMySQL
  214. set @arg00='first' ;
  215. set @arg01='second' ;
  216. set @arg02=NULL;
  217. select @arg00, @arg01 from t1 where a=1 ;
  218. @arg00 @arg01
  219. first second
  220. prepare stmt1 from ' select ?, ? from t1 where a=1 ' ;
  221. execute stmt1 using @arg00, @arg01 ;
  222. ? ?
  223. first second
  224. execute stmt1 using @arg02, @arg01 ;
  225. ? ?
  226. NULL second
  227. execute stmt1 using @arg00, @arg02 ;
  228. ? ?
  229. first NULL
  230. execute stmt1 using @arg02, @arg02 ;
  231. ? ?
  232. NULL NULL
  233. drop table if exists t5 ;
  234. create table t5 (id1 int(11) not null default '0',
  235. value2 varchar(100), value1 varchar(100)) ;
  236. insert into t5 values (1,'hh','hh'),(2,'hh','hh'),
  237. (1,'ii','ii'),(2,'ii','ii') ;
  238. prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ;
  239. set @arg00=1 ;
  240. set @arg01='hh' ;
  241. execute stmt1 using @arg00, @arg01 ;
  242. id1 value1
  243. 1 hh
  244. 1 ii
  245. 2 hh
  246. drop table t5 ;
  247. drop table if exists t5 ;
  248. create table t5(session_id  char(9) not null) ;
  249. insert into t5 values ('abc') ;
  250. prepare stmt1 from ' select * from t5
  251. where ?=''1111'' and session_id = ''abc'' ' ;
  252. set @arg00='abc' ;
  253. execute stmt1 using @arg00 ;
  254. session_id
  255. set @arg00='1111' ;
  256. execute stmt1 using @arg00 ;
  257. session_id
  258. abc
  259. set @arg00='abc' ;
  260. execute stmt1 using @arg00 ;
  261. session_id
  262. drop table t5 ;
  263. set @arg00='FROM' ;
  264. select a @arg00 t1 where a=1 ;
  265. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1
  266. prepare stmt1 from ' select a ? t1 where a=1 ' ;
  267. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1
  268. set @arg00='t1' ;
  269. select a from @arg00 where a=1 ;
  270. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1
  271. prepare stmt1 from ' select a from ? where a=1 ' ;
  272. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1
  273. set @arg00='WHERE' ;
  274. select a from t1 @arg00 a=1 ;
  275. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1
  276. prepare stmt1 from ' select a from t1 ? a=1 ' ;
  277. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1
  278. set @arg00=1 ;
  279. select a FROM t1 where a=@arg00 ;
  280. a
  281. 1
  282. prepare stmt1 from ' select a FROM t1 where a=? ' ;
  283. execute stmt1 using @arg00 ;
  284. a
  285. 1
  286. set @arg00=1000 ;
  287. execute stmt1 using @arg00 ;
  288. a
  289. set @arg00=NULL ;
  290. select a FROM t1 where a=@arg00 ;
  291. a
  292. prepare stmt1 from ' select a FROM t1 where a=? ' ;
  293. execute stmt1 using @arg00 ;
  294. a
  295. set @arg00=4 ;
  296. select a FROM t1 where a=sqrt(@arg00) ;
  297. a
  298. 2
  299. prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ;
  300. execute stmt1 using @arg00 ;
  301. a
  302. 2
  303. set @arg00=NULL ;
  304. select a FROM t1 where a=sqrt(@arg00) ;
  305. a
  306. prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ;
  307. execute stmt1 using @arg00 ;
  308. a
  309. set @arg00=2 ;
  310. set @arg01=3 ;
  311. select a FROM t1 where a in (@arg00,@arg01) order by a;
  312. a
  313. 2
  314. 3
  315. prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a ';
  316. execute stmt1 using @arg00, @arg01;
  317. a
  318. 2
  319. 3
  320. set @arg00= 'one' ;
  321. set @arg01= 'two' ;
  322. set @arg02= 'five' ;
  323. prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ;
  324. execute stmt1 using @arg00, @arg01, @arg02 ;
  325. b
  326. one
  327. two
  328. prepare stmt1 from ' select b FROM t1 where b like ? ';
  329. set @arg00='two' ;
  330. execute stmt1 using @arg00 ;
  331. b
  332. two
  333. set @arg00='tw%' ;
  334. execute stmt1 using @arg00 ;
  335. b
  336. two
  337. set @arg00='%wo' ;
  338. execute stmt1 using @arg00 ;
  339. b
  340. two
  341. set @arg00=null ;
  342. insert into t9 set c1= 0, c5 = NULL ;
  343. select c5 from t9 where c5 > NULL ;
  344. c5
  345. prepare stmt1 from ' select c5 from t9 where c5 > ? ';
  346. execute stmt1 using @arg00 ;
  347. c5
  348. select c5 from t9 where c5 < NULL ;
  349. c5
  350. prepare stmt1 from ' select c5 from t9 where c5 < ? ';
  351. execute stmt1 using @arg00 ;
  352. c5
  353. select c5 from t9 where c5 = NULL ;
  354. c5
  355. prepare stmt1 from ' select c5 from t9 where c5 = ? ';
  356. execute stmt1 using @arg00 ;
  357. c5
  358. select c5 from t9 where c5 <=> NULL ;
  359. c5
  360. NULL
  361. prepare stmt1 from ' select c5 from t9 where c5 <=> ? ';
  362. execute stmt1 using @arg00 ;
  363. c5
  364. NULL
  365. delete from t9 where c1= 0 ;
  366. set @arg00='>' ;
  367. select a FROM t1 where a @arg00 1 ;
  368. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1
  369. prepare stmt1 from ' select a FROM t1 where a ? 1 ' ;
  370. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1
  371. set @arg00=1 ;
  372. select a,b FROM t1 where a is not NULL
  373. AND b is not NULL group by a - @arg00 ;
  374. a b
  375. 1 one
  376. 2 two
  377. 3 three
  378. 4 four
  379. prepare stmt1 from ' select a,b FROM t1 where a is not NULL
  380. AND b is not NULL group by a - ? ' ;
  381. execute stmt1 using @arg00 ;
  382. a b
  383. 1 one
  384. 2 two
  385. 3 three
  386. 4 four
  387. set @arg00='two' ;
  388. select a,b FROM t1 where a is not NULL
  389. AND b is not NULL having b <> @arg00 order by a ;
  390. a b
  391. 1 one
  392. 3 three
  393. 4 four
  394. prepare stmt1 from ' select a,b FROM t1 where a is not NULL
  395. AND b is not NULL having b <> ? order by a ' ;
  396. execute stmt1 using @arg00 ;
  397. a b
  398. 1 one
  399. 3 three
  400. 4 four
  401. set @arg00=1 ;
  402. select a,b FROM t1 where a is not NULL
  403. AND b is not NULL order by a - @arg00 ;
  404. a b
  405. 1 one
  406. 2 two
  407. 3 three
  408. 4 four
  409. prepare stmt1 from ' select a,b FROM t1 where a is not NULL
  410. AND b is not NULL order by a - ? ' ;
  411. execute stmt1 using @arg00 ;
  412. a b
  413. 1 one
  414. 2 two
  415. 3 three
  416. 4 four
  417. set @arg00=2 ;
  418. select a,b from t1 order by 2 ;
  419. a b
  420. 4 four
  421. 1 one
  422. 3 three
  423. 2 two
  424. prepare stmt1 from ' select a,b from t1
  425. order by ? ';
  426. execute stmt1 using @arg00;
  427. a b
  428. 4 four
  429. 1 one
  430. 3 three
  431. 2 two
  432. set @arg00=1 ;
  433. execute stmt1 using @arg00;
  434. a b
  435. 1 one
  436. 2 two
  437. 3 three
  438. 4 four
  439. set @arg00=0 ;
  440. execute stmt1 using @arg00;
  441. ERROR 42S22: Unknown column '?' in 'order clause'
  442. set @arg00=1;
  443. prepare stmt1 from ' select a,b from t1 order by a
  444. limit 1 ';
  445. execute stmt1 ;
  446. a b
  447. 1 one
  448. prepare stmt1 from ' select a,b from t1
  449. limit ? ';
  450. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2
  451. set @arg00='b' ;
  452. set @arg01=0 ;
  453. set @arg02=2 ;
  454. set @arg03=2 ;
  455. select sum(a), @arg00 from t1 where a > @arg01
  456. and b is not null group by substr(b,@arg02)
  457. having sum(a) <> @arg03 ;
  458. sum(a) @arg00
  459. 3 b
  460. 1 b
  461. 4 b
  462. prepare stmt1 from ' select sum(a), ? from t1 where a > ?
  463. and b is not null group by substr(b,?)
  464. having sum(a) <> ? ';
  465. execute stmt1 using @arg00, @arg01, @arg02, @arg03;
  466. sum(a) ?
  467. 3 b
  468. 1 b
  469. 4 b
  470. test_sequence
  471. ------ join tests ------
  472. select first.a as a1, second.a as a2 
  473. from t1 first, t1 second
  474. where first.a = second.a order by a1 ;
  475. a1 a2
  476. 1 1
  477. 2 2
  478. 3 3
  479. 4 4
  480. prepare stmt1 from ' select first.a as a1, second.a as a2 
  481.         from t1 first, t1 second
  482.         where first.a = second.a order by a1 ';
  483. execute stmt1 ;
  484. a1 a2
  485. 1 1
  486. 2 2
  487. 3 3
  488. 4 4
  489. set @arg00='ABC';
  490. set @arg01='two';
  491. set @arg02='one';
  492. select first.a, @arg00, second.a FROM t1 first, t1 second
  493. where @arg01 = first.b or first.a = second.a or second.b = @arg02
  494. order by second.a, first.a;
  495. a @arg00 a
  496. 1 ABC 1
  497. 2 ABC 1
  498. 3 ABC 1
  499. 4 ABC 1
  500. 2 ABC 2
  501. 2 ABC 3
  502. 3 ABC 3
  503. 2 ABC 4
  504. 4 ABC 4
  505. prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second
  506.                     where ? = first.b or first.a = second.a or second.b = ?
  507.                     order by second.a, first.a';
  508. execute stmt1 using @arg00, @arg01, @arg02;
  509. a ? a
  510. 1 ABC 1
  511. 2 ABC 1
  512. 3 ABC 1
  513. 4 ABC 1
  514. 2 ABC 2
  515. 2 ABC 3
  516. 3 ABC 3
  517. 2 ABC 4
  518. 4 ABC 4
  519. drop table if exists t2 ;
  520. create table t2 as select * from t1 ;
  521. set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ;
  522. set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ;
  523. set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ;
  524. set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ;
  525. set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ;
  526. set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ;
  527. set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ;
  528. set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ;
  529. set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ;
  530. the join statement is:
  531. SELECT * FROM t2 right join t1 using(a) order by t2.a 
  532. prepare stmt1 from @query9  ;
  533. execute stmt1 ;
  534. a b a b
  535. 1 one 1 one
  536. 2 two 2 two
  537. 3 three 3 three
  538. 4 four 4 four
  539. execute stmt1 ;
  540. a b a b
  541. 1 one 1 one
  542. 2 two 2 two
  543. 3 three 3 three
  544. 4 four 4 four
  545. execute stmt1 ;
  546. a b a b
  547. 1 one 1 one
  548. 2 two 2 two
  549. 3 three 3 three
  550. 4 four 4 four
  551. the join statement is:
  552. SELECT * FROM t2 natural right join t1 order by t2.a 
  553. prepare stmt1 from @query8 ;
  554. execute stmt1 ;
  555. a b a b
  556. 1 one 1 one
  557. 2 two 2 two
  558. 3 three 3 three
  559. 4 four 4 four
  560. execute stmt1 ;
  561. a b a b
  562. 1 one 1 one
  563. 2 two 2 two
  564. 3 three 3 three
  565. 4 four 4 four
  566. execute stmt1 ;
  567. a b a b
  568. 1 one 1 one
  569. 2 two 2 two
  570. 3 three 3 three
  571. 4 four 4 four
  572. the join statement is:
  573. SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a 
  574. prepare stmt1 from @query7 ;
  575. execute stmt1 ;
  576. a b a b
  577. 1 one 1 one
  578. 2 two 2 two
  579. 3 three 3 three
  580. 4 four 4 four
  581. execute stmt1 ;
  582. a b a b
  583. 1 one 1 one
  584. 2 two 2 two
  585. 3 three 3 three
  586. 4 four 4 four
  587. execute stmt1 ;
  588. a b a b
  589. 1 one 1 one
  590. 2 two 2 two
  591. 3 three 3 three
  592. 4 four 4 four
  593. the join statement is:
  594. SELECT * FROM t2 left join t1 using(a) order by t2.a 
  595. prepare stmt1 from @query6 ;
  596. execute stmt1 ;
  597. a b a b
  598. 1 one 1 one
  599. 2 two 2 two
  600. 3 three 3 three
  601. 4 four 4 four
  602. execute stmt1 ;
  603. a b a b
  604. 1 one 1 one
  605. 2 two 2 two
  606. 3 three 3 three
  607. 4 four 4 four
  608. execute stmt1 ;
  609. a b a b
  610. 1 one 1 one
  611. 2 two 2 two
  612. 3 three 3 three
  613. 4 four 4 four
  614. the join statement is:
  615. SELECT * FROM t2 natural left join t1 order by t2.a 
  616. prepare stmt1 from @query5 ;
  617. execute stmt1 ;
  618. a b a b
  619. 1 one 1 one
  620. 2 two 2 two
  621. 3 three 3 three
  622. 4 four 4 four
  623. execute stmt1 ;
  624. a b a b
  625. 1 one 1 one
  626. 2 two 2 two
  627. 3 three 3 three
  628. 4 four 4 four
  629. execute stmt1 ;
  630. a b a b
  631. 1 one 1 one
  632. 2 two 2 two
  633. 3 three 3 three
  634. 4 four 4 four
  635. the join statement is:
  636. SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a 
  637. prepare stmt1 from @query4 ;
  638. execute stmt1 ;
  639. a b a b
  640. 1 one 1 one
  641. 2 two 2 two
  642. 3 three 3 three
  643. 4 four 4 four
  644. execute stmt1 ;
  645. a b a b
  646. 1 one 1 one
  647. 2 two 2 two
  648. 3 three 3 three
  649. 4 four 4 four
  650. execute stmt1 ;
  651. a b a b
  652. 1 one 1 one
  653. 2 two 2 two
  654. 3 three 3 three
  655. 4 four 4 four
  656. the join statement is:
  657. SELECT * FROM t2 join t1 using(a) order by t2.a 
  658. prepare stmt1 from @query3 ;
  659. execute stmt1 ;
  660. a b a b
  661. 1 one 1 one
  662. 2 two 2 two
  663. 3 three 3 three
  664. 4 four 4 four
  665. execute stmt1 ;
  666. a b a b
  667. 1 one 1 one
  668. 2 two 2 two
  669. 3 three 3 three
  670. 4 four 4 four
  671. execute stmt1 ;
  672. a b a b
  673. 1 one 1 one
  674. 2 two 2 two
  675. 3 three 3 three
  676. 4 four 4 four
  677. the join statement is:
  678. SELECT * FROM t2 natural join t1 order by t2.a 
  679. prepare stmt1 from @query2 ;
  680. execute stmt1 ;
  681. a b
  682. 1 one
  683. 2 two
  684. 3 three
  685. 4 four
  686. execute stmt1 ;
  687. a b
  688. 1 one
  689. 2 two
  690. 3 three
  691. 4 four
  692. execute stmt1 ;
  693. a b
  694. 1 one
  695. 2 two
  696. 3 three
  697. 4 four
  698. the join statement is:
  699. SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a 
  700. prepare stmt1 from @query1 ;
  701. execute stmt1 ;
  702. a b a b
  703. 1 one 1 one
  704. 2 two 2 two
  705. 3 three 3 three
  706. 4 four 4 four
  707. execute stmt1 ;
  708. a b a b
  709. 1 one 1 one
  710. 2 two 2 two
  711. 3 three 3 three
  712. 4 four 4 four
  713. execute stmt1 ;
  714. a b a b
  715. 1 one 1 one
  716. 2 two 2 two
  717. 3 three 3 three
  718. 4 four 4 four
  719. drop table t2 ;
  720. test_sequence
  721. ------ subquery tests ------
  722. prepare stmt1 from ' select a, b FROM t1 outer_table where
  723.    a = (select a from t1 where b = ''two'') ';
  724. execute stmt1 ;
  725. a b
  726. 2 two
  727. set @arg00='two' ;
  728. select a, b FROM t1 outer_table where
  729. a = (select a from t1 where b = 'two' ) and b=@arg00 ;
  730. a b
  731. 2 two
  732. prepare stmt1 from ' select a, b FROM t1 outer_table where
  733.    a = (select a from t1 where b = ''two'') and b=? ';
  734. execute stmt1 using @arg00;
  735. a b
  736. 2 two
  737. set @arg00='two' ;
  738. select a, b FROM t1 outer_table where
  739. a = (select a from t1 where b = @arg00 ) and b='two' ;
  740. a b
  741. 2 two
  742. prepare stmt1 from ' select a, b FROM t1 outer_table where
  743.    a = (select a from t1 where b = ? ) and b=''two'' ' ;
  744. execute stmt1 using @arg00;
  745. a b
  746. 2 two
  747. set @arg00=3 ;
  748. set @arg01='three' ;
  749. select a,b FROM t1 where (a,b) in (select 3, 'three');
  750. a b
  751. 3 three
  752. select a FROM t1 where (a,b) in (select @arg00,@arg01);
  753. a
  754. 3
  755. prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) ';
  756. execute stmt1 using @arg00, @arg01;
  757. a
  758. 3
  759. set @arg00=1 ;
  760. set @arg01='two' ;
  761. set @arg02=2 ;
  762. set @arg03='two' ;
  763. select a, @arg00, b FROM t1 outer_table where
  764. b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ;
  765. a @arg00 b
  766. 2 1 two
  767. prepare stmt1 from ' select a, ?, b FROM t1 outer_table where
  768.    b=? and a = (select ? from t1 where b = ? ) ' ;
  769. execute stmt1 using @arg00, @arg01, @arg02, @arg03 ;
  770. a ? b
  771. 2 1 two
  772. prepare stmt1 from 'select c4 FROM t9 where
  773.     c13 = (select MAX(b) from t1 where a = ?) and c22 = ? ' ;
  774. execute stmt1 using @arg01, @arg02;
  775. c4
  776. prepare stmt1 from ' select a, b FROM t1 outer_table where
  777.    a = (select a from t1 where b = outer_table.b ) order by a ';
  778. execute stmt1 ;
  779. a b
  780. 1 one
  781. 2 two
  782. 3 three
  783. 4 four
  784. prepare stmt1 from ' SELECT a as ccc from t1 where a+1=
  785.                            (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) ';
  786. execute stmt1 ;
  787. ccc
  788. 1
  789. deallocate prepare stmt1 ;
  790. prepare stmt1 from ' SELECT a as ccc from t1 where a+1=
  791.                            (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) ';
  792. execute stmt1 ;
  793. ccc
  794. 1
  795. deallocate prepare stmt1 ;
  796. prepare stmt1 from ' SELECT a as ccc from t1 where a+1=
  797.                            (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) ';
  798. execute stmt1 ;
  799. ccc
  800. 1
  801. deallocate prepare stmt1 ;
  802. set @arg00='two' ;
  803. select a, b FROM t1 outer_table where
  804. a = (select a from t1 where b = outer_table.b ) and b=@arg00 ;
  805. a b
  806. 2 two
  807. prepare stmt1 from ' select a, b FROM t1 outer_table where
  808.    a = (select a from t1 where b = outer_table.b) and b=? ';
  809. execute stmt1 using @arg00;
  810. a b
  811. 2 two
  812. set @arg00=2 ;
  813. select a, b FROM t1 outer_table where
  814. a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ;
  815. a b
  816. 2 two
  817. prepare stmt1 from ' select a, b FROM t1 outer_table where
  818.    a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ;
  819. execute stmt1 using @arg00;
  820. a b
  821. 2 two
  822. set @arg00=2 ;
  823. select a, b FROM t1 outer_table where
  824. a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ;
  825. a b
  826. 2 two
  827. prepare stmt1 from ' select a, b FROM t1 outer_table where
  828.    a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ;
  829. execute stmt1 using @arg00;
  830. a b
  831. 2 two
  832. set @arg00=1 ;
  833. set @arg01='two' ;
  834. set @arg02=2 ;
  835. set @arg03='two' ;
  836. select a, @arg00, b FROM t1 outer_table where
  837. b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03
  838. and outer_table.a=a ) ;
  839. a @arg00 b
  840. 2 1 two
  841. prepare stmt1 from ' select a, ?, b FROM t1 outer_table where
  842.    b=? and a = (select ? from t1 where outer_table.b = ? 
  843.                    and outer_table.a=a ) ' ;
  844. execute stmt1 using @arg00, @arg01, @arg02, @arg03 ;
  845. a ? b
  846. 2 1 two
  847. set @arg00=1 ;
  848. set @arg01=0 ;
  849. select a, @arg00 
  850. from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2
  851. where a=@arg01;
  852. a @arg00
  853. 0 1
  854. prepare stmt1 from ' select a, ? 
  855.                     from ( select a - ? as a from t1 where a=? ) as t2
  856.                     where a=? ';
  857. execute stmt1 using @arg00, @arg00, @arg00, @arg01 ;
  858. a ?
  859. 0 1
  860. drop table if exists t2 ;
  861. create table t2 as select * from t1;
  862. prepare stmt1 from ' select a in (select a from t2) from t1 ' ;
  863. execute stmt1 ;
  864. a in (select a from t2)
  865. 1
  866. 1
  867. 1
  868. 1
  869. drop table if exists t5, t6, t7 ;
  870. create table t5 (a int , b int) ;
  871. create table t6 like t5 ;
  872. create table t7 like t5 ;
  873. insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7),
  874. (2, -1), (3, 10) ;
  875. insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ;
  876. insert into t7 values (3, 3), (2, 2), (1, 1) ;
  877. prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6
  878.                      where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b
  879.                      group by t5.a order by sum limit 1) from t7 ' ;
  880. execute stmt1 ;
  881. a (select count(distinct t5.b) as sum from t5, t6
  882.                      where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b
  883.                      group by t5.a order by sum limit 1)
  884. 3 1
  885. 2 2
  886. 1 2
  887. execute stmt1 ;
  888. a (select count(distinct t5.b) as sum from t5, t6
  889.                      where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b
  890.                      group by t5.a order by sum limit 1)
  891. 3 1
  892. 2 2
  893. 1 2
  894. execute stmt1 ;
  895. a (select count(distinct t5.b) as sum from t5, t6
  896.                      where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b
  897.                      group by t5.a order by sum limit 1)
  898. 3 1
  899. 2 2
  900. 1 2
  901. drop table t5, t6, t7 ;
  902. drop table if exists t2 ;
  903. create table t2 as select * from t9;
  904. set @stmt= ' SELECT
  905.    (SELECT SUM(c1 + c12 + 0.0) FROM t2 
  906.     where (t9.c2 - 0e-3) = t2.c2
  907.     GROUP BY t9.c15 LIMIT 1) as scalar_s,
  908.    exists (select 1.0e+0 from t2 
  909.            where t2.c3 * 9.0000000000 = t9.c4) as exists_s,
  910.    c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s,
  911.    (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s
  912. FROM t9,
  913. (select c25 x, c32 y from t2) tt WHERE x = c25 ' ;
  914. prepare stmt1 from @stmt ;
  915. execute stmt1 ;
  916. execute stmt1 ;
  917. set @stmt= concat('explain ',@stmt);
  918. prepare stmt1 from @stmt ;
  919. execute stmt1 ;
  920. execute stmt1 ;
  921. set @stmt= ' SELECT
  922.    (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2
  923.     GROUP BY t9.c15 LIMIT 1) as scalar_s,
  924.    exists (select ? from t2 
  925.            where t2.c3*?=t9.c4) as exists_s,
  926.    c5*? in (select c6+? from t2) as in_s,
  927.    (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s
  928. FROM t9,
  929. (select c25 x, c32 y from t2) tt WHERE x =c25 ' ;
  930. set @arg00= 0.0 ;
  931. set @arg01= 0e-3 ;
  932. set @arg02= 1.0e+0 ;
  933. set @arg03= 9.0000000000 ;
  934. set @arg04= 4 ;
  935. set @arg05= 0.3e+1 ;
  936. set @arg06= 4 ;
  937. set @arg07= 4 ;
  938. set @arg08= 4.0 ;
  939. set @arg09= 40e-1 ;
  940. prepare stmt1 from @stmt ;
  941. execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
  942. @arg07, @arg08, @arg09 ;
  943. execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
  944. @arg07, @arg08, @arg09 ;
  945. set @stmt= concat('explain ',@stmt);
  946. prepare stmt1 from @stmt ;
  947. execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
  948. @arg07, @arg08, @arg09 ;
  949. execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06,
  950. @arg07, @arg08, @arg09 ;
  951. drop table t2 ;
  952. select 1 < (select a from t1) ;
  953. ERROR 21000: Subquery returns more than 1 row
  954. prepare stmt1 from ' select 1 < (select a from t1) ' ;
  955. execute stmt1 ;
  956. ERROR 21000: Subquery returns more than 1 row
  957. select 1 as my_col ;
  958. my_col
  959. 1
  960. test_sequence
  961. ------ union tests ------
  962. prepare stmt1 from ' select a FROM t1 where a=1
  963.                      union distinct
  964.                      select a FROM t1 where a=1 ';
  965. execute stmt1 ;
  966. a
  967. 1
  968. execute stmt1 ;
  969. a
  970. 1
  971. prepare stmt1 from ' select a FROM t1 where a=1
  972.                      union all
  973.                      select a FROM t1 where a=1 ';
  974. execute stmt1 ;
  975. a
  976. 1
  977. 1
  978. prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ;
  979. ERROR 21000: The used SELECT statements have a different number of columns
  980. prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ;
  981. ERROR 21000: The used SELECT statements have a different number of columns
  982. prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ;
  983. ERROR 21000: The used SELECT statements have a different number of columns
  984. prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ;
  985. ERROR 21000: The used SELECT statements have a different number of columns
  986. set @arg00=1 ;
  987. select @arg00 FROM t1 where a=1
  988. union distinct
  989. select 1 FROM t1 where a=1;
  990. @arg00
  991. 1
  992. prepare stmt1 from ' select ? FROM t1 where a=1
  993.                      union distinct
  994.                      select 1 FROM t1 where a=1 ' ;
  995. execute stmt1 using @arg00;
  996. ?
  997. 1
  998. set @arg00=1 ;
  999. select 1 FROM t1 where a=1
  1000. union distinct
  1001. select @arg00 FROM t1 where a=1;
  1002. 1
  1003. 1
  1004. prepare stmt1 from ' select 1 FROM t1 where a=1
  1005.                      union distinct
  1006.                      select ? FROM t1 where a=1 ' ;
  1007. execute stmt1 using @arg00;
  1008. 1
  1009. 1
  1010. set @arg00='a' ;
  1011. select @arg00 FROM t1 where a=1
  1012. union distinct
  1013. select @arg00 FROM t1 where a=1;
  1014. @arg00
  1015. a
  1016. prepare stmt1 from ' select ? FROM t1 where a=1
  1017.                      union distinct
  1018.                      select ? FROM t1 where a=1 ';
  1019. execute stmt1 using @arg00, @arg00;
  1020. ?
  1021. a
  1022. prepare stmt1 from ' select ? 
  1023.                      union distinct
  1024.                      select ? ';
  1025. execute stmt1 using @arg00, @arg00;
  1026. ?
  1027. a
  1028. set @arg00='a' ;
  1029. set @arg01=1 ;
  1030. set @arg02='a' ;
  1031. set @arg03=2 ;
  1032. select @arg00 FROM t1 where a=@arg01
  1033. union distinct
  1034. select @arg02 FROM t1 where a=@arg03;
  1035. @arg00
  1036. a
  1037. prepare stmt1 from ' select ? FROM t1 where a=?
  1038.                      union distinct
  1039.                      select ? FROM t1 where a=? ' ;
  1040. execute stmt1 using @arg00, @arg01, @arg02, @arg03;
  1041. ?
  1042. a
  1043. set @arg00=1 ;
  1044. prepare stmt1 from ' select sum(a) + 200, ? from t1
  1045. union distinct
  1046. select sum(a) + 200, 1 from t1
  1047. group by b ' ;
  1048. execute stmt1 using @arg00;
  1049. sum(a) + 200 ?
  1050. 210 1
  1051. 204 1
  1052. 201 1
  1053. 203 1
  1054. 202 1
  1055. set @Oporto='Oporto' ;
  1056. set @Lisboa='Lisboa' ;
  1057. set @0=0 ;
  1058. set @1=1 ;
  1059. set @2=2 ;
  1060. set @3=3 ;
  1061. set @4=4 ;
  1062. select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ;
  1063. @Oporto @Lisboa @0 @1 @2 @3 @4
  1064. Oporto Lisboa 0 1 2 3 4
  1065. select sum(a) + 200 as the_sum, @Oporto as the_town from t1
  1066. group by b
  1067. union distinct
  1068. select sum(a) + 200, @Lisboa from t1
  1069. group by b ;
  1070. the_sum the_town
  1071. 204 Oporto
  1072. 201 Oporto
  1073. 203 Oporto
  1074. 202 Oporto
  1075. 204 Lisboa
  1076. 201 Lisboa
  1077. 203 Lisboa
  1078. 202 Lisboa
  1079. prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1
  1080.                      group by b
  1081.                      union distinct
  1082.                      select sum(a) + 200, ? from t1
  1083.                      group by b ' ;
  1084. execute stmt1 using @Oporto, @Lisboa;
  1085. the_sum the_town
  1086. 204 Oporto
  1087. 201 Oporto
  1088. 203 Oporto
  1089. 202 Oporto
  1090. 204 Lisboa
  1091. 201 Lisboa
  1092. 203 Lisboa
  1093. 202 Lisboa
  1094. select sum(a) + 200 as the_sum, @Oporto as the_town from t1
  1095. where a > @1
  1096. group by b
  1097. union distinct
  1098. select sum(a) + 200, @Lisboa from t1
  1099. where a > @2
  1100. group by b ;
  1101. the_sum the_town
  1102. 204 Oporto
  1103. 203 Oporto
  1104. 202 Oporto
  1105. 204 Lisboa
  1106. 203 Lisboa
  1107. prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1
  1108.                      where a > ?
  1109.                      group by b
  1110.                      union distinct
  1111.                      select sum(a) + 200, ? from t1
  1112.                      where a > ?
  1113.                      group by b ' ;
  1114. execute stmt1 using @Oporto, @1, @Lisboa, @2;
  1115. the_sum the_town
  1116. 204 Oporto
  1117. 203 Oporto
  1118. 202 Oporto
  1119. 204 Lisboa
  1120. 203 Lisboa
  1121. select sum(a) + 200 as the_sum, @Oporto as the_town from t1
  1122. where a > @1
  1123. group by b
  1124. having avg(a) > @2
  1125. union distinct
  1126. select sum(a) + 200, @Lisboa from t1
  1127. where a > @2
  1128. group by b 
  1129. having avg(a) > @3;
  1130. the_sum the_town
  1131. 204 Oporto
  1132. 203 Oporto
  1133. 204 Lisboa
  1134. prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1
  1135.                      where a > ?
  1136.                      group by b
  1137.                      having avg(a) > ?
  1138.                      union distinct
  1139.                      select sum(a) + 200, ? from t1
  1140.                      where a > ?
  1141.                      group by b
  1142.                      having avg(a) > ? ';
  1143. execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3;
  1144. the_sum the_town
  1145. 204 Oporto
  1146. 203 Oporto
  1147. 204 Lisboa
  1148. test_sequence
  1149. ------ explain select tests ------
  1150. prepare stmt1 from ' explain select * from t9 ' ;
  1151. execute stmt1;
  1152. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  1153. def id 8 3 1 N 32929 0 63
  1154. def select_type 253 19 6 N 1 31 8
  1155. def table 253 64 2 Y 0 31 8
  1156. def type 253 10 3 Y 0 31 8
  1157. def possible_keys 253 4096 0 Y 0 31 8
  1158. def key 253 64 0 Y 0 31 8
  1159. def key_len 8 3 0 Y 32928 0 63
  1160. def ref 253 1024 0 Y 0 31 8
  1161. def rows 8 10 1 Y 32928 0 63
  1162. def Extra 253 255 0 N 1 31 8
  1163. id select_type table type possible_keys key key_len ref rows Extra
  1164. 1 SIMPLE t9 ALL NULL NULL NULL NULL 2
  1165. test_sequence
  1166. ------ delete tests ------
  1167. delete from t1 ;
  1168. insert into t1 values (1,'one');
  1169. insert into t1 values (2,'two');
  1170. insert into t1 values (3,'three');
  1171. insert into t1 values (4,'four');
  1172. commit ;
  1173. delete from t9 ;
  1174. insert into t9
  1175. set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1,
  1176. c10= 1, c11= 1, c12 = 1,
  1177. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1178. c16= '11:11:11', c17= '2004',
  1179. c18= 1, c19=true, c20= 'a', c21= '123456789a', 
  1180. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1181. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1182. c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday';
  1183. insert into t9
  1184. set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9,
  1185. c10= 9, c11= 9, c12 = 9,
  1186. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1187. c16= '11:11:11', c17= '2004',
  1188. c18= 1, c19=false, c20= 'a', c21= '123456789a', 
  1189. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1190. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1191. c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday';
  1192. commit ;
  1193. prepare stmt1 from 'delete from t1 where a=2' ;
  1194. execute stmt1;
  1195. select a,b from t1 where a=2;
  1196. a b
  1197. execute stmt1;
  1198. insert into t1 values(0,NULL);
  1199. set @arg00=NULL;
  1200. prepare stmt1 from 'delete from t1 where b=?' ;
  1201. execute stmt1 using @arg00;
  1202. select a,b from t1 where b is NULL ;
  1203. a b
  1204. 0 NULL
  1205. set @arg00='one';
  1206. execute stmt1 using @arg00;
  1207. select a,b from t1 where b=@arg00;
  1208. a b
  1209. prepare stmt1 from 'truncate table t1' ;
  1210. ERROR HY000: This command is not supported in the prepared statement protocol yet
  1211. test_sequence
  1212. ------ update tests ------
  1213. delete from t1 ;
  1214. insert into t1 values (1,'one');
  1215. insert into t1 values (2,'two');
  1216. insert into t1 values (3,'three');
  1217. insert into t1 values (4,'four');
  1218. commit ;
  1219. delete from t9 ;
  1220. insert into t9
  1221. set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1,
  1222. c10= 1, c11= 1, c12 = 1,
  1223. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1224. c16= '11:11:11', c17= '2004',
  1225. c18= 1, c19=true, c20= 'a', c21= '123456789a', 
  1226. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1227. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1228. c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday';
  1229. insert into t9
  1230. set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9,
  1231. c10= 9, c11= 9, c12 = 9,
  1232. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1233. c16= '11:11:11', c17= '2004',
  1234. c18= 1, c19=false, c20= 'a', c21= '123456789a', 
  1235. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1236. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1237. c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday';
  1238. commit ;
  1239. prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ;
  1240. execute stmt1;
  1241. select a,b from t1 where a=2;
  1242. a b
  1243. 2 a=two
  1244. execute stmt1;
  1245. select a,b from t1 where a=2;
  1246. a b
  1247. 2 a=two
  1248. set @arg00=NULL;
  1249. prepare stmt1 from 'update t1 set b=? where a=2' ;
  1250. execute stmt1 using @arg00;
  1251. select a,b from t1 where a=2;
  1252. a b
  1253. 2 NULL
  1254. set @arg00='two';
  1255. execute stmt1 using @arg00;
  1256. select a,b from t1 where a=2;
  1257. a b
  1258. 2 two
  1259. set @arg00=2;
  1260. prepare stmt1 from 'update t1 set b=NULL where a=?' ;
  1261. execute stmt1 using @arg00;
  1262. select a,b from t1 where a=@arg00;
  1263. a b
  1264. 2 NULL
  1265. update t1 set b='two' where a=@arg00;
  1266. set @arg00=2000;
  1267. execute stmt1 using @arg00;
  1268. select a,b from t1 where a=@arg00;
  1269. a b
  1270. set @arg00=2;
  1271. set @arg01=22;
  1272. prepare stmt1 from 'update t1 set a=? where a=?' ;
  1273. execute stmt1 using @arg00, @arg00;
  1274. select a,b from t1 where a=@arg00;
  1275. a b
  1276. 2 two
  1277. execute stmt1 using @arg01, @arg00;
  1278. select a,b from t1 where a=@arg01;
  1279. a b
  1280. 22 two
  1281. execute stmt1 using @arg00, @arg01;
  1282. select a,b from t1 where a=@arg00;
  1283. a b
  1284. 2 two
  1285. set @arg00=NULL;
  1286. set @arg01=2;
  1287. execute stmt1 using @arg00, @arg01;
  1288. Warnings:
  1289. Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1
  1290. select a,b from t1 order by a;
  1291. a b
  1292. 0 two
  1293. 1 one
  1294. 3 three
  1295. 4 four
  1296. set @arg00=0;
  1297. execute stmt1 using @arg01, @arg00;
  1298. select a,b from t1 order by a;
  1299. a b
  1300. 1 one
  1301. 2 two
  1302. 3 three
  1303. 4 four
  1304. set @arg00=23;
  1305. set @arg01='two';
  1306. set @arg02=2;
  1307. set @arg03='two';
  1308. set @arg04=2;
  1309. drop table if exists t2;
  1310. create table t2 as select a,b from t1 ;
  1311. prepare stmt1 from 'update t1 set a=? where b=?
  1312.                     and a in (select ? from t2
  1313.                               where b = ? or a = ?)';
  1314. execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ;
  1315. affected rows: 1
  1316. info: Rows matched: 1  Changed: 1  Warnings: 0
  1317. select a,b from t1 where a = @arg00 ;
  1318. a b
  1319. 23 two
  1320. prepare stmt1 from 'update t1 set a=? where b=?
  1321.                     and a not in (select ? from t2
  1322.                               where b = ? or a = ?)';
  1323. execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ;
  1324. affected rows: 1
  1325. info: Rows matched: 1  Changed: 1  Warnings: 0
  1326. select a,b from t1 order by a ;
  1327. a b
  1328. 1 one
  1329. 2 two
  1330. 3 three
  1331. 4 four
  1332. drop table t2 ;
  1333. create table t2
  1334. (
  1335. a int, b varchar(30),
  1336. primary key(a)
  1337. ) engine = 'HEAP'  ;
  1338. insert into t2(a,b) select a, b from t1 ;
  1339. prepare stmt1 from 'update t1 set a=? where b=?
  1340.                     and a in (select ? from t2
  1341.                               where b = ? or a = ?)';
  1342. execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ;
  1343. affected rows: 1
  1344. info: Rows matched: 1  Changed: 1  Warnings: 0
  1345. select a,b from t1 where a = @arg00 ;
  1346. a b
  1347. 23 two
  1348. prepare stmt1 from 'update t1 set a=? where b=?
  1349.                     and a not in (select ? from t2
  1350.                               where b = ? or a = ?)';
  1351. execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ;
  1352. affected rows: 1
  1353. info: Rows matched: 1  Changed: 1  Warnings: 0
  1354. select a,b from t1 order by a ;
  1355. a b
  1356. 1 one
  1357. 2 two
  1358. 3 three
  1359. 4 four
  1360. drop table t2 ;
  1361. set @arg00=1;
  1362. prepare stmt1 from 'update t1 set b=''bla''
  1363. where a=2
  1364. limit 1';
  1365. execute stmt1 ;
  1366. select a,b from t1 where b = 'bla' ;
  1367. a b
  1368. 2 bla
  1369. prepare stmt1 from 'update t1 set b=''bla''
  1370. where a=2
  1371. limit ?';
  1372. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3
  1373. test_sequence
  1374. ------ insert tests ------
  1375. delete from t1 ;
  1376. insert into t1 values (1,'one');
  1377. insert into t1 values (2,'two');
  1378. insert into t1 values (3,'three');
  1379. insert into t1 values (4,'four');
  1380. commit ;
  1381. delete from t9 ;
  1382. insert into t9
  1383. set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1,
  1384. c10= 1, c11= 1, c12 = 1,
  1385. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1386. c16= '11:11:11', c17= '2004',
  1387. c18= 1, c19=true, c20= 'a', c21= '123456789a', 
  1388. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1389. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1390. c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday';
  1391. insert into t9
  1392. set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9,
  1393. c10= 9, c11= 9, c12 = 9,
  1394. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1395. c16= '11:11:11', c17= '2004',
  1396. c18= 1, c19=false, c20= 'a', c21= '123456789a', 
  1397. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1398. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1399. c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday';
  1400. commit ;
  1401. prepare stmt1 from 'insert into t1 values(5, ''five'' )';
  1402. execute stmt1;
  1403. select a,b from t1 where a = 5;
  1404. a b
  1405. 5 five
  1406. set @arg00='six' ;
  1407. prepare stmt1 from 'insert into t1 values(6, ? )';
  1408. execute stmt1 using @arg00;
  1409. select a,b from t1 where b = @arg00;
  1410. a b
  1411. 6 six
  1412. execute stmt1 using @arg00;
  1413. ERROR 23000: Duplicate entry '6' for key 1
  1414. set @arg00=NULL ;
  1415. prepare stmt1 from 'insert into t1 values(0, ? )';
  1416. execute stmt1 using @arg00;
  1417. select a,b from t1 where b is NULL;
  1418. a b
  1419. 0 NULL
  1420. set @arg00=8 ;
  1421. set @arg01='eight' ;
  1422. prepare stmt1 from 'insert into t1 values(?, ? )';
  1423. execute stmt1 using @arg00, @arg01 ;
  1424. select a,b from t1 where b = @arg01;
  1425. a b
  1426. 8 eight
  1427. set @NULL= null ;
  1428. set @arg00= 'abc' ;
  1429. execute stmt1 using @NULL, @NULL ;
  1430. ERROR 23000: Column 'a' cannot be null
  1431. execute stmt1 using @NULL, @NULL ;
  1432. ERROR 23000: Column 'a' cannot be null
  1433. execute stmt1 using @NULL, @arg00 ;
  1434. ERROR 23000: Column 'a' cannot be null
  1435. execute stmt1 using @NULL, @arg00 ;
  1436. ERROR 23000: Column 'a' cannot be null
  1437. set @arg01= 10000 + 2 ;
  1438. execute stmt1 using @arg01, @arg00 ;
  1439. set @arg01= 10000 + 1 ;
  1440. execute stmt1 using @arg01, @arg00 ;
  1441. select * from t1 where a > 10000 order by a ;
  1442. a b
  1443. 10001 abc
  1444. 10002 abc
  1445. delete from t1 where a > 10000 ;
  1446. set @arg01= 10000 + 2 ;
  1447. execute stmt1 using @arg01, @NULL ;
  1448. set @arg01= 10000 + 1 ;
  1449. execute stmt1 using @arg01, @NULL ;
  1450. select * from t1 where a > 10000 order by a ;
  1451. a b
  1452. 10001 NULL
  1453. 10002 NULL
  1454. delete from t1 where a > 10000 ;
  1455. set @arg01= 10000 + 10 ;
  1456. execute stmt1 using @arg01, @arg01 ;
  1457. set @arg01= 10000 + 9 ;
  1458. execute stmt1 using @arg01, @arg01 ;
  1459. set @arg01= 10000 + 8 ;
  1460. execute stmt1 using @arg01, @arg01 ;
  1461. set @arg01= 10000 + 7 ;
  1462. execute stmt1 using @arg01, @arg01 ;
  1463. set @arg01= 10000 + 6 ;
  1464. execute stmt1 using @arg01, @arg01 ;
  1465. set @arg01= 10000 + 5 ;
  1466. execute stmt1 using @arg01, @arg01 ;
  1467. set @arg01= 10000 + 4 ;
  1468. execute stmt1 using @arg01, @arg01 ;
  1469. set @arg01= 10000 + 3 ;
  1470. execute stmt1 using @arg01, @arg01 ;
  1471. set @arg01= 10000 + 2 ;
  1472. execute stmt1 using @arg01, @arg01 ;
  1473. set @arg01= 10000 + 1 ;
  1474. execute stmt1 using @arg01, @arg01 ;
  1475. select * from t1 where a > 10000 order by a ;
  1476. a b
  1477. 10001 10001
  1478. 10002 10002
  1479. 10003 10003
  1480. 10004 10004
  1481. 10005 10005
  1482. 10006 10006
  1483. 10007 10007
  1484. 10008 10008
  1485. 10009 10009
  1486. 10010 10010
  1487. delete from t1 where a > 10000 ;
  1488. set @arg00=81 ;
  1489. set @arg01='8-1' ;
  1490. set @arg02=82 ;
  1491. set @arg03='8-2' ;
  1492. prepare stmt1 from 'insert into t1 values(?,?),(?,?)';
  1493. execute stmt1 using @arg00, @arg01, @arg02, @arg03 ;
  1494. select a,b from t1 where a in (@arg00,@arg02) ;
  1495. a b
  1496. 81 8-1
  1497. 82 8-2
  1498. set @arg00=9 ;
  1499. set @arg01='nine' ;
  1500. prepare stmt1 from 'insert into t1 set a=?, b=? ';
  1501. execute stmt1 using @arg00, @arg01 ;
  1502. select a,b from t1 where a = @arg00 ;
  1503. a b
  1504. 9 nine
  1505. set @arg00=6 ;
  1506. set @arg01=1 ;
  1507. prepare stmt1 from 'insert into t1 set a=?, b=''sechs''
  1508.                     on duplicate key update a=a + ?, b=concat(b,''modified'') ';
  1509. execute stmt1 using @arg00, @arg01;
  1510. select * from t1 order by a;
  1511. a b
  1512. 0 NULL
  1513. 1 one
  1514. 2 two
  1515. 3 three
  1516. 4 four
  1517. 5 five
  1518. 7 sixmodified
  1519. 8 eight
  1520. 9 nine
  1521. 81 8-1
  1522. 82 8-2
  1523. set @arg00=81 ;
  1524. set @arg01=1 ;
  1525. execute stmt1 using @arg00, @arg01;
  1526. ERROR 23000: Duplicate entry '82' for key 1
  1527. drop table if exists t2 ;
  1528. create table t2 (id int auto_increment primary key) 
  1529. ENGINE= 'HEAP'  ;
  1530. prepare stmt1 from ' select last_insert_id() ' ;
  1531. insert into t2 values (NULL) ;
  1532. execute stmt1 ;
  1533. last_insert_id()
  1534. 1
  1535. insert into t2 values (NULL) ;
  1536. execute stmt1 ;
  1537. last_insert_id()
  1538. 2
  1539. drop table t2 ;
  1540. set @1000=1000 ;
  1541. set @x1000_2="x1000_2" ;
  1542. set @x1000_3="x1000_3" ;
  1543. set @x1000="x1000" ;
  1544. set @1100=1100 ;
  1545. set @x1100="x1100" ;
  1546. set @100=100 ;
  1547. set @updated="updated" ;
  1548. insert into t1 values(1000,'x1000_1') ;
  1549. insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3)
  1550. on duplicate key update a = a + @100, b = concat(b,@updated) ;
  1551. select a,b from t1 where a >= 1000 order by a ;
  1552. a b
  1553. 1000 x1000_3
  1554. 1100 x1000_1updated
  1555. delete from t1 where a >= 1000 ;
  1556. insert into t1 values(1000,'x1000_1') ;
  1557. prepare stmt1 from ' insert into t1 values(?,?),(?,?)
  1558.                on duplicate key update a = a + ?, b = concat(b,?) ';
  1559. execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ;
  1560. select a,b from t1 where a >= 1000 order by a ;
  1561. a b
  1562. 1000 x1000_3
  1563. 1100 x1000_1updated
  1564. delete from t1 where a >= 1000 ;
  1565. insert into t1 values(1000,'x1000_1') ;
  1566. execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ;
  1567. select a,b from t1 where a >= 1000 order by a ;
  1568. a b
  1569. 1200 x1000_1updatedupdated
  1570. delete from t1 where a >= 1000 ;
  1571. prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' ';
  1572. execute stmt1;
  1573. execute stmt1;
  1574. execute stmt1;
  1575. test_sequence
  1576. ------ multi table tests ------
  1577. delete from t1 ;
  1578. delete from t9 ;
  1579. insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ;
  1580. insert into t9 (c1,c21)
  1581. values (1, 'one'), (2, 'two'), (3, 'three') ;
  1582. prepare stmt_delete from " delete t1, t9 
  1583.   from t1, t9 where t1.a=t9.c1 and t1.b='updated' ";
  1584. prepare stmt_update from " update t1, t9 
  1585.   set t1.b='updated', t9.c21='updated'
  1586.   where t1.a=t9.c1 and t1.a=? ";
  1587. prepare stmt_select1 from " select a, b from t1 order by a" ;
  1588. prepare stmt_select2 from " select c1, c21 from t9 order by c1" ;
  1589. set @arg00= 1 ;
  1590. execute stmt_update using @arg00 ;
  1591. execute stmt_delete ;
  1592. execute stmt_select1 ;
  1593. a b
  1594. 2 two
  1595. 3 three
  1596. execute stmt_select2 ;
  1597. c1 c21
  1598. 2 two
  1599. 3 three
  1600. set @arg00= @arg00 + 1 ;
  1601. execute stmt_update using @arg00 ;
  1602. execute stmt_delete ;
  1603. execute stmt_select1 ;
  1604. a b
  1605. 3 three
  1606. execute stmt_select2 ;
  1607. c1 c21
  1608. 3 three
  1609. set @arg00= @arg00 + 1 ;
  1610. execute stmt_update using @arg00 ;
  1611. execute stmt_delete ;
  1612. execute stmt_select1 ;
  1613. a b
  1614. execute stmt_select2 ;
  1615. c1 c21
  1616. set @arg00= @arg00 + 1 ;
  1617. delete from t1 ;
  1618. insert into t1 values (1,'one');
  1619. insert into t1 values (2,'two');
  1620. insert into t1 values (3,'three');
  1621. insert into t1 values (4,'four');
  1622. commit ;
  1623. delete from t9 ;
  1624. insert into t9
  1625. set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1,
  1626. c10= 1, c11= 1, c12 = 1,
  1627. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1628. c16= '11:11:11', c17= '2004',
  1629. c18= 1, c19=true, c20= 'a', c21= '123456789a', 
  1630. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1631. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1632. c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday';
  1633. insert into t9
  1634. set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9,
  1635. c10= 9, c11= 9, c12 = 9,
  1636. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1637. c16= '11:11:11', c17= '2004',
  1638. c18= 1, c19=false, c20= 'a', c21= '123456789a', 
  1639. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1640. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1641. c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday';
  1642. commit ;
  1643. insert into t1 values(0,NULL) ;
  1644. set @duplicate='duplicate ' ;
  1645. set @1000=1000 ;
  1646. set @5=5 ;
  1647. select a,b from t1 where a < 5 order by a ;
  1648. a b
  1649. 0 NULL
  1650. 1 one
  1651. 2 two
  1652. 3 three
  1653. 4 four
  1654. insert into t1 select a + @1000, concat(@duplicate,b) from t1
  1655. where a < @5 ;
  1656. affected rows: 5
  1657. info: Records: 5  Duplicates: 0  Warnings: 0
  1658. select a,b from t1 where a >= 1000 order by a ;
  1659. a b
  1660. 1000 NULL
  1661. 1001 duplicate one
  1662. 1002 duplicate two
  1663. 1003 duplicate three
  1664. 1004 duplicate four
  1665. delete from t1 where a >= 1000 ;
  1666. prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1
  1667. where a < ? ' ;
  1668. execute stmt1 using @1000, @duplicate, @5;
  1669. affected rows: 5
  1670. info: Records: 5  Duplicates: 0  Warnings: 0
  1671. select a,b from t1 where a >= 1000 order by a ;
  1672. a b
  1673. 1000 NULL
  1674. 1001 duplicate one
  1675. 1002 duplicate two
  1676. 1003 duplicate three
  1677. 1004 duplicate four
  1678. delete from t1 where a >= 1000 ;
  1679. set @1=1 ;
  1680. set @2=2 ;
  1681. set @100=100 ;
  1682. set @float=1.00;
  1683. set @five='five' ;
  1684. drop table if exists t2;
  1685. create table t2 like t1 ;
  1686. insert into t2 (b,a) 
  1687. select @duplicate, sum(first.a) from t1 first, t1 second
  1688. where first.a <> @5 and second.b = first.b
  1689. and second.b <> @five
  1690. group by second.b
  1691. having sum(second.a) > @2
  1692. union
  1693. select b, a + @100 from t1
  1694. where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b 
  1695. from t1);
  1696. affected rows: 3
  1697. info: Records: 3  Duplicates: 0  Warnings: 0
  1698. select a,b from t2 order by a ;
  1699. a b
  1700. 3 duplicate
  1701. 4 duplicate
  1702. 103 three
  1703. delete from t2 ;
  1704. prepare stmt1 from ' insert into t2 (b,a) 
  1705. select ?, sum(first.a)
  1706.   from t1 first, t1 second 
  1707.   where first.a <> ? and second.b = first.b and second.b <> ?
  1708.   group by second.b
  1709.   having sum(second.a) > ?
  1710. union
  1711. select b, a + ? from t1
  1712.   where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b 
  1713.                  from t1 ) ' ;
  1714. execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ;
  1715. affected rows: 3
  1716. info: Records: 3  Duplicates: 0  Warnings: 0
  1717. select a,b from t2 order by a ;
  1718. a b
  1719. 3 duplicate
  1720. 4 duplicate
  1721. 103 three
  1722. drop table t2;
  1723. drop table if exists t5 ;
  1724. set @arg01= 8;
  1725. set @arg02= 8.0;
  1726. set @arg03= 80.00000000000e-1;
  1727. set @arg04= 'abc' ;
  1728. set @arg05= CAST('abc' as binary) ;
  1729. set @arg06= '1991-08-05' ;
  1730. set @arg07= CAST('1991-08-05' as date);
  1731. set @arg08= '1991-08-05 01:01:01' ;
  1732. set @arg09= CAST('1991-08-05 01:01:01' as datetime) ;
  1733. set @arg10= unix_timestamp('1991-01-01 01:01:01');
  1734. set @arg11= YEAR('1991-01-01 01:01:01');
  1735. set @arg12= 8 ;
  1736. set @arg12= NULL ;
  1737. set @arg13= 8.0 ;
  1738. set @arg13= NULL ;
  1739. set @arg14= 'abc';
  1740. set @arg14= NULL ;
  1741. set @arg15= CAST('abc' as binary) ;
  1742. set @arg15= NULL ;
  1743. create table t5 as select
  1744. 8                           as const01, @arg01 as param01,
  1745. 8.0                         as const02, @arg02 as param02,
  1746. 80.00000000000e-1           as const03, @arg03 as param03,
  1747. 'abc'                       as const04, @arg04 as param04,
  1748. CAST('abc' as binary)       as const05, @arg05 as param05,
  1749. '1991-08-05'                as const06, @arg06 as param06,
  1750. CAST('1991-08-05' as date)  as const07, @arg07 as param07,
  1751. '1991-08-05 01:01:01'       as const08, @arg08 as param08,
  1752. CAST('1991-08-05 01:01:01'  as datetime) as const09, @arg09 as param09,
  1753. unix_timestamp('1991-01-01 01:01:01')    as const10, @arg10 as param10,
  1754. YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, 
  1755. NULL                        as const12, @arg12 as param12,
  1756. @arg13 as param13,
  1757. @arg14 as param14,
  1758. @arg15 as param15;
  1759. show create table t5 ;
  1760. Table Create Table
  1761. t5 CREATE TABLE `t5` (
  1762.   `const01` bigint(1) NOT NULL default '0',
  1763.   `param01` bigint(20) default NULL,
  1764.   `const02` double(3,1) NOT NULL default '0.0',
  1765.   `param02` double default NULL,
  1766.   `const03` double NOT NULL default '0',
  1767.   `param03` double default NULL,
  1768.   `const04` char(3) NOT NULL default '',
  1769.   `param04` longtext,
  1770.   `const05` binary(3) NOT NULL default '',
  1771.   `param05` longblob,
  1772.   `const06` varchar(10) NOT NULL default '',
  1773.   `param06` longtext,
  1774.   `const07` date default NULL,
  1775.   `param07` longblob,
  1776.   `const08` varchar(19) NOT NULL default '',
  1777.   `param08` longtext,
  1778.   `const09` datetime default NULL,
  1779.   `param09` longblob,
  1780.   `const10` int(10) NOT NULL default '0',
  1781.   `param10` bigint(20) default NULL,
  1782.   `const11` int(4) default NULL,
  1783.   `param11` bigint(20) default NULL,
  1784.   `const12` binary(0) default NULL,
  1785.   `param12` bigint(20) default NULL,
  1786.   `param13` double default NULL,
  1787.   `param14` longtext,
  1788.   `param15` longblob
  1789. ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  1790. select * from t5 ;
  1791. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  1792. def test t5 t5 const01 const01 8 1 1 N 32769 0 63
  1793. def test t5 t5 param01 param01 8 20 1 Y 32768 0 63
  1794. def test t5 t5 const02 const02 5 3 3 N 32769 1 63
  1795. def test t5 t5 param02 param02 5 20 1 Y 32768 31 63
  1796. def test t5 t5 const03 const03 5 23 1 N 32769 31 63
  1797. def test t5 t5 param03 param03 5 20 1 Y 32768 31 63
  1798. def test t5 t5 const04 const04 254 3 3 N 1 0 8
  1799. def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
  1800. def test t5 t5 const05 const05 254 3 3 N 129 0 63
  1801. def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
  1802. def test t5 t5 const06 const06 253 10 10 N 1 0 8
  1803. def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
  1804. def test t5 t5 const07 const07 10 10 10 Y 128 0 63
  1805. def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
  1806. def test t5 t5 const08 const08 253 19 19 N 1 0 8
  1807. def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
  1808. def test t5 t5 const09 const09 12 19 19 Y 128 0 63
  1809. def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
  1810. def test t5 t5 const10 const10 3 10 9 N 32769 0 63
  1811. def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
  1812. def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
  1813. def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
  1814. def test t5 t5 const12 const12 254 0 0 Y 128 0 63
  1815. def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
  1816. def test t5 t5 param13 param13 5 20 0 Y 32768 31 63
  1817. def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
  1818. def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
  1819. const01 8
  1820. param01 8
  1821. const02 8.0
  1822. param02 8
  1823. const03 8
  1824. param03 8
  1825. const04 abc
  1826. param04 abc
  1827. const05 abc
  1828. param05 abc
  1829. const06 1991-08-05
  1830. param06 1991-08-05
  1831. const07 1991-08-05
  1832. param07 1991-08-05
  1833. const08 1991-08-05 01:01:01
  1834. param08 1991-08-05 01:01:01
  1835. const09 1991-08-05 01:01:01
  1836. param09 1991-08-05 01:01:01
  1837. const10 662680861
  1838. param10 662680861
  1839. const11 1991
  1840. param11 1991
  1841. const12 NULL
  1842. param12 NULL
  1843. param13 NULL
  1844. param14 NULL
  1845. param15 NULL
  1846. drop table t5 ;
  1847. test_sequence
  1848. ------ data type conversion tests ------
  1849. delete from t1 ;
  1850. insert into t1 values (1,'one');
  1851. insert into t1 values (2,'two');
  1852. insert into t1 values (3,'three');
  1853. insert into t1 values (4,'four');
  1854. commit ;
  1855. delete from t9 ;
  1856. insert into t9
  1857. set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1,
  1858. c10= 1, c11= 1, c12 = 1,
  1859. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1860. c16= '11:11:11', c17= '2004',
  1861. c18= 1, c19=true, c20= 'a', c21= '123456789a', 
  1862. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1863. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1864. c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday';
  1865. insert into t9
  1866. set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9,
  1867. c10= 9, c11= 9, c12 = 9,
  1868. c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11',
  1869. c16= '11:11:11', c17= '2004',
  1870. c18= 1, c19=false, c20= 'a', c21= '123456789a', 
  1871. c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext',
  1872. c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext',
  1873. c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday';
  1874. commit ;
  1875. insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ;
  1876. select * from t9 order by c1 ;
  1877. c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
  1878. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  1879. 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  1880. 9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday
  1881. test_sequence
  1882. ------ select @parameter:= column ------
  1883. prepare full_info from "select @arg01, @arg02, @arg03, @arg04,
  1884.        @arg05, @arg06, @arg07, @arg08,
  1885.        @arg09, @arg10, @arg11, @arg12,
  1886.        @arg13, @arg14, @arg15, @arg16,
  1887.        @arg17, @arg18, @arg19, @arg20,
  1888.        @arg21, @arg22, @arg23, @arg24,
  1889.        @arg25, @arg26, @arg27, @arg28,
  1890.        @arg29, @arg30, @arg31, @arg32" ;
  1891. select @arg01:=  c1, @arg02:=  c2, @arg03:=  c3, @arg04:=  c4,
  1892. @arg05:=  c5, @arg06:=  c6, @arg07:=  c7, @arg08:=  c8,
  1893. @arg09:=  c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
  1894. @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16,
  1895. @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20,
  1896. @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24,
  1897. @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28,
  1898. @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32
  1899. from t9 where c1= 1 ;
  1900. @arg01:=  c1 @arg02:=  c2 @arg03:=  c3 @arg04:=  c4 @arg05:=  c5 @arg06:=  c6 @arg07:=  c7 @arg08:=  c8 @arg09:=  c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
  1901. 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  1902. execute full_info ;
  1903. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  1904. def @arg01 254 20 1 Y 128 31 63
  1905. def @arg02 254 20 1 Y 128 31 63
  1906. def @arg03 254 20 1 Y 128 31 63
  1907. def @arg04 254 20 1 Y 128 31 63
  1908. def @arg05 254 20 1 Y 128 31 63
  1909. def @arg06 254 20 1 Y 128 31 63
  1910. def @arg07 254 20 1 Y 128 31 63
  1911. def @arg08 254 20 1 Y 128 31 63
  1912. def @arg09 254 20 1 Y 128 31 63
  1913. def @arg10 254 20 1 Y 128 31 63
  1914. def @arg11 254 20 1 Y 128 31 63
  1915. def @arg12 254 20 1 Y 128 31 63
  1916. def @arg13 254 8192 10 Y 128 31 63
  1917. def @arg14 254 8192 19 Y 128 31 63
  1918. def @arg15 254 8192 19 Y 128 31 63
  1919. def @arg16 254 8192 8 Y 128 31 63
  1920. def @arg17 254 20 4 Y 128 31 63
  1921. def @arg18 254 20 1 Y 128 31 63
  1922. def @arg19 254 20 1 Y 128 31 63
  1923. def @arg20 254 8192 1 Y 0 31 8
  1924. def @arg21 254 8192 10 Y 0 31 8
  1925. def @arg22 254 8192 30 Y 0 31 8
  1926. def @arg23 254 8192 8 Y 0 31 8
  1927. def @arg24 254 8192 8 Y 0 31 8
  1928. def @arg25 254 8192 4 Y 0 31 8
  1929. def @arg26 254 8192 4 Y 0 31 8
  1930. def @arg27 254 8192 10 Y 0 31 8
  1931. def @arg28 254 8192 10 Y 0 31 8
  1932. def @arg29 254 8192 8 Y 0 31 8
  1933. def @arg30 254 8192 8 Y 0 31 8
  1934. def @arg31 254 8192 3 Y 0 31 8
  1935. def @arg32 254 8192 6 Y 0 31 8
  1936. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  1937. 1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  1938. select @arg01:=  c1, @arg02:=  c2, @arg03:=  c3, @arg04:=  c4,
  1939. @arg05:=  c5, @arg06:=  c6, @arg07:=  c7, @arg08:=  c8,
  1940. @arg09:=  c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
  1941. @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16,
  1942. @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20,
  1943. @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24,
  1944. @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28,
  1945. @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32
  1946. from t9 where c1= 0 ;
  1947. @arg01:=  c1 @arg02:=  c2 @arg03:=  c3 @arg04:=  c4 @arg05:=  c5 @arg06:=  c6 @arg07:=  c7 @arg08:=  c8 @arg09:=  c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
  1948. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  1949. execute full_info ;
  1950. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  1951. def @arg01 254 20 1 Y 128 31 63
  1952. def @arg02 254 20 0 Y 128 31 63
  1953. def @arg03 254 20 0 Y 128 31 63
  1954. def @arg04 254 20 0 Y 128 31 63
  1955. def @arg05 254 20 0 Y 128 31 63
  1956. def @arg06 254 20 0 Y 128 31 63
  1957. def @arg07 254 20 0 Y 128 31 63
  1958. def @arg08 254 20 0 Y 128 31 63
  1959. def @arg09 254 20 0 Y 128 31 63
  1960. def @arg10 254 20 0 Y 128 31 63
  1961. def @arg11 254 20 0 Y 128 31 63
  1962. def @arg12 254 20 0 Y 128 31 63
  1963. def @arg13 254 8192 0 Y 128 31 63
  1964. def @arg14 254 8192 0 Y 128 31 63
  1965. def @arg15 254 8192 19 Y 128 31 63
  1966. def @arg16 254 8192 0 Y 128 31 63
  1967. def @arg17 254 20 0 Y 128 31 63
  1968. def @arg18 254 20 0 Y 128 31 63
  1969. def @arg19 254 20 0 Y 128 31 63
  1970. def @arg20 254 8192 0 Y 0 31 8
  1971. def @arg21 254 8192 0 Y 0 31 8
  1972. def @arg22 254 8192 0 Y 0 31 8
  1973. def @arg23 254 8192 0 Y 0 31 8
  1974. def @arg24 254 8192 0 Y 0 31 8
  1975. def @arg25 254 8192 0 Y 0 31 8
  1976. def @arg26 254 8192 0 Y 0 31 8
  1977. def @arg27 254 8192 0 Y 0 31 8
  1978. def @arg28 254 8192 0 Y 0 31 8
  1979. def @arg29 254 8192 0 Y 0 31 8
  1980. def @arg30 254 8192 0 Y 0 31 8
  1981. def @arg31 254 8192 0 Y 0 31 8
  1982. def @arg32 254 8192 0 Y 0 31 8
  1983. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  1984. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  1985. prepare stmt1 from "select 
  1986.        @arg01:=  c1, @arg02:=  c2, @arg03:=  c3, @arg04:=  c4,
  1987.        @arg05:=  c5, @arg06:=  c6, @arg07:=  c7, @arg08:=  c8,
  1988.        @arg09:=  c9, @arg10:= c10, @arg11:= c11, @arg12:= c12,
  1989.        @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16,
  1990.        @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20,
  1991.        @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24,
  1992.        @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28,
  1993.        @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32
  1994. from t9 where c1= ?" ;
  1995. set @my_key= 1 ;
  1996. execute stmt1 using @my_key ;
  1997. @arg01:=  c1 @arg02:=  c2 @arg03:=  c3 @arg04:=  c4 @arg05:=  c5 @arg06:=  c6 @arg07:=  c7 @arg08:=  c8 @arg09:=  c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
  1998. 1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  1999. execute full_info ;
  2000. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  2001. def @arg01 254 20 1 Y 128 31 63
  2002. def @arg02 254 20 1 Y 128 31 63
  2003. def @arg03 254 20 1 Y 128 31 63
  2004. def @arg04 254 20 1 Y 128 31 63
  2005. def @arg05 254 20 1 Y 128 31 63
  2006. def @arg06 254 20 1 Y 128 31 63
  2007. def @arg07 254 20 1 Y 128 31 63
  2008. def @arg08 254 20 1 Y 128 31 63
  2009. def @arg09 254 20 1 Y 128 31 63
  2010. def @arg10 254 20 1 Y 128 31 63
  2011. def @arg11 254 20 1 Y 128 31 63
  2012. def @arg12 254 20 1 Y 128 31 63
  2013. def @arg13 254 8192 10 Y 128 31 63
  2014. def @arg14 254 8192 19 Y 128 31 63
  2015. def @arg15 254 8192 19 Y 128 31 63
  2016. def @arg16 254 8192 8 Y 128 31 63
  2017. def @arg17 254 20 4 Y 128 31 63
  2018. def @arg18 254 20 1 Y 128 31 63
  2019. def @arg19 254 20 1 Y 128 31 63
  2020. def @arg20 254 8192 1 Y 0 31 8
  2021. def @arg21 254 8192 10 Y 0 31 8
  2022. def @arg22 254 8192 30 Y 0 31 8
  2023. def @arg23 254 8192 8 Y 0 31 8
  2024. def @arg24 254 8192 8 Y 0 31 8
  2025. def @arg25 254 8192 4 Y 0 31 8
  2026. def @arg26 254 8192 4 Y 0 31 8
  2027. def @arg27 254 8192 10 Y 0 31 8
  2028. def @arg28 254 8192 10 Y 0 31 8
  2029. def @arg29 254 8192 8 Y 0 31 8
  2030. def @arg30 254 8192 8 Y 0 31 8
  2031. def @arg31 254 8192 3 Y 0 31 8
  2032. def @arg32 254 8192 6 Y 0 31 8
  2033. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  2034. 1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  2035. set @my_key= 0 ;
  2036. execute stmt1 using @my_key ;
  2037. @arg01:=  c1 @arg02:=  c2 @arg03:=  c3 @arg04:=  c4 @arg05:=  c5 @arg06:=  c6 @arg07:=  c7 @arg08:=  c8 @arg09:=  c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32
  2038. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2039. execute full_info ;
  2040. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  2041. def @arg01 254 20 1 Y 128 31 63
  2042. def @arg02 254 20 0 Y 128 31 63
  2043. def @arg03 254 20 0 Y 128 31 63
  2044. def @arg04 254 20 0 Y 128 31 63
  2045. def @arg05 254 20 0 Y 128 31 63
  2046. def @arg06 254 20 0 Y 128 31 63
  2047. def @arg07 254 20 0 Y 128 31 63
  2048. def @arg08 254 20 0 Y 128 31 63
  2049. def @arg09 254 20 0 Y 128 31 63
  2050. def @arg10 254 20 0 Y 128 31 63
  2051. def @arg11 254 20 0 Y 128 31 63
  2052. def @arg12 254 20 0 Y 128 31 63
  2053. def @arg13 254 8192 0 Y 128 31 63
  2054. def @arg14 254 8192 0 Y 128 31 63
  2055. def @arg15 254 8192 19 Y 128 31 63
  2056. def @arg16 254 8192 0 Y 128 31 63
  2057. def @arg17 254 20 0 Y 128 31 63
  2058. def @arg18 254 20 0 Y 128 31 63
  2059. def @arg19 254 20 0 Y 128 31 63
  2060. def @arg20 254 8192 0 Y 0 31 8
  2061. def @arg21 254 8192 0 Y 0 31 8
  2062. def @arg22 254 8192 0 Y 0 31 8
  2063. def @arg23 254 8192 0 Y 0 31 8
  2064. def @arg24 254 8192 0 Y 0 31 8
  2065. def @arg25 254 8192 0 Y 0 31 8
  2066. def @arg26 254 8192 0 Y 0 31 8
  2067. def @arg27 254 8192 0 Y 0 31 8
  2068. def @arg28 254 8192 0 Y 0 31 8
  2069. def @arg29 254 8192 0 Y 0 31 8
  2070. def @arg30 254 8192 0 Y 0 31 8
  2071. def @arg31 254 8192 0 Y 0 31 8
  2072. def @arg32 254 8192 0 Y 0 31 8
  2073. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  2074. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2075. prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
  2076. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1
  2077. test_sequence
  2078. ------ select column, .. into @parm,.. ------
  2079. select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
  2080. c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
  2081. c25, c26, c27, c28, c29, c30, c31, c32
  2082. into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
  2083. @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16,
  2084. @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24,
  2085. @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32
  2086. from t9 where c1= 1 ;
  2087. execute full_info ;
  2088. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  2089. def @arg01 254 20 1 Y 128 31 63
  2090. def @arg02 254 20 1 Y 128 31 63
  2091. def @arg03 254 20 1 Y 128 31 63
  2092. def @arg04 254 20 1 Y 128 31 63
  2093. def @arg05 254 20 1 Y 128 31 63
  2094. def @arg06 254 20 1 Y 128 31 63
  2095. def @arg07 254 20 1 Y 128 31 63
  2096. def @arg08 254 20 1 Y 128 31 63
  2097. def @arg09 254 20 1 Y 128 31 63
  2098. def @arg10 254 20 1 Y 128 31 63
  2099. def @arg11 254 20 1 Y 128 31 63
  2100. def @arg12 254 20 1 Y 128 31 63
  2101. def @arg13 254 8192 10 Y 128 31 63
  2102. def @arg14 254 8192 19 Y 128 31 63
  2103. def @arg15 254 8192 19 Y 128 31 63
  2104. def @arg16 254 8192 8 Y 128 31 63
  2105. def @arg17 254 20 4 Y 128 31 63
  2106. def @arg18 254 20 1 Y 128 31 63
  2107. def @arg19 254 20 1 Y 128 31 63
  2108. def @arg20 254 8192 1 Y 0 31 8
  2109. def @arg21 254 8192 10 Y 0 31 8
  2110. def @arg22 254 8192 30 Y 0 31 8
  2111. def @arg23 254 8192 8 Y 0 31 8
  2112. def @arg24 254 8192 8 Y 0 31 8
  2113. def @arg25 254 8192 4 Y 0 31 8
  2114. def @arg26 254 8192 4 Y 0 31 8
  2115. def @arg27 254 8192 10 Y 0 31 8
  2116. def @arg28 254 8192 10 Y 0 31 8
  2117. def @arg29 254 8192 8 Y 0 31 8
  2118. def @arg30 254 8192 8 Y 0 31 8
  2119. def @arg31 254 8192 3 Y 0 31 8
  2120. def @arg32 254 8192 6 Y 0 31 8
  2121. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  2122. 1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  2123. select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
  2124. c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
  2125. c25, c26, c27, c28, c29, c30, c31, c32
  2126. into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
  2127. @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16,
  2128. @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24,
  2129. @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32
  2130. from t9 where c1= 0 ;
  2131. execute full_info ;
  2132. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  2133. def @arg01 254 20 1 Y 128 31 63
  2134. def @arg02 254 20 0 Y 128 31 63
  2135. def @arg03 254 20 0 Y 128 31 63
  2136. def @arg04 254 20 0 Y 128 31 63
  2137. def @arg05 254 20 0 Y 128 31 63
  2138. def @arg06 254 20 0 Y 128 31 63
  2139. def @arg07 254 20 0 Y 128 31 63
  2140. def @arg08 254 20 0 Y 128 31 63
  2141. def @arg09 254 20 0 Y 128 31 63
  2142. def @arg10 254 20 0 Y 128 31 63
  2143. def @arg11 254 20 0 Y 128 31 63
  2144. def @arg12 254 20 0 Y 128 31 63
  2145. def @arg13 254 8192 0 Y 128 31 63
  2146. def @arg14 254 8192 0 Y 128 31 63
  2147. def @arg15 254 8192 19 Y 128 31 63
  2148. def @arg16 254 8192 0 Y 128 31 63
  2149. def @arg17 254 20 0 Y 128 31 63
  2150. def @arg18 254 20 0 Y 128 31 63
  2151. def @arg19 254 20 0 Y 128 31 63
  2152. def @arg20 254 8192 0 Y 0 31 8
  2153. def @arg21 254 8192 0 Y 0 31 8
  2154. def @arg22 254 8192 0 Y 0 31 8
  2155. def @arg23 254 8192 0 Y 0 31 8
  2156. def @arg24 254 8192 0 Y 0 31 8
  2157. def @arg25 254 8192 0 Y 0 31 8
  2158. def @arg26 254 8192 0 Y 0 31 8
  2159. def @arg27 254 8192 0 Y 0 31 8
  2160. def @arg28 254 8192 0 Y 0 31 8
  2161. def @arg29 254 8192 0 Y 0 31 8
  2162. def @arg30 254 8192 0 Y 0 31 8
  2163. def @arg31 254 8192 0 Y 0 31 8
  2164. def @arg32 254 8192 0 Y 0 31 8
  2165. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  2166. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2167. prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
  2168.        c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,
  2169.        c25, c26, c27, c28, c29, c30, c31, c32
  2170. into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
  2171.      @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16,
  2172.      @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24,
  2173.      @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32
  2174. from t9 where c1= ?" ;
  2175. set @my_key= 1 ;
  2176. execute stmt1 using @my_key ;
  2177. execute full_info ;
  2178. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  2179. def @arg01 254 20 1 Y 128 31 63
  2180. def @arg02 254 20 1 Y 128 31 63
  2181. def @arg03 254 20 1 Y 128 31 63
  2182. def @arg04 254 20 1 Y 128 31 63
  2183. def @arg05 254 20 1 Y 128 31 63
  2184. def @arg06 254 20 1 Y 128 31 63
  2185. def @arg07 254 20 1 Y 128 31 63
  2186. def @arg08 254 20 1 Y 128 31 63
  2187. def @arg09 254 20 1 Y 128 31 63
  2188. def @arg10 254 20 1 Y 128 31 63
  2189. def @arg11 254 20 1 Y 128 31 63
  2190. def @arg12 254 20 1 Y 128 31 63
  2191. def @arg13 254 8192 10 Y 128 31 63
  2192. def @arg14 254 8192 19 Y 128 31 63
  2193. def @arg15 254 8192 19 Y 128 31 63
  2194. def @arg16 254 8192 8 Y 128 31 63
  2195. def @arg17 254 20 4 Y 128 31 63
  2196. def @arg18 254 20 1 Y 128 31 63
  2197. def @arg19 254 20 1 Y 128 31 63
  2198. def @arg20 254 8192 1 Y 0 31 8
  2199. def @arg21 254 8192 10 Y 0 31 8
  2200. def @arg22 254 8192 30 Y 0 31 8
  2201. def @arg23 254 8192 8 Y 0 31 8
  2202. def @arg24 254 8192 8 Y 0 31 8
  2203. def @arg25 254 8192 4 Y 0 31 8
  2204. def @arg26 254 8192 4 Y 0 31 8
  2205. def @arg27 254 8192 10 Y 0 31 8
  2206. def @arg28 254 8192 10 Y 0 31 8
  2207. def @arg29 254 8192 8 Y 0 31 8
  2208. def @arg30 254 8192 8 Y 0 31 8
  2209. def @arg31 254 8192 3 Y 0 31 8
  2210. def @arg32 254 8192 6 Y 0 31 8
  2211. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  2212. 1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
  2213. set @my_key= 0 ;
  2214. execute stmt1 using @my_key ;
  2215. execute full_info ;
  2216. Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
  2217. def @arg01 254 20 1 Y 128 31 63
  2218. def @arg02 254 20 0 Y 128 31 63
  2219. def @arg03 254 20 0 Y 128 31 63
  2220. def @arg04 254 20 0 Y 128 31 63
  2221. def @arg05 254 20 0 Y 128 31 63
  2222. def @arg06 254 20 0 Y 128 31 63
  2223. def @arg07 254 20 0 Y 128 31 63
  2224. def @arg08 254 20 0 Y 128 31 63
  2225. def @arg09 254 20 0 Y 128 31 63
  2226. def @arg10 254 20 0 Y 128 31 63
  2227. def @arg11 254 20 0 Y 128 31 63
  2228. def @arg12 254 20 0 Y 128 31 63
  2229. def @arg13 254 8192 0 Y 128 31 63
  2230. def @arg14 254 8192 0 Y 128 31 63
  2231. def @arg15 254 8192 19 Y 128 31 63
  2232. def @arg16 254 8192 0 Y 128 31 63
  2233. def @arg17 254 20 0 Y 128 31 63
  2234. def @arg18 254 20 0 Y 128 31 63
  2235. def @arg19 254 20 0 Y 128 31 63
  2236. def @arg20 254 8192 0 Y 0 31 8
  2237. def @arg21 254 8192 0 Y 0 31 8
  2238. def @arg22 254 8192 0 Y 0 31 8
  2239. def @arg23 254 8192 0 Y 0 31 8
  2240. def @arg24 254 8192 0 Y 0 31 8
  2241. def @arg25 254 8192 0 Y 0 31 8
  2242. def @arg26 254 8192 0 Y 0 31 8
  2243. def @arg27 254 8192 0 Y 0 31 8
  2244. def @arg28 254 8192 0 Y 0 31 8
  2245. def @arg29 254 8192 0 Y 0 31 8
  2246. def @arg30 254 8192 0 Y 0 31 8
  2247. def @arg31 254 8192 0 Y 0 31 8
  2248. def @arg32 254 8192 0 Y 0 31 8
  2249. @arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
  2250. 0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2251. prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
  2252. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1
  2253. test_sequence
  2254. -- insert into numeric columns --
  2255. insert into t9 
  2256. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2257. values
  2258. ( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ;
  2259. set @arg00= 21 ;
  2260. insert into t9 
  2261. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2262. values
  2263. ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2264. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2265. prepare stmt1 from "insert into t9 
  2266.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2267. values
  2268.   ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ;
  2269. execute stmt1 ;
  2270. set @arg00= 23;
  2271. prepare stmt2 from "insert into t9 
  2272.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2273. values 
  2274.   (  ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ;
  2275. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2276. @arg00, @arg00, @arg00, @arg00 ;
  2277. insert into t9 
  2278. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2279. values
  2280. ( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0,
  2281. 30.0, 30.0, 30.0 ) ;
  2282. set @arg00= 31.0 ;
  2283. insert into t9 
  2284. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2285. values
  2286. ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2287. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2288. prepare stmt1 from "insert into t9 
  2289.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2290. values
  2291.   ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0,
  2292.     32.0, 32.0, 32.0 )" ;
  2293. execute stmt1 ;
  2294. set @arg00= 33.0;
  2295. prepare stmt2 from "insert into t9 
  2296.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2297. values 
  2298.   (  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,   ?,   ? )" ;
  2299. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2300. @arg00, @arg00, @arg00, @arg00 ;
  2301. insert into t9 
  2302. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2303. values
  2304. ( '40', '40', '40', '40', '40', '40', '40', '40',
  2305. '40', '40', '40' ) ;
  2306. set @arg00= '41' ;
  2307. insert into t9 
  2308. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2309. values
  2310. ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2311. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2312. prepare stmt1 from "insert into t9 
  2313.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2314. values
  2315.   ( '42', '42', '42', '42', '42', '42', '42', '42',
  2316.     '42', '42', '42' )" ;
  2317. execute stmt1 ;
  2318. set @arg00= '43';
  2319. prepare stmt2 from "insert into t9 
  2320.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2321. values 
  2322.   ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ;
  2323. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2324. @arg00, @arg00, @arg00, @arg00 ;
  2325. insert into t9 
  2326. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2327. values
  2328. ( CAST('50' as binary), CAST('50' as binary), 
  2329. CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), 
  2330. CAST('50' as binary), CAST('50' as binary), CAST('50' as binary),
  2331. CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ;
  2332. set @arg00= CAST('51' as binary) ;
  2333. insert into t9 
  2334. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2335. values
  2336. ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2337. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2338. prepare stmt1 from "insert into t9 
  2339.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2340. values
  2341.   ( CAST('52' as binary), CAST('52' as binary),
  2342.   CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), 
  2343.   CAST('52' as binary), CAST('52' as binary), CAST('52' as binary),
  2344.   CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ;
  2345. execute stmt1 ;
  2346. set @arg00= CAST('53' as binary) ;
  2347. prepare stmt2 from "insert into t9 
  2348.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2349. values 
  2350.   ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ;
  2351. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2352. @arg00, @arg00, @arg00, @arg00 ;
  2353. set @arg00= 2 ;
  2354. set @arg00= NULL ;
  2355. insert into t9
  2356. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2357. values
  2358. ( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  2359. NULL, NULL, NULL ) ;
  2360. insert into t9
  2361. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2362. values
  2363. ( 61, @arg00, @arg00, @arg00, @arg00, @arg00,
  2364. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2365. prepare stmt1 from "insert into t9
  2366.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2367. values
  2368.   ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  2369.     NULL, NULL, NULL )" ;
  2370. execute stmt1 ;
  2371. prepare stmt2 from "insert into t9
  2372.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2373. values
  2374.   ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ;
  2375. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2376. @arg00, @arg00, @arg00, @arg00 ;
  2377. set @arg00= 8.0 ;
  2378. set @arg00= NULL ;
  2379. insert into t9
  2380. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2381. values
  2382. ( 71, @arg00, @arg00, @arg00, @arg00, @arg00,
  2383. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2384. prepare stmt2 from "insert into t9
  2385.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2386. values
  2387.   ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ;
  2388. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2389. @arg00, @arg00, @arg00, @arg00 ;
  2390. set @arg00= 'abc' ;
  2391. set @arg00= NULL ;
  2392. insert into t9
  2393. ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2394. values
  2395. ( 81, @arg00, @arg00, @arg00, @arg00, @arg00,
  2396. @arg00, @arg00, @arg00, @arg00, @arg00 ) ;
  2397. prepare stmt2 from "insert into t9
  2398.   ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2399. values
  2400.   ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ;
  2401. execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2402. @arg00, @arg00, @arg00, @arg00 ;
  2403. select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12
  2404. from t9 where c1 >= 20
  2405. order by c1 ;
  2406. c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12
  2407. 20 20 20 20 20 20 20 20 20 20 20.0000
  2408. 21 21 21 21 21 21 21 21 21 21 21.0000
  2409. 22 22 22 22 22 22 22 22 22 22 22.0000
  2410. 23 23 23 23 23 23 23 23 23 23 23.0000
  2411. 30 30 30 30 30 30 30 30 30 30 30.0000
  2412. 31 31 31 31 31 31 31 31 31 31 31.0000
  2413. 32 32 32 32 32 32 32 32 32 32 32.0000
  2414. 33 33 33 33 33 33 33 33 33 33 33.0000
  2415. 40 40 40 40 40 40 40 40 40 40 40.0000
  2416. 41 41 41 41 41 41 41 41 41 41 41.0000
  2417. 42 42 42 42 42 42 42 42 42 42 42.0000
  2418. 43 43 43 43 43 43 43 43 43 43 43.0000
  2419. 50 50 50 50 50 50 50 50 50 50 50.0000
  2420. 51 51 51 51 51 51 51 51 51 51 51.0000
  2421. 52 52 52 52 52 52 52 52 52 52 52.0000
  2422. 53 53 53 53 53 53 53 53 53 53 53.0000
  2423. 60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2424. 61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2425. 62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2426. 63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2427. 71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2428. 73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2429. 81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2430. 83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2431. test_sequence
  2432. -- select .. where numeric column = .. --
  2433. set @arg00= 20;
  2434. select 'true' as found from t9 
  2435. where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20
  2436. and c8= 20 and c9= 20 and c10= 20 and c12= 20;
  2437. found
  2438. true
  2439. select 'true' as found from t9 
  2440. where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 
  2441. and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00
  2442. and c12= @arg00;
  2443. found
  2444. true
  2445. prepare stmt1 from "select 'true' as found from t9 
  2446. where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20
  2447.   and c8= 20 and c9= 20 and c10= 20 and c12= 20 ";
  2448. execute stmt1 ;
  2449. found
  2450. true
  2451. prepare stmt1 from "select 'true' as found from t9 
  2452. where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? 
  2453.   and c6= ? and c7= ? and c8= ? and c9= ? and c10= ?
  2454.   and c12= ? ";
  2455. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2456. @arg00, @arg00, @arg00, @arg00 ;
  2457. found
  2458. true
  2459. set @arg00= 20.0;
  2460. select 'true' as found from t9 
  2461. where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0
  2462. and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0;
  2463. found
  2464. true
  2465. select 'true' as found from t9 
  2466. where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 
  2467. and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00
  2468. and c12= @arg00;
  2469. found
  2470. true
  2471. prepare stmt1 from "select 'true' as found from t9 
  2472. where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0
  2473.   and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 ";
  2474. execute stmt1 ;
  2475. found
  2476. true
  2477. prepare stmt1 from "select 'true' as found from t9 
  2478. where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? 
  2479.   and c6= ? and c7= ? and c8= ? and c9= ? and c10= ?
  2480.   and c12= ? ";
  2481. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2482. @arg00, @arg00, @arg00, @arg00 ;
  2483. found
  2484. true
  2485. select 'true' as found from t9 
  2486. where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20'
  2487.   and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20';
  2488. found
  2489. true
  2490. prepare stmt1 from "select 'true' as found from t9
  2491. where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20'
  2492.   and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' ";
  2493. execute stmt1 ;
  2494. found
  2495. true
  2496. set @arg00= '20';
  2497. select 'true' as found from t9 
  2498. where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 
  2499. and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00
  2500. and c12= @arg00;
  2501. found
  2502. true
  2503. prepare stmt1 from "select 'true' as found from t9 
  2504. where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? 
  2505.   and c6= ? and c7= ? and c8= ? and c9= ? and c10= ?
  2506.   and c12= ? ";
  2507. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2508. @arg00, @arg00, @arg00, @arg00 ;
  2509. found
  2510. true
  2511. select 'true' as found from t9 
  2512. where c1= CAST('20' as binary) and c2= CAST('20' as binary) and 
  2513. c3= CAST('20' as binary) and c4= CAST('20' as binary) and 
  2514. c5= CAST('20' as binary) and c6= CAST('20' as binary) and 
  2515. c7= CAST('20' as binary) and c8= CAST('20' as binary) and 
  2516. c9= CAST('20' as binary) and c10= CAST('20' as binary) and 
  2517. c12= CAST('20' as binary);
  2518. found
  2519. true
  2520. prepare stmt1 from "select 'true' as found from t9
  2521. where c1= CAST('20' as binary) and c2= CAST('20' as binary) and 
  2522.       c3= CAST('20' as binary) and c4= CAST('20' as binary) and 
  2523.       c5= CAST('20' as binary) and c6= CAST('20' as binary) and 
  2524.       c7= CAST('20' as binary) and c8= CAST('20' as binary) and 
  2525.       c9= CAST('20' as binary) and c10= CAST('20' as binary) and 
  2526.       c12= CAST('20' as binary) ";
  2527. execute stmt1 ;
  2528. found
  2529. true
  2530. set @arg00= CAST('20' as binary) ;
  2531. select 'true' as found from t9 
  2532. where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 
  2533. and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00
  2534. and c12= @arg00;
  2535. found
  2536. true
  2537. prepare stmt1 from "select 'true' as found from t9 
  2538. where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? 
  2539.   and c6= ? and c7= ? and c8= ? and c9= ? and c10= ?
  2540.   and c12= ? ";
  2541. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2542. @arg00, @arg00, @arg00, @arg00 ;
  2543. found
  2544. true
  2545. delete from t9 ;
  2546. test_sequence
  2547. -- some numeric overflow experiments --
  2548. prepare my_insert from "insert into t9 
  2549.    ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 )
  2550. values 
  2551.    ( 'O',  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,   ?,   ? )" ;
  2552. prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12
  2553. from t9 where c21 = 'O' ";
  2554. prepare my_delete from "delete from t9 where c21 = 'O' ";
  2555. set @arg00= 9223372036854775807 ;
  2556. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2557. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2558. Warnings:
  2559. Warning 1264 Data truncated; out of range for column 'c1' at row 1
  2560. Warning 1264 Data truncated; out of range for column 'c2' at row 1
  2561. Warning 1264 Data truncated; out of range for column 'c3' at row 1
  2562. Warning 1264 Data truncated; out of range for column 'c4' at row 1
  2563. Warning 1264 Data truncated; out of range for column 'c5' at row 1
  2564. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2565. execute my_select ;
  2566. c1 127
  2567. c2 32767
  2568. c3 8388607
  2569. c4 2147483647
  2570. c5 2147483647
  2571. c6 9223372036854775807
  2572. c7 9.22337e+18
  2573. c8 9.22337203685478e+18
  2574. c9 9.22337203685478e+18
  2575. c10 9.22337203685478e+18
  2576. c12 99999.9999
  2577. execute my_delete ;
  2578. set @arg00= '9223372036854775807' ;
  2579. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2580. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2581. Warnings:
  2582. Warning 1264 Data truncated; out of range for column 'c1' at row 1
  2583. Warning 1264 Data truncated; out of range for column 'c2' at row 1
  2584. Warning 1264 Data truncated; out of range for column 'c3' at row 1
  2585. Warning 1265 Data truncated for column 'c4' at row 1
  2586. Warning 1265 Data truncated for column 'c5' at row 1
  2587. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2588. execute my_select ;
  2589. c1 127
  2590. c2 32767
  2591. c3 8388607
  2592. c4 2147483647
  2593. c5 2147483647
  2594. c6 9223372036854775807
  2595. c7 9.22337e+18
  2596. c8 9.22337203685478e+18
  2597. c9 9.22337203685478e+18
  2598. c10 9.22337203685478e+18
  2599. c12 99999.9999
  2600. execute my_delete ;
  2601. set @arg00= -9223372036854775808 ;
  2602. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2603. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2604. Warnings:
  2605. Warning 1264 Data truncated; out of range for column 'c1' at row 1
  2606. Warning 1264 Data truncated; out of range for column 'c2' at row 1
  2607. Warning 1264 Data truncated; out of range for column 'c3' at row 1
  2608. Warning 1264 Data truncated; out of range for column 'c4' at row 1
  2609. Warning 1264 Data truncated; out of range for column 'c5' at row 1
  2610. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2611. execute my_select ;
  2612. c1 -128
  2613. c2 -32768
  2614. c3 -8388608
  2615. c4 -2147483648
  2616. c5 -2147483648
  2617. c6 -9223372036854775808
  2618. c7 -9.22337e+18
  2619. c8 -9.22337203685478e+18
  2620. c9 -9.22337203685478e+18
  2621. c10 -9.22337203685478e+18
  2622. c12 -9999.9999
  2623. execute my_delete ;
  2624. set @arg00= '-9223372036854775808' ;
  2625. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2626. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2627. Warnings:
  2628. Warning 1264 Data truncated; out of range for column 'c1' at row 1
  2629. Warning 1264 Data truncated; out of range for column 'c2' at row 1
  2630. Warning 1264 Data truncated; out of range for column 'c3' at row 1
  2631. Warning 1265 Data truncated for column 'c4' at row 1
  2632. Warning 1265 Data truncated for column 'c5' at row 1
  2633. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2634. execute my_select ;
  2635. c1 -128
  2636. c2 -32768
  2637. c3 -8388608
  2638. c4 -2147483648
  2639. c5 -2147483648
  2640. c6 -9223372036854775808
  2641. c7 -9.22337e+18
  2642. c8 -9.22337203685478e+18
  2643. c9 -9.22337203685478e+18
  2644. c10 -9.22337203685478e+18
  2645. c12 -9999.9999
  2646. execute my_delete ;
  2647. set @arg00= 1.11111111111111111111e+50 ;
  2648. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2649. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2650. Warnings:
  2651. Warning 1264 Data truncated; out of range for column 'c1' at row 1
  2652. Warning 1264 Data truncated; out of range for column 'c2' at row 1
  2653. Warning 1264 Data truncated; out of range for column 'c3' at row 1
  2654. Warning 1264 Data truncated; out of range for column 'c4' at row 1
  2655. Warning 1264 Data truncated; out of range for column 'c5' at row 1
  2656. Warning 1264 Data truncated; out of range for column 'c6' at row 1
  2657. Warning 1264 Data truncated; out of range for column 'c7' at row 1
  2658. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2659. execute my_select ;
  2660. c1 127
  2661. c2 32767
  2662. c3 8388607
  2663. c4 2147483647
  2664. c5 2147483647
  2665. c6 9223372036854775807
  2666. c7 3.40282e+38
  2667. c8 1.11111111111111e+50
  2668. c9 1.11111111111111e+50
  2669. c10 1.11111111111111e+50
  2670. c12 99999.9999
  2671. execute my_delete ;
  2672. set @arg00= '1.11111111111111111111e+50' ;
  2673. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2674. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2675. Warnings:
  2676. Warning 1265 Data truncated for column 'c1' at row 1
  2677. Warning 1265 Data truncated for column 'c2' at row 1
  2678. Warning 1265 Data truncated for column 'c3' at row 1
  2679. Warning 1265 Data truncated for column 'c4' at row 1
  2680. Warning 1265 Data truncated for column 'c5' at row 1
  2681. Warning 1265 Data truncated for column 'c6' at row 1
  2682. Warning 1264 Data truncated; out of range for column 'c7' at row 1
  2683. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2684. execute my_select ;
  2685. c1 1
  2686. c2 1
  2687. c3 1
  2688. c4 1
  2689. c5 1
  2690. c6 1
  2691. c7 3.40282e+38
  2692. c8 1.11111111111111e+50
  2693. c9 1.11111111111111e+50
  2694. c10 1.11111111111111e+50
  2695. c12 99999.9999
  2696. execute my_delete ;
  2697. set @arg00= -1.11111111111111111111e+50 ;
  2698. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2699. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2700. Warnings:
  2701. Warning 1264 Data truncated; out of range for column 'c1' at row 1
  2702. Warning 1264 Data truncated; out of range for column 'c2' at row 1
  2703. Warning 1264 Data truncated; out of range for column 'c3' at row 1
  2704. Warning 1264 Data truncated; out of range for column 'c4' at row 1
  2705. Warning 1264 Data truncated; out of range for column 'c5' at row 1
  2706. Warning 1264 Data truncated; out of range for column 'c6' at row 1
  2707. Warning 1264 Data truncated; out of range for column 'c7' at row 1
  2708. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2709. execute my_select ;
  2710. c1 -128
  2711. c2 -32768
  2712. c3 -8388608
  2713. c4 -2147483648
  2714. c5 -2147483648
  2715. c6 -9223372036854775808
  2716. c7 -3.40282e+38
  2717. c8 -1.11111111111111e+50
  2718. c9 -1.11111111111111e+50
  2719. c10 -1.11111111111111e+50
  2720. c12 -9999.9999
  2721. execute my_delete ;
  2722. set @arg00= '-1.11111111111111111111e+50' ;
  2723. execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00,
  2724. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2725. Warnings:
  2726. Warning 1265 Data truncated for column 'c1' at row 1
  2727. Warning 1265 Data truncated for column 'c2' at row 1
  2728. Warning 1265 Data truncated for column 'c3' at row 1
  2729. Warning 1265 Data truncated for column 'c4' at row 1
  2730. Warning 1265 Data truncated for column 'c5' at row 1
  2731. Warning 1265 Data truncated for column 'c6' at row 1
  2732. Warning 1264 Data truncated; out of range for column 'c7' at row 1
  2733. Warning 1264 Data truncated; out of range for column 'c12' at row 1
  2734. execute my_select ;
  2735. c1 -1
  2736. c2 -1
  2737. c3 -1
  2738. c4 -1
  2739. c5 -1
  2740. c6 -1
  2741. c7 -3.40282e+38
  2742. c8 -1.11111111111111e+50
  2743. c9 -1.11111111111111e+50
  2744. c10 -1.11111111111111e+50
  2745. c12 -9999.9999
  2746. execute my_delete ;
  2747. test_sequence
  2748. -- insert into string columns --
  2749. Warnings:
  2750. Warning 1265 Data truncated for column 'c20' at row 1
  2751. Warnings:
  2752. Warning 1265 Data truncated for column 'c20' at row 1
  2753. Warnings:
  2754. Warning 1265 Data truncated for column 'c20' at row 1
  2755. Warnings:
  2756. Warning 1265 Data truncated for column 'c20' at row 1
  2757. Warnings:
  2758. Warning 1265 Data truncated for column 'c20' at row 1
  2759. Warnings:
  2760. Warning 1265 Data truncated for column 'c20' at row 1
  2761. Warnings:
  2762. Warning 1265 Data truncated for column 'c20' at row 1
  2763. Warnings:
  2764. Warning 1265 Data truncated for column 'c20' at row 1
  2765. Warnings:
  2766. Warning 1265 Data truncated for column 'c20' at row 1
  2767. Warnings:
  2768. Warning 1265 Data truncated for column 'c20' at row 1
  2769. Warnings:
  2770. Warning 1265 Data truncated for column 'c20' at row 1
  2771. Warnings:
  2772. Warning 1265 Data truncated for column 'c20' at row 1
  2773. Warnings:
  2774. Warning 1265 Data truncated for column 'c20' at row 1
  2775. Warnings:
  2776. Warning 1265 Data truncated for column 'c20' at row 1
  2777. Warnings:
  2778. Warning 1265 Data truncated for column 'c20' at row 1
  2779. Warnings:
  2780. Warning 1265 Data truncated for column 'c20' at row 1
  2781. Warnings:
  2782. Warning 1265 Data truncated for column 'c20' at row 1
  2783. Warnings:
  2784. Warning 1265 Data truncated for column 'c20' at row 1
  2785. Warnings:
  2786. Warning 1265 Data truncated for column 'c20' at row 1
  2787. Warnings:
  2788. Warning 1265 Data truncated for column 'c20' at row 1
  2789. select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30
  2790. from t9 where c1 >= 20
  2791. order by c1 ;
  2792. c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
  2793. 20 2 20 20 20 20 20 20 20 20 20 20
  2794. 21 2 21 21 21 21 21 21 21 21 21 21
  2795. 22 2 22 22 22 22 22 22 22 22 22 22
  2796. 23 2 23 23 23 23 23 23 23 23 23 23
  2797. 30 3 30 30 30 30 30 30 30 30 30 30
  2798. 31 3 31 31 31 31 31 31 31 31 31 31
  2799. 32 3 32 32 32 32 32 32 32 32 32 32
  2800. 33 3 33 33 33 33 33 33 33 33 33 33
  2801. 40 4 40 40 40 40 40 40 40 40 40 40
  2802. 41 4 41 41 41 41 41 41 41 41 41 41
  2803. 42 4 42 42 42 42 42 42 42 42 42 42
  2804. 43 4 43 43 43 43 43 43 43 43 43 43
  2805. 50 5 50 50 50 50 50 50 50 50 50 50
  2806. 51 5 51 51 51 51 51 51 51 51 51 51
  2807. 52 5 52 52 52 52 52 52 52 52 52 52
  2808. 53 5 53 53 53 53 53 53 53 53 53 53
  2809. 54 5 54 54 54 54 54 54 54 54 54 54
  2810. 55 5 55 55 55 55 55 55 55 55 55 55
  2811. 56 6 56 56 56 56 56 56 56 56 56 56
  2812. 57 6 57 57 57 57 57 57 57 57 57 57
  2813. 60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2814. 61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2815. 62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2816. 63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2817. 71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2818. 73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2819. 81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2820. 83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  2821. test_sequence
  2822. -- select .. where string column = .. --
  2823. set @arg00= '20';
  2824. select 'true' as found from t9 
  2825. where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and
  2826. c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and
  2827. c27= '20' and c28= '20' and c29= '20' and c30= '20' ;
  2828. found
  2829. true
  2830. select 'true' as found from t9 
  2831. where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and
  2832. c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and
  2833. c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00;
  2834. found
  2835. true
  2836. prepare stmt1 from "select 'true' as found from t9 
  2837. where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and
  2838.   c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and
  2839.   c27= '20' and c28= '20' and c29= '20' and c30= '20'" ;
  2840. execute stmt1 ;
  2841. found
  2842. true
  2843. prepare stmt1 from "select 'true' as found from t9 
  2844. where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and
  2845.   c21= ? and c22= ? and c23= ? and c25= ? and
  2846.   c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ;
  2847. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2848. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2849. found
  2850. true
  2851. set @arg00= CAST('20' as binary);
  2852. select 'true' as found from t9 
  2853. where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20)))
  2854. = CAST('20' as binary) and c21= CAST('20' as binary)
  2855. and c22= CAST('20' as binary) and c23= CAST('20' as binary) and
  2856. c24= CAST('20' as binary) and c25= CAST('20' as binary) and
  2857. c26= CAST('20' as binary) and c27= CAST('20' as binary) and
  2858. c28= CAST('20' as binary) and c29= CAST('20' as binary) and
  2859. c30= CAST('20' as binary) ;
  2860. found
  2861. true
  2862. select 'true' as found from t9 
  2863. where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and
  2864. c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and
  2865. c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and
  2866. c30= @arg00;
  2867. found
  2868. true
  2869. prepare stmt1 from "select 'true' as found from t9 
  2870. where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20)))
  2871.                  = CAST('20' as binary) and c21= CAST('20' as binary)
  2872.   and c22= CAST('20' as binary) and c23= CAST('20' as binary) and
  2873.   c24= CAST('20' as binary) and c25= CAST('20' as binary) and
  2874.   c26= CAST('20' as binary) and c27= CAST('20' as binary) and
  2875.   c28= CAST('20' as binary) and c29= CAST('20' as binary) and
  2876.   c30= CAST('20' as binary)" ;
  2877. execute stmt1 ;
  2878. found
  2879. true
  2880. prepare stmt1 from "select 'true' as found from t9 
  2881. where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and
  2882.   c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and
  2883.   c29= ? and c30= ?";
  2884. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2885. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2886. found
  2887. true
  2888. set @arg00= 20;
  2889. select 'true' as found from t9 
  2890. where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and
  2891. c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and
  2892. c27= 20 and c28= 20 and c29= 20 and c30= 20 ;
  2893. found
  2894. true
  2895. select 'true' as found from t9 
  2896. where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and
  2897. c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and
  2898. c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00;
  2899. found
  2900. true
  2901. prepare stmt1 from "select 'true' as found from t9 
  2902. where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and
  2903.   c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and
  2904.   c27= 20 and c28= 20 and c29= 20 and c30= 20" ;
  2905. execute stmt1 ;
  2906. found
  2907. true
  2908. prepare stmt1 from "select 'true' as found from t9 
  2909. where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and
  2910.   c21= ? and c22= ? and c23= ? and c25= ? and
  2911.   c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ;
  2912. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2913. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2914. found
  2915. true
  2916. set @arg00= 20.0;
  2917. select 'true' as found from t9 
  2918. where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and
  2919. c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and
  2920. c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ;
  2921. found
  2922. true
  2923. select 'true' as found from t9 
  2924. where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and
  2925. c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and
  2926. c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00;
  2927. found
  2928. true
  2929. prepare stmt1 from "select 'true' as found from t9 
  2930. where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and
  2931.   c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and
  2932.   c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ;
  2933. execute stmt1 ;
  2934. found
  2935. true
  2936. prepare stmt1 from "select 'true' as found from t9 
  2937. where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and
  2938.   c21= ? and c22= ? and c23= ? and c25= ? and
  2939.   c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ;
  2940. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, 
  2941. @arg00, @arg00, @arg00, @arg00, @arg00 ;
  2942. found
  2943. true
  2944. delete from t9 ;
  2945. test_sequence
  2946. -- insert into date/time columns --
  2947. Warnings:
  2948. Warning 1265 Data truncated for column 'c17' at row 1
  2949. Warnings:
  2950. Warning 1265 Data truncated for column 'c17' at row 1
  2951. Warnings:
  2952. Warning 1265 Data truncated for column 'c17' at row 1
  2953. Warnings:
  2954. Warning 1265 Data truncated for column 'c17' at row 1
  2955. Warnings:
  2956. Warning 1265 Data truncated for column 'c17' at row 1
  2957. Warnings:
  2958. Warning 1265 Data truncated for column 'c17' at row 1
  2959. Warnings:
  2960. Warning 1265 Data truncated for column 'c17' at row 1
  2961. Warnings:
  2962. Warning 1265 Data truncated for column 'c17' at row 1
  2963. Warnings:
  2964. Warning 1264 Data truncated; out of range for column 'c13' at row 1
  2965. Warning 1265 Data truncated for column 'c14' at row 1
  2966. Warning 1265 Data truncated for column 'c15' at row 1
  2967. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2968. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2969. Warnings:
  2970. Warning 1264 Data truncated; out of range for column 'c13' at row 1
  2971. Warning 1265 Data truncated for column 'c14' at row 1
  2972. Warning 1265 Data truncated for column 'c15' at row 1
  2973. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2974. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2975. Warnings:
  2976. Warning 1264 Data truncated; out of range for column 'c13' at row 1
  2977. Warning 1265 Data truncated for column 'c14' at row 1
  2978. Warning 1265 Data truncated for column 'c15' at row 1
  2979. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2980. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2981. Warnings:
  2982. Warning 1264 Data truncated; out of range for column 'c13' at row 1
  2983. Warning 1265 Data truncated for column 'c14' at row 1
  2984. Warning 1265 Data truncated for column 'c15' at row 1
  2985. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2986. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2987. Warnings:
  2988. Warning 1265 Data truncated for column 'c15' at row 1
  2989. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2990. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2991. Warnings:
  2992. Warning 1265 Data truncated for column 'c15' at row 1
  2993. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2994. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2995. Warnings:
  2996. Warning 1265 Data truncated for column 'c15' at row 1
  2997. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  2998. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  2999. Warnings:
  3000. Warning 1265 Data truncated for column 'c15' at row 1
  3001. Warning 1264 Data truncated; out of range for column 'c16' at row 1
  3002. Warning 1264 Data truncated; out of range for column 'c17' at row 1
  3003. select c1, c13, c14, c15, c16, c17 from t9 order by c1 ;
  3004. c1 c13 c14 c15 c16 c17
  3005. 20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3006. 21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3007. 22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3008. 23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3009. 30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3010. 31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3011. 32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3012. 33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991
  3013. 40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3014. 41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3015. 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3016. 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3017. 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3018. 51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3019. 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3020. 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
  3021. 60 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3022. 61 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3023. 62 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3024. 63 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3025. 71 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3026. 73 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3027. 81 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3028. 83 NULL NULL 1991-01-01 01:01:01 NULL NULL
  3029. test_sequence
  3030. -- select .. where date/time column = .. --
  3031. set @arg00= '1991-01-01 01:01:01' ;
  3032. select 'true' as found from t9 
  3033. where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
  3034. c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
  3035. c17= '1991-01-01 01:01:01' ;
  3036. found
  3037. true
  3038. select 'true' as found from t9 
  3039. where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
  3040. and c17= @arg00 ;
  3041. found
  3042. true
  3043. prepare stmt1 from "select 'true' as found from t9 
  3044. where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and
  3045.   c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and
  3046.   c17= '1991-01-01 01:01:01'" ;
  3047. execute stmt1 ;
  3048. found
  3049. true
  3050. prepare stmt1 from "select 'true' as found from t9 
  3051. where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
  3052. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
  3053. found
  3054. true
  3055. set @arg00= CAST('1991-01-01 01:01:01' as datetime) ;
  3056. select 'true' as found from t9 
  3057. where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
  3058. c14= CAST('1991-01-01 01:01:01' as datetime) and
  3059. c15= CAST('1991-01-01 01:01:01' as datetime) and
  3060. c16= CAST('1991-01-01 01:01:01' as datetime) and
  3061. c17= CAST('1991-01-01 01:01:01' as datetime) ;
  3062. found
  3063. true
  3064. select 'true' as found from t9 
  3065. where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00
  3066. and c17= @arg00 ;
  3067. found
  3068. true
  3069. prepare stmt1 from "select 'true' as found from t9 
  3070. where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and
  3071.   c14= CAST('1991-01-01 01:01:01' as datetime) and
  3072.   c15= CAST('1991-01-01 01:01:01' as datetime) and
  3073.   c16= CAST('1991-01-01 01:01:01' as datetime) and
  3074.   c17= CAST('1991-01-01 01:01:01' as datetime)" ;
  3075. execute stmt1 ;
  3076. found
  3077. true
  3078. prepare stmt1 from "select 'true' as found from t9 
  3079. where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ;
  3080. execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ;
  3081. found
  3082. true
  3083. set @arg00= 1991 ;
  3084. select 'true' as found from t9 
  3085. where c1= 20 and c17= 1991 ;
  3086. found
  3087. true
  3088. select 'true' as found from t9 
  3089. where c1= 20 and c17= @arg00 ;
  3090. found
  3091. true
  3092. prepare stmt1 from "select 'true' as found from t9 
  3093. where c1= 20 and c17= 1991" ;
  3094. execute stmt1 ;
  3095. found
  3096. true
  3097. prepare stmt1 from "select 'true' as found from t9
  3098. where c1= 20 and c17= ?" ;
  3099. execute stmt1 using @arg00 ;
  3100. found
  3101. true
  3102. set @arg00= 1.991e+3 ;
  3103. select 'true' as found from t9 
  3104. where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ;
  3105. found
  3106. true
  3107. select 'true' as found from t9 
  3108. where c1= 20 and abs(c17 - @arg00) < 0.01 ;
  3109. found
  3110. true
  3111. prepare stmt1 from "select 'true' as found from t9 
  3112. where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ;
  3113. execute stmt1 ;
  3114. found
  3115. true
  3116. prepare stmt1 from "select 'true' as found from t9
  3117. where c1= 20 and abs(c17 - ?) < 0.01" ;
  3118. execute stmt1 using @arg00 ;
  3119. found
  3120. true
  3121. drop table t1, t9;