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

MySQL数据库

开发平台:

Visual C++

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