1
DROP PROCEDURE IF EXISTS sp_vars_check_dflt;
2
DROP PROCEDURE IF EXISTS sp_vars_check_assignment;
3
DROP FUNCTION IF EXISTS sp_vars_check_ret1;
4
DROP FUNCTION IF EXISTS sp_vars_check_ret2;
5
DROP FUNCTION IF EXISTS sp_vars_check_ret3;
6
DROP FUNCTION IF EXISTS sp_vars_check_ret4;
7
DROP FUNCTION IF EXISTS sp_vars_div_zero;
8
SET @@sql_mode = 'ansi';
9
CREATE PROCEDURE sp_vars_check_dflt()
11
DECLARE v1 TINYINT DEFAULT 1e200;
12
DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
13
DECLARE v2 TINYINT DEFAULT -1e200;
14
DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
15
DECLARE v3 TINYINT DEFAULT 300;
16
DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
17
DECLARE v4 TINYINT DEFAULT -300;
18
DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
19
DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
20
DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
21
DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
22
DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
23
DECLARE v7 TINYINT DEFAULT '10';
24
DECLARE v8 TINYINT DEFAULT '10 ';
25
DECLARE v9 TINYINT DEFAULT ' 10 ';
26
DECLARE v10 TINYINT DEFAULT 'String 10 ';
27
DECLARE v11 TINYINT DEFAULT 'String10';
28
DECLARE v12 TINYINT DEFAULT '10 String';
29
DECLARE v13 TINYINT DEFAULT '10String';
30
DECLARE v14 TINYINT DEFAULT concat('10', ' ');
31
DECLARE v15 TINYINT DEFAULT concat(' ', '10');
32
DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
33
DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
34
DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
35
DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
36
DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
37
SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
38
SELECT v5, v5u, v6, v6u;
39
SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
40
SELECT v17, v18, v19, v20;
42
CREATE PROCEDURE sp_vars_check_assignment()
44
DECLARE i1, i2, i3, i4 TINYINT;
45
DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
46
DECLARE d1, d2, d3 DECIMAL(64, 2);
51
SELECT i1, i2, i3, i4;
52
SET i1 = 10 * 10 * 10;
53
SET i2 = -10 * 10 * 10;
54
SET i3 = sign(10 * 10) * 10 * 20;
55
SET i4 = sign(-10 * 10) * -10 * 20;
56
SELECT i1, i2, i3, i4;
61
SELECT u1, u2, u3, u4;
62
SET u1 = 10 * 10 * 10;
63
SET u2 = -10 * 10 * 10;
64
SET u3 = sign(10 * 10) * 10 * 20;
65
SET u4 = sign(-10 * 10) * -10 * 20;
66
SELECT u1, u2, u3, u4;
71
SET d1 = 12 * 100 + 34;
72
SET d2 = 12 * 100 + 34 + 0.12;
73
SET d3 = 12 * 100 + 34 + 0.1234;
76
CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
80
CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
84
CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
86
RETURN 'Hello, world';
88
CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
90
RETURN 12 * 10 + 34 + 0.1234;
92
CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
94
DECLARE div_zero INTEGER;
95
SELECT 1/0 INTO div_zero;
99
---------------------------------------------------------------
100
Calling the routines, created in ANSI mode.
101
---------------------------------------------------------------
103
CALL sp_vars_check_dflt();
104
v1 v1u v2 v2u v3 v3u v4 v4u
105
127 255 -128 0 127 255 -128 0
108
v7 v8 v9 v10 v11 v12 v13 v14 v15 v16
109
10 10 10 0 0 10 10 10 10 0
111
12.00 12.12 12.00 12.12
113
Warning 1264 Out of range value for column 'v1' at row 1
114
Warning 1264 Out of range value for column 'v1u' at row 1
115
Warning 1264 Out of range value for column 'v2' at row 1
116
Warning 1264 Out of range value for column 'v2u' at row 1
117
Warning 1264 Out of range value for column 'v3' at row 1
118
Warning 1264 Out of range value for column 'v3u' at row 1
119
Warning 1264 Out of range value for column 'v4' at row 1
120
Warning 1264 Out of range value for column 'v4u' at row 1
121
Warning 1264 Out of range value for column 'v5' at row 1
122
Warning 1264 Out of range value for column 'v5u' at row 1
123
Warning 1264 Out of range value for column 'v6' at row 1
124
Warning 1264 Out of range value for column 'v6u' at row 1
125
Warning 1366 Incorrect integer value: 'String 10 ' for column 'v10' at row 1
126
Warning 1366 Incorrect integer value: 'String10' for column 'v11' at row 1
127
Warning 1265 Data truncated for column 'v12' at row 1
128
Warning 1265 Data truncated for column 'v13' at row 1
129
Warning 1366 Incorrect integer value: 'Hello, world' for column 'v16' at row 1
130
Note 1265 Data truncated for column 'v18' at row 1
131
Note 1265 Data truncated for column 'v20' at row 1
132
CALL sp_vars_check_assignment();
142
1234.00 1234.12 1234.12
144
1234.00 1234.12 1234.12
146
Warning 1264 Out of range value for column 'i1' at row 1
147
Warning 1264 Out of range value for column 'i2' at row 1
148
Warning 1264 Out of range value for column 'i3' at row 1
149
Warning 1264 Out of range value for column 'i4' at row 1
150
Warning 1264 Out of range value for column 'i1' at row 1
151
Warning 1264 Out of range value for column 'i2' at row 1
152
Warning 1264 Out of range value for column 'i3' at row 1
153
Warning 1264 Out of range value for column 'i4' at row 1
154
Warning 1264 Out of range value for column 'u1' at row 1
155
Warning 1264 Out of range value for column 'u2' at row 1
156
Warning 1264 Out of range value for column 'u3' at row 1
157
Warning 1264 Out of range value for column 'u4' at row 1
158
Warning 1264 Out of range value for column 'u1' at row 1
159
Warning 1264 Out of range value for column 'u2' at row 1
160
Note 1265 Data truncated for column 'd3' at row 1
161
Note 1265 Data truncated for column 'd3' at row 1
162
SELECT sp_vars_check_ret1();
166
Warning 1264 Out of range value for column 'sp_vars_check_ret1()' at row 1
167
SELECT sp_vars_check_ret2();
171
Warning 1264 Out of range value for column 'sp_vars_check_ret2()' at row 1
172
SELECT sp_vars_check_ret3();
176
Warning 1366 Incorrect integer value: 'Hello, world' for column 'sp_vars_check_ret3()' at row 1
177
SELECT sp_vars_check_ret4();
181
Note 1265 Data truncated for column 'sp_vars_check_ret4()' at row 1
182
SELECT sp_vars_div_zero();
185
SET @@sql_mode = 'traditional';
187
---------------------------------------------------------------
188
Calling in TRADITIONAL mode the routines, created in ANSI mode.
189
---------------------------------------------------------------
191
CALL sp_vars_check_dflt();
192
v1 v1u v2 v2u v3 v3u v4 v4u
193
127 255 -128 0 127 255 -128 0
196
v7 v8 v9 v10 v11 v12 v13 v14 v15 v16
197
10 10 10 0 0 10 10 10 10 0
199
12.00 12.12 12.00 12.12
201
Warning 1264 Out of range value for column 'v1' at row 1
202
Warning 1264 Out of range value for column 'v1u' at row 1
203
Warning 1264 Out of range value for column 'v2' at row 1
204
Warning 1264 Out of range value for column 'v2u' at row 1
205
Warning 1264 Out of range value for column 'v3' at row 1
206
Warning 1264 Out of range value for column 'v3u' at row 1
207
Warning 1264 Out of range value for column 'v4' at row 1
208
Warning 1264 Out of range value for column 'v4u' at row 1
209
Warning 1264 Out of range value for column 'v5' at row 1
210
Warning 1264 Out of range value for column 'v5u' at row 1
211
Warning 1264 Out of range value for column 'v6' at row 1
212
Warning 1264 Out of range value for column 'v6u' at row 1
213
Warning 1366 Incorrect integer value: 'String 10 ' for column 'v10' at row 1
214
Warning 1366 Incorrect integer value: 'String10' for column 'v11' at row 1
215
Warning 1265 Data truncated for column 'v12' at row 1
216
Warning 1265 Data truncated for column 'v13' at row 1
217
Warning 1366 Incorrect integer value: 'Hello, world' for column 'v16' at row 1
218
Note 1265 Data truncated for column 'v18' at row 1
219
Note 1265 Data truncated for column 'v20' at row 1
220
CALL sp_vars_check_assignment();
230
1234.00 1234.12 1234.12
232
1234.00 1234.12 1234.12
234
Warning 1264 Out of range value for column 'i1' at row 1
235
Warning 1264 Out of range value for column 'i2' at row 1
236
Warning 1264 Out of range value for column 'i3' at row 1
237
Warning 1264 Out of range value for column 'i4' at row 1
238
Warning 1264 Out of range value for column 'i1' at row 1
239
Warning 1264 Out of range value for column 'i2' at row 1
240
Warning 1264 Out of range value for column 'i3' at row 1
241
Warning 1264 Out of range value for column 'i4' at row 1
242
Warning 1264 Out of range value for column 'u1' at row 1
243
Warning 1264 Out of range value for column 'u2' at row 1
244
Warning 1264 Out of range value for column 'u3' at row 1
245
Warning 1264 Out of range value for column 'u4' at row 1
246
Warning 1264 Out of range value for column 'u1' at row 1
247
Warning 1264 Out of range value for column 'u2' at row 1
248
Note 1265 Data truncated for column 'd3' at row 1
249
Note 1265 Data truncated for column 'd3' at row 1
250
SELECT sp_vars_check_ret1();
254
Warning 1264 Out of range value for column 'sp_vars_check_ret1()' at row 1
255
SELECT sp_vars_check_ret2();
259
Warning 1264 Out of range value for column 'sp_vars_check_ret2()' at row 1
260
SELECT sp_vars_check_ret3();
264
Warning 1366 Incorrect integer value: 'Hello, world' for column 'sp_vars_check_ret3()' at row 1
265
SELECT sp_vars_check_ret4();
269
Note 1265 Data truncated for column 'sp_vars_check_ret4()' at row 1
270
SELECT sp_vars_div_zero();
273
DROP PROCEDURE sp_vars_check_dflt;
274
DROP PROCEDURE sp_vars_check_assignment;
275
DROP FUNCTION sp_vars_check_ret1;
276
DROP FUNCTION sp_vars_check_ret2;
277
DROP FUNCTION sp_vars_check_ret3;
278
DROP FUNCTION sp_vars_check_ret4;
279
DROP FUNCTION sp_vars_div_zero;
280
CREATE PROCEDURE sp_vars_check_dflt()
282
DECLARE v1 TINYINT DEFAULT 1e200;
283
DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
284
DECLARE v2 TINYINT DEFAULT -1e200;
285
DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
286
DECLARE v3 TINYINT DEFAULT 300;
287
DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
288
DECLARE v4 TINYINT DEFAULT -300;
289
DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
290
DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
291
DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
292
DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
293
DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
294
DECLARE v7 TINYINT DEFAULT '10';
295
DECLARE v8 TINYINT DEFAULT '10 ';
296
DECLARE v9 TINYINT DEFAULT ' 10 ';
297
DECLARE v10 TINYINT DEFAULT 'String 10 ';
298
DECLARE v11 TINYINT DEFAULT 'String10';
299
DECLARE v12 TINYINT DEFAULT '10 String';
300
DECLARE v13 TINYINT DEFAULT '10String';
301
DECLARE v14 TINYINT DEFAULT concat('10', ' ');
302
DECLARE v15 TINYINT DEFAULT concat(' ', '10');
303
DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
304
DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
305
DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
306
DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
307
DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
308
SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
309
SELECT v5, v5u, v6, v6u;
310
SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
311
SELECT v17, v18, v19, v20;
313
CREATE PROCEDURE sp_vars_check_assignment()
315
DECLARE i1, i2, i3, i4 TINYINT;
316
DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
317
DECLARE d1, d2, d3 DECIMAL(64, 2);
322
SELECT i1, i2, i3, i4;
323
SET i1 = 10 * 10 * 10;
324
SET i2 = -10 * 10 * 10;
325
SET i3 = sign(10 * 10) * 10 * 20;
326
SET i4 = sign(-10 * 10) * -10 * 20;
327
SELECT i1, i2, i3, i4;
332
SELECT u1, u2, u3, u4;
333
SET u1 = 10 * 10 * 10;
334
SET u2 = -10 * 10 * 10;
335
SET u3 = sign(10 * 10) * 10 * 20;
336
SET u4 = sign(-10 * 10) * -10 * 20;
337
SELECT u1, u2, u3, u4;
342
SET d1 = 12 * 100 + 34;
343
SET d2 = 12 * 100 + 34 + 0.12;
344
SET d3 = 12 * 100 + 34 + 0.1234;
347
CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
351
CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
355
CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
357
RETURN 'Hello, world';
359
CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
361
RETURN 12 * 10 + 34 + 0.1234;
363
CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
365
DECLARE div_zero INTEGER;
366
SELECT 1/0 INTO div_zero;
370
---------------------------------------------------------------
371
Calling the routines, created in TRADITIONAL mode.
372
---------------------------------------------------------------
374
CALL sp_vars_check_dflt();
375
ERROR 22003: Out of range value for column 'v1' at row 1
376
CALL sp_vars_check_assignment();
377
ERROR 22003: Out of range value for column 'i1' at row 1
378
SELECT sp_vars_check_ret1();
379
ERROR 22003: Out of range value for column 'sp_vars_check_ret1()' at row 1
380
SELECT sp_vars_check_ret2();
381
ERROR 22003: Out of range value for column 'sp_vars_check_ret2()' at row 1
382
SELECT sp_vars_check_ret3();
383
ERROR HY000: Incorrect integer value: 'Hello, world' for column 'sp_vars_check_ret3()' at row 1
384
SELECT sp_vars_check_ret4();
388
Note 1265 Data truncated for column 'sp_vars_check_ret4()' at row 1
389
SELECT sp_vars_div_zero();
390
ERROR 22012: Division by 0
391
SET @@sql_mode = 'ansi';
392
DROP PROCEDURE sp_vars_check_dflt;
393
DROP PROCEDURE sp_vars_check_assignment;
394
DROP FUNCTION sp_vars_check_ret1;
395
DROP FUNCTION sp_vars_check_ret2;
396
DROP FUNCTION sp_vars_check_ret3;
397
DROP FUNCTION sp_vars_check_ret4;
398
DROP FUNCTION sp_vars_div_zero;
400
---------------------------------------------------------------
402
---------------------------------------------------------------
404
DROP PROCEDURE IF EXISTS p1;
405
CREATE PROCEDURE p1()
409
DECLARE v3 BIT(3) DEFAULT b'101';
410
DECLARE v4 BIT(64) DEFAULT 0x5555555555555555;
413
DECLARE v7 BIT(8) DEFAULT 128;
414
DECLARE v8 BIT(8) DEFAULT '128';
415
DECLARE v9 BIT(8) DEFAULT ' 128';
416
DECLARE v10 BIT(8) DEFAULT 'x 128';
419
SET v5 = v4; # check overflow
420
SET v6 = v3; # check padding
454
Warning 1264 Out of range value for column 'v8' at row 1
455
Warning 1264 Out of range value for column 'v9' at row 1
456
Warning 1264 Out of range value for column 'v10' at row 1
457
Warning 1264 Out of range value for column 'v1' at row 1
458
Warning 1264 Out of range value for column 'v5' at row 1
461
---------------------------------------------------------------
462
CASE expression tests.
463
---------------------------------------------------------------
465
DROP PROCEDURE IF EXISTS p1;
467
Note 1305 PROCEDURE p1 does not exist
468
DROP PROCEDURE IF EXISTS p2;
470
Note 1305 PROCEDURE p2 does not exist
471
DROP TABLE IF EXISTS t1;
473
Note 1051 Unknown table 't1'
474
CREATE TABLE t1(log_msg VARCHAR(1024));
475
CREATE PROCEDURE p1(arg VARCHAR(255))
477
INSERT INTO t1 VALUES('p1: step1');
480
INSERT INTO t1 VALUES('p1: case1: on 10');
481
WHEN 10 * 10 + 10 * 10 THEN
485
INSERT INTO t1 VALUES('p1: case1: case2: on 1');
488
DECLARE i TINYINT DEFAULT 10;
490
INSERT INTO t1 VALUES(CONCAT('p1: case1: case2: loop: i: ', i));
493
INSERT INTO t1 VALUES('p1: case1: case2: loop: i is even');
495
INSERT INTO t1 VALUES('p1: case1: case2: loop: i is odd');
497
INSERT INTO t1 VALUES('p1: case1: case2: loop: ERROR');
503
INSERT INTO t1 VALUES('p1: case1: case2: ERROR');
507
INSERT INTO t1 VALUES('p1: case1: case3: on 10');
509
INSERT INTO t1 VALUES('p1: case1: case3: on 20');
511
INSERT INTO t1 VALUES('p1: case1: case3: ERROR');
515
INSERT INTO t1 VALUES('p1: case1: ERROR');
519
INSERT INTO t1 VALUES('p1: case4: on 10');
520
WHEN 10 * 10 + 10 * 10 THEN
524
INSERT INTO t1 VALUES('p1: case4: case5: on 1');
527
DECLARE i TINYINT DEFAULT 10;
529
INSERT INTO t1 VALUES(CONCAT('p1: case4: case5: loop: i: ', i));
532
INSERT INTO t1 VALUES('p1: case4: case5: loop: i is even');
534
INSERT INTO t1 VALUES('p1: case4: case5: loop: i is odd');
536
INSERT INTO t1 VALUES('p1: case4: case5: loop: ERROR');
542
INSERT INTO t1 VALUES('p1: case4: case5: ERROR');
546
INSERT INTO t1 VALUES('p1: case4: case6: on 10');
548
INSERT INTO t1 VALUES('p1: case4: case6: on 20');
550
INSERT INTO t1 VALUES('p1: case4: case6: ERROR');
554
INSERT INTO t1 VALUES('p1: case4: ERROR');
557
CREATE PROCEDURE p2()
559
DECLARE i TINYINT DEFAULT 3;
561
IF MOD(i, 2) = 0 THEN
562
SET @_test_session_var = 10;
564
SET @_test_session_var = 'test';
566
CASE @_test_session_var
568
INSERT INTO t1 VALUES('p2: case: numerical type');
570
INSERT INTO t1 VALUES('p2: case: string type');
572
INSERT INTO t1 VALUES('p2: case: ERROR');
586
p1: case1: case2: loop: i: 10
587
p1: case1: case2: loop: i is even
588
p1: case1: case2: loop: i: 9
589
p1: case1: case2: loop: i is odd
590
p1: case1: case2: loop: i: 8
591
p1: case1: case2: loop: i is even
592
p1: case1: case2: loop: i: 7
593
p1: case1: case2: loop: i is odd
594
p1: case1: case2: loop: i: 6
595
p1: case1: case2: loop: i is even
596
p1: case1: case2: loop: i: 5
597
p1: case1: case2: loop: i is odd
598
p1: case1: case2: loop: i: 4
599
p1: case1: case2: loop: i is even
600
p1: case1: case2: loop: i: 3
601
p1: case1: case2: loop: i is odd
602
p1: case1: case2: loop: i: 2
603
p1: case1: case2: loop: i is even
604
p1: case1: case2: loop: i: 1
605
p1: case1: case2: loop: i is odd
606
p1: case1: case3: on 20
607
p1: case4: case5: loop: i: 10
608
p1: case4: case5: loop: i is even
609
p1: case4: case5: loop: i: 9
610
p1: case4: case5: loop: i is odd
611
p1: case4: case5: loop: i: 8
612
p1: case4: case5: loop: i is even
613
p1: case4: case5: loop: i: 7
614
p1: case4: case5: loop: i is odd
615
p1: case4: case5: loop: i: 6
616
p1: case4: case5: loop: i is even
617
p1: case4: case5: loop: i: 5
618
p1: case4: case5: loop: i is odd
619
p1: case4: case5: loop: i: 4
620
p1: case4: case5: loop: i is even
621
p1: case4: case5: loop: i: 3
622
p1: case4: case5: loop: i is odd
623
p1: case4: case5: loop: i: 2
624
p1: case4: case5: loop: i is even
625
p1: case4: case5: loop: i: 1
626
p1: case4: case5: loop: i is odd
627
p1: case4: case6: on 20
628
p2: case: string type
629
p2: case: numerical type
630
p2: case: string type
635
---------------------------------------------------------------
637
---------------------------------------------------------------
639
DROP TABLE IF EXISTS t1;
640
DROP PROCEDURE IF EXISTS p1;
641
CREATE TABLE t1(col BIGINT UNSIGNED);
642
INSERT INTO t1 VALUE(18446744073709551614);
643
CREATE PROCEDURE p1(IN arg BIGINT UNSIGNED)
647
SELECT * FROM t1 WHERE col = arg;
649
CALL p1(18446744073709551614);
659
---------------------------------------------------------------
661
---------------------------------------------------------------
663
DROP PROCEDURE IF EXISTS p1;
664
CREATE PROCEDURE p1(x VARCHAR(10), y CHAR(3)) READS SQL DATA
668
CALL p1('alpha', 'abc');
671
CALL p1('alpha', 'abcdef');
675
Warning 1265 Data truncated for column 'y' at row 1
678
---------------------------------------------------------------
680
---------------------------------------------------------------
682
DROP PROCEDURE IF EXISTS p1;
683
DROP TABLE IF EXISTS t1;
684
CREATE PROCEDURE p1(x DATETIME)
686
CREATE TABLE t1 SELECT x;
687
SHOW CREATE TABLE t1;
692
t1 CREATE TABLE "t1" (
693
"x" datetime DEFAULT NULL
697
t1 CREATE TABLE "t1" (
698
"x" datetime DEFAULT NULL
701
Warning 1264 Out of range value for column 'x' at row 1
704
---------------------------------------------------------------
706
---------------------------------------------------------------
708
DROP TABLE IF EXISTS t1;
709
DROP PROCEDURE IF EXISTS p1;
710
DROP PROCEDURE IF EXISTS p2;
711
CREATE TABLE t1(b BIT(1));
712
INSERT INTO t1(b) VALUES(b'0'), (b'1');
713
CREATE PROCEDURE p1()
724
CREATE PROCEDURE p2()
727
SELECT b INTO vb FROM t1 WHERE b = 0;
735
SELECT b INTO vb FROM t1 WHERE b = 1;
745
HEX(b) b = 0 b = FALSE b IS FALSE b = 1 b = TRUE b IS TRUE
750
HEX(vb) vb = 0 vb = FALSE vb IS FALSE vb = 1 vb = TRUE vb IS TRUE
752
HEX(vb) vb = 0 vb = FALSE vb IS FALSE vb = 1 vb = TRUE vb IS TRUE
757
DROP TABLE IF EXISTS table_12976_a;
758
DROP TABLE IF EXISTS table_12976_b;
759
DROP PROCEDURE IF EXISTS proc_12976_a;
760
DROP PROCEDURE IF EXISTS proc_12976_b;
761
CREATE TABLE table_12976_a (val bit(1));
762
CREATE TABLE table_12976_b(
764
emailperm bit not null default 1,
765
phoneperm bit not null default 0);
766
insert into table_12976_b values ('A', b'1', b'1'), ('B', b'0', b'0');
767
CREATE PROCEDURE proc_12976_a()
769
declare localvar bit(1);
770
SELECT val INTO localvar FROM table_12976_a;
771
SELECT coalesce(localvar, 1)+1, coalesce(val, 1)+1 FROM table_12976_a;
773
CREATE PROCEDURE proc_12976_b(
778
SELECT emailperm into ep FROM table_12976_b where (appname = name);
785
INSERT table_12976_a VALUES (0);
787
coalesce(localvar, 1)+1 coalesce(val, 1)+1
789
UPDATE table_12976_a set val=1;
791
coalesce(localvar, 1)+1 coalesce(val, 1)+1
793
call proc_12976_b('A', @ep, @msg);
797
call proc_12976_b('B', @ep, @msg);
801
DROP TABLE table_12976_a;
802
DROP TABLE table_12976_b;
803
DROP PROCEDURE proc_12976_a;
804
DROP PROCEDURE proc_12976_b;
806
---------------------------------------------------------------
808
---------------------------------------------------------------
810
DROP PROCEDURE IF EXISTS p1;
811
DROP PROCEDURE IF EXISTS p2;
812
DROP PROCEDURE IF EXISTS p3;
813
DROP PROCEDURE IF EXISTS p4;
814
DROP PROCEDURE IF EXISTS p5;
815
DROP PROCEDURE IF EXISTS p6;
816
SET @@sql_mode = 'traditional';
817
CREATE PROCEDURE p1()
819
DECLARE v TINYINT DEFAULT 1e200;
822
CREATE PROCEDURE p2()
824
DECLARE v DECIMAL(5) DEFAULT 1e200;
827
CREATE PROCEDURE p3()
829
DECLARE v CHAR(5) DEFAULT 'abcdef';
830
SELECT v LIKE 'abc___';
832
CREATE PROCEDURE p4(arg VARCHAR(2))
834
DECLARE var VARCHAR(1);
838
CREATE PROCEDURE p5(arg CHAR(2))
844
CREATE PROCEDURE p6(arg DECIMAL(2))
846
DECLARE var DECIMAL(1);
851
ERROR 22003: Out of range value for column 'v' at row 1
853
ERROR 22003: Out of range value for column 'v' at row 1
855
ERROR 22001: Data too long for column 'v' at row 1
857
ERROR 22001: Data too long for column 'arg' at row 1
859
ERROR 22001: Data too long for column 'var' at row 1
861
ERROR 22003: Out of range value for column 'var' at row 1
862
SET @@sql_mode = 'ansi';
870
---------------------------------------------------------------
872
---------------------------------------------------------------
874
DROP PROCEDURE IF EXISTS p1;
875
CREATE PROCEDURE p1 (arg DECIMAL(64,2))
877
DECLARE var DECIMAL(64,2);
891
Note 1265 Data truncated for column 'arg' at row 1
894
---------------------------------------------------------------
896
---------------------------------------------------------------
898
DROP FUNCTION IF EXISTS f1;
899
CREATE FUNCTION f1(arg TINYINT UNSIGNED) RETURNS TINYINT
907
Warning 1264 Out of range value for column 'arg' at row 1
908
SET @@sql_mode = 'traditional';
910
ERROR 22003: Out of range value for column 'arg' at row 1
912
CREATE FUNCTION f1(arg TINYINT UNSIGNED) RETURNS TINYINT
917
ERROR 22003: Out of range value for column 'arg' at row 1
918
SET @@sql_mode = 'ansi';
921
---------------------------------------------------------------
923
---------------------------------------------------------------
925
DROP FUNCTION IF EXISTS f1;
926
CREATE FUNCTION f1(arg MEDIUMINT) RETURNS MEDIUMINT
934
Warning 1264 Out of range value for column 'arg' at row 1
935
SET @@sql_mode = 'traditional';
937
ERROR 22003: Out of range value for column 'arg' at row 1
939
CREATE FUNCTION f1(arg MEDIUMINT) RETURNS MEDIUMINT
944
ERROR 22003: Out of range value for column 'arg' at row 1
945
SET @@sql_mode = 'ansi';
948
---------------------------------------------------------------
950
---------------------------------------------------------------
952
DROP PROCEDURE IF EXISTS p1;
953
DROP TABLE IF EXISTS t1;
954
CREATE TABLE t1(col VARCHAR(255));
955
INSERT INTO t1(col) VALUES('Hello, world!');
956
CREATE PROCEDURE p1()
958
DECLARE sp_var INTEGER;
959
SELECT col INTO sp_var FROM t1 LIMIT 1;
960
SET @user_var = sp_var;
970
Warning 1366 Incorrect integer value: 'Hello, world!' for column 'sp_var' at row 1
974
---------------------------------------------------------------
976
---------------------------------------------------------------
978
DROP FUNCTION IF EXISTS f1;
979
DROP TABLE IF EXISTS t1;
980
CREATE TABLE t1(txt VARCHAR(255));
981
CREATE FUNCTION f1(arg VARCHAR(255)) RETURNS VARCHAR(255)
983
DECLARE v1 VARCHAR(255);
984
DECLARE v2 VARCHAR(255);
985
SET v1 = CONCAT(LOWER(arg), UPPER(arg));
986
SET v2 = CONCAT(LOWER(v1), UPPER(v1));
987
INSERT INTO t1 VALUES(v1), (v2);
988
RETURN CONCAT(LOWER(arg), UPPER(arg));
990
SELECT f1('_aBcDe_');
996
_abcde__abcde__ABCDE__ABCDE_
1000
---------------------------------------------------------------
1002
---------------------------------------------------------------
1004
DROP PROCEDURE IF EXISTS p1;
1005
DROP PROCEDURE IF EXISTS p2;
1006
DROP FUNCTION IF EXISTS f1;
1007
CREATE PROCEDURE p1(arg ENUM('a', 'b'))
1011
CREATE PROCEDURE p2(arg ENUM('a', 'b'))
1013
DECLARE var ENUM('c', 'd') DEFAULT arg;
1016
CREATE FUNCTION f1(arg ENUM('a', 'b')) RETURNS ENUM('c', 'd')
1024
Warning 1265 Data truncated for column 'arg' at row 1
1029
Warning 1265 Data truncated for column 'var' at row 1
1034
Warning 1265 Data truncated for column 'f1('a')' at row 1
1039
---------------------------------------------------------------
1041
---------------------------------------------------------------
1043
DROP PROCEDURE IF EXISTS p1;
1044
DROP PROCEDURE IF EXISTS p2;
1045
CREATE PROCEDURE p1(arg VARCHAR(255))
1047
SELECT CHARSET(arg);
1049
CREATE PROCEDURE p2(arg VARCHAR(255) CHARACTER SET UTF8)
1051
SELECT CHARSET(arg);
1062
CALL p2(_LATIN1 't');
1068
---------------------------------------------------------------
1070
---------------------------------------------------------------
1072
DROP PROCEDURE IF EXISTS p1;
1073
CREATE PROCEDURE p1(arg1 BINARY(2), arg2 VARBINARY(2))
1075
DECLARE var1 BINARY(2) DEFAULT 0x41;
1076
DECLARE var2 VARBINARY(2) DEFAULT 0x42;
1077
SELECT HEX(arg1), HEX(arg2);
1078
SELECT HEX(var1), HEX(var2);
1080
CALL p1(0x41, 0x42);
1087
---------------------------------------------------------------
1089
---------------------------------------------------------------
1091
DROP PROCEDURE IF EXISTS p1;
1092
DROP TABLE IF EXISTS t1;
1093
CREATE TABLE t1(col1 TINYINT, col2 TINYINT);
1094
INSERT INTO t1 VALUES(1, 2), (11, 12);
1095
CREATE PROCEDURE p1(arg TINYINT)
1100
ERROR 21000: Operand should contain 1 column(s)
1101
CALL p1((SELECT * FROM t1 LIMIT 1));
1102
ERROR 21000: Operand should contain 1 column(s)
1103
CALL p1((SELECT col1, col2 FROM t1 LIMIT 1));
1104
ERROR 21000: Operand should contain 1 column(s)
1108
---------------------------------------------------------------
1110
---------------------------------------------------------------
1112
DROP PROCEDURE IF EXISTS p1;
1113
DROP FUNCTION IF EXISTS f1;
1114
CREATE PROCEDURE p1(x VARCHAR(50))
1116
SET x = SUBSTRING(x, 1, 3);
1119
CREATE FUNCTION f1(x VARCHAR(50)) RETURNS VARCHAR(50)
1121
RETURN SUBSTRING(x, 1, 3);
1126
SELECT f1('ABCDEF');
1132
---------------------------------------------------------------
1134
---------------------------------------------------------------
1136
DROP FUNCTION IF EXISTS f1;
1137
CREATE FUNCTION f1() RETURNS VARCHAR(20000)
1139
DECLARE var VARCHAR(2000);
1141
SET var = CONCAT(var, 'abc');
1142
SET var = CONCAT(var, '');
1149
DROP PROCEDURE IF EXISTS p1;
1150
CREATE PROCEDURE p1()
1152
DECLARE v_char VARCHAR(255);
1153
DECLARE v_text TEXT DEFAULT '';
1155
SET v_text = v_char;
1157
SET v_text = concat(v_text, '|', v_char);
1164
DROP PROCEDURE IF EXISTS bug27415_text_test|
1165
DROP PROCEDURE IF EXISTS bug27415_text_test2|
1166
CREATE PROCEDURE bug27415_text_test(entity_id_str_in text)
1168
DECLARE str_remainder text;
1169
SET str_remainder = entity_id_str_in;
1170
select 'before substr', str_remainder;
1171
SET str_remainder = SUBSTRING(str_remainder, 3);
1172
select 'after substr', str_remainder;
1174
CREATE PROCEDURE bug27415_text_test2(entity_id_str_in text)
1176
DECLARE str_remainder text;
1177
DECLARE str_remainder2 text;
1178
SET str_remainder2 = entity_id_str_in;
1179
select 'before substr', str_remainder2;
1180
SET str_remainder = SUBSTRING(str_remainder2, 3);
1181
select 'after substr', str_remainder;
1183
CALL bug27415_text_test('a,b,c')|
1184
before substr str_remainder
1186
after substr str_remainder
1188
CALL bug27415_text_test('a,b,c')|
1189
before substr str_remainder
1191
after substr str_remainder
1193
CALL bug27415_text_test2('a,b,c')|
1194
before substr str_remainder2
1196
after substr str_remainder
1198
CALL bug27415_text_test('a,b,c')|
1199
before substr str_remainder
1201
after substr str_remainder
1203
DROP PROCEDURE bug27415_text_test|
1204
DROP PROCEDURE bug27415_text_test2|
1205
drop function if exists f1;
1206
drop table if exists t1;
1207
create function f1() returns int
1209
if @a=1 then set @b='abc';
1215
create table t1 (a int)|
1216
insert into t1 (a) values (1), (2)|
1219
select f1(), @b from t1|
1225
select f1(), @b from t1|