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