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

MySQL数据库

开发平台:

Visual C++

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