Skip to content

Commit f845a98

Browse files
committed
the error should be on the second row, not the first
otherwise how can we know that the row counter is incremented?
1 parent ff5de38 commit f845a98

File tree

4 files changed

+62
-55
lines changed

4 files changed

+62
-55
lines changed

mysql-test/main/get_diagnostics.result

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -829,27 +829,29 @@ Error 1758 Invalid condition number
829829
SELECT @var5, @var6;
830830
@var5 @var6
831831
3 NULL
832-
INSERT INTO t1 VALUES (9,CAST(123 AS CHAR(1)),1.00109);
833-
ERROR 22007: Truncated incorrect CHAR(1) value: '123'
832+
INSERT INTO t1 VALUES (8,8,8),(9,CAST(123 AS CHAR(1)),1.00109);
833+
Warnings:
834+
Warning 1292 Truncated incorrect CHAR(1) value: '123'
834835
GET DIAGNOSTICS CONDITION 1 @var7= ROW_NUMBER;
835836
GET DIAGNOSTICS CONDITION 2 @var8= ROW_NUMBER;
836837
Warnings:
837-
Error1292 Truncated incorrect CHAR(1) value: '123'
838+
Warning1292 Truncated incorrect CHAR(1) value: '123'
838839
Error 1758 Invalid condition number
839840
SELECT @var7, @var8;
840841
@var7 @var8
841-
1 NULL
842-
INSERT INTO t1 VALUES ('x','foo',1.0203);
843-
ERROR 22007: Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
842+
2 NULL
843+
INSERT INTO t1 VALUES (10,10,10),('x','foo',1.0203);
844+
Warnings:
845+
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
844846
GET DIAGNOSTICS CONDITION 1 @var9= ROW_NUMBER;
845847
GET DIAGNOSTICS CONDITION 2 @var10= ROW_NUMBER;
846848
Warnings:
847-
Error1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
849+
Warning1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
848850
Error 1758 Invalid condition number
849851
SELECT @var9, @var10;
850852
@var9 @var10
851-
1NULL
852-
INSERT INTO t1 VALUES ((13,'m',1.0113));
853+
2NULL
854+
INSERT INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113));
853855
ERROR 21000: Operand should contain 1 column(s)
854856
GET DIAGNOSTICS CONDITION 1 @var11= ROW_NUMBER;
855857
GET DIAGNOSTICS CONDITION 2 @var12= ROW_NUMBER;
@@ -858,7 +860,8 @@ Error 1241 Operand should contain 1 column(s)
858860
Error 1758 Invalid condition number
859861
SELECT @var11, @var12;
860862
@var11 @var12
861-
1 NULL
863+
2 NULL
864+
delete from t1 where id1=0;
862865
INSERT INTO t1 VALUES (14,'n',1.0114), (15,'o',1.0115), (16/0,'p',1.0116);
863866
Warnings:
864867
Warning 1365 Division by 0
@@ -910,7 +913,7 @@ Error 1758 Invalid condition number
910913
SELECT @var21, @var22;
911914
@var21 @var22
912915
3 NULL
913-
INSERT IGNORE INTO t1 VALUES (9,CAST(123 AS CHAR(1)),1.00109);
916+
INSERT IGNORE INTO t1 VALUES (8,8,8),(9,CAST(123 AS CHAR(1)),1.00109);
914917
Warnings:
915918
Warning 1292 Truncated incorrect CHAR(1) value: '123'
916919
GET DIAGNOSTICS CONDITION 1 @var23= ROW_NUMBER;
@@ -920,19 +923,19 @@ Warning 1292 Truncated incorrect CHAR(1) value: '123'
920923
Error 1758 Invalid condition number
921924
SELECT @var23, @var24;
922925
@var23 @var24
923-
1NULL
924-
INSERT IGNORE INTO t1 VALUES ('x','foo',1.0203);
926+
2NULL
927+
INSERT IGNORE INTO t1 VALUES (10,10,10),('x','foo',1.0203);
925928
Warnings:
926-
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
929+
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
927930
GET DIAGNOSTICS CONDITION 1 @var25= ROW_NUMBER;
928931
GET DIAGNOSTICS CONDITION 2 @var26= ROW_NUMBER;
929932
Warnings:
930-
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
933+
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
931934
Error 1758 Invalid condition number
932935
SELECT @var25, @var26;
933936
@var25 @var26
934-
1NULL
935-
INSERT IGNORE INTO t1 VALUES ((13,'m',1.0113));
937+
2NULL
938+
INSERT IGNORE INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113));
936939
ERROR 21000: Operand should contain 1 column(s)
937940
GET DIAGNOSTICS CONDITION 1 @var27= ROW_NUMBER;
938941
GET DIAGNOSTICS CONDITION 2 @var28= ROW_NUMBER;
@@ -941,7 +944,7 @@ Error 1241 Operand should contain 1 column(s)
941944
Error 1758 Invalid condition number
942945
SELECT @var27, @var28;
943946
@var27 @var28
944-
1NULL
947+
2NULL
945948
INSERT IGNORE INTO t1 VALUES (14,'n',1.0114), (15,'o',1.0115),
946949
(16/0,'p',1.0116);
947950
Warnings:
@@ -1067,18 +1070,19 @@ Error 1758 Invalid condition number
10671070
SELECT @var51, @var52;
10681071
@var51 @var52
10691072
1 NULL
1070-
INSERT INTO t1 VALUES ('x','foo',1.0203)
1073+
INSERT INTO t1 VALUES (10,10,10),('x','foo',1.0203)
10711074
ON DUPLICATE KEY UPDATE val1='c';
1072-
ERROR 22007: Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
1075+
Warnings:
1076+
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
10731077
GET DIAGNOSTICS CONDITION 1 @var53= ROW_NUMBER;
10741078
GET DIAGNOSTICS CONDITION 2 @var54= ROW_NUMBER;
10751079
Warnings:
1076-
Error1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
1080+
Warning1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
10771081
Error 1758 Invalid condition number
10781082
SELECT @var53, @var54;
10791083
@var53 @var54
1080-
1NULL
1081-
INSERT INTO t1 VALUES ((13,'m',1.0113)) ON DUPLICATE KEY UPDATE val1='c';
1084+
2NULL
1085+
INSERT INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113)) ON DUPLICATE KEY UPDATE val1='c';
10821086
ERROR 21000: Operand should contain 1 column(s)
10831087
GET DIAGNOSTICS CONDITION 1 @var55= ROW_NUMBER;
10841088
GET DIAGNOSTICS CONDITION 2 @var56= ROW_NUMBER;
@@ -1087,7 +1091,7 @@ Error 1241 Operand should contain 1 column(s)
10871091
Error 1758 Invalid condition number
10881092
SELECT @var55, @var56;
10891093
@var55 @var56
1090-
1NULL
1094+
2NULL
10911095
INSERT INTO t1 VALUES (14,'n',1.0114), (15,'o',1.0115), (2/0,'p',1.00102)
10921096
ON DUPLICATE KEY UPDATE val1='b';
10931097
Warnings:
@@ -1256,27 +1260,29 @@ Error 1758 Invalid condition number
12561260
SELECT @var81, @var82;
12571261
@var81 @var82
12581262
3 NULL
1259-
REPLACE INTO t1 VALUES (9,CAST(123 AS CHAR(1)),1.00109);
1260-
ERROR 22007: Truncated incorrect CHAR(1) value: '123'
1263+
REPLACE INTO t1 VALUES (8,8,8),(9,CAST(123 AS CHAR(1)),1.00109);
1264+
Warnings:
1265+
Warning 1292 Truncated incorrect CHAR(1) value: '123'
12611266
GET DIAGNOSTICS CONDITION 1 @var83= ROW_NUMBER;
12621267
GET DIAGNOSTICS CONDITION 2 @var84= ROW_NUMBER;
12631268
Warnings:
1264-
Error1292 Truncated incorrect CHAR(1) value: '123'
1269+
Warning1292 Truncated incorrect CHAR(1) value: '123'
12651270
Error 1758 Invalid condition number
12661271
SELECT @var83, @var84;
12671272
@var83 @var84
1268-
1 NULL
1269-
REPLACE INTO t1 VALUES ('x','foo',1.0203);
1270-
ERROR 22007: Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
1273+
2 NULL
1274+
REPLACE INTO t1 VALUES (10,10,10),('x','foo',1.0203);
1275+
Warnings:
1276+
Warning 1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
12711277
GET DIAGNOSTICS CONDITION 1 @var85= ROW_NUMBER;
12721278
GET DIAGNOSTICS CONDITION 2 @var86= ROW_NUMBER;
12731279
Warnings:
1274-
Error1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 1
1280+
Warning1366 Incorrect integer value: 'x' for column `test`.`t1`.`id1` at row 2
12751281
Error 1758 Invalid condition number
12761282
SELECT @var85, @var86;
12771283
@var85 @var86
1278-
1NULL
1279-
REPLACE INTO t1 VALUES ((13,'m',1.0113));
1284+
2NULL
1285+
REPLACE INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113));
12801286
ERROR 21000: Operand should contain 1 column(s)
12811287
GET DIAGNOSTICS CONDITION 1 @var87= ROW_NUMBER;
12821288
GET DIAGNOSTICS CONDITION 2 @var88= ROW_NUMBER;
@@ -1285,7 +1291,7 @@ Error 1241 Operand should contain 1 column(s)
12851291
Error 1758 Invalid condition number
12861292
SELECT @var87, @var88;
12871293
@var87 @var88
1288-
1NULL
1294+
2NULL
12891295
REPLACE INTO t1 VALUES (14,'n',1.0114), (15,'o',1.0115), (16/0,'p',1.0116);
12901296
Warnings:
12911297
Warning 1365 Division by 0

mysql-test/main/get_diagnostics.test

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -885,24 +885,23 @@ GET DIAGNOSTICS CONDITION 1 @var5= ROW_NUMBER;
885885
GET DIAGNOSTICS CONDITION 2 @var6= ROW_NUMBER;
886886
SELECT @var5, @var6;
887887

888-
--error ER_TRUNCATED_WRONG_VALUE
889-
INSERT INTO t1 VALUES (9,CAST(123 AS CHAR(1)),1.00109);
888+
INSERT INTO t1 VALUES (8,8,8),(9,CAST(123 AS CHAR(1)),1.00109);
890889
GET DIAGNOSTICS CONDITION 1 @var7= ROW_NUMBER;
891890
GET DIAGNOSTICS CONDITION 2 @var8= ROW_NUMBER;
892891
SELECT @var7, @var8;
893892

894-
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
895-
INSERT INTO t1 VALUES ('x','foo',1.0203);
893+
INSERT INTO t1 VALUES (10,10,10),('x','foo',1.0203);
896894
GET DIAGNOSTICS CONDITION 1 @var9= ROW_NUMBER;
897895
GET DIAGNOSTICS CONDITION 2 @var10= ROW_NUMBER;
898896
SELECT @var9, @var10;
899897

900898
--error ER_OPERAND_COLUMNS
901-
INSERT INTO t1 VALUES ((13,'m',1.0113));
899+
INSERT INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113));
902900
GET DIAGNOSTICS CONDITION 1 @var11= ROW_NUMBER;
903901
GET DIAGNOSTICS CONDITION 2 @var12= ROW_NUMBER;
904902
SELECT @var11, @var12;
905903

904+
delete from t1 where id1=0;
906905
INSERT INTO t1 VALUES (14,'n',1.0114), (15,'o',1.0115), (16/0,'p',1.0116);
907906
GET DIAGNOSTICS CONDITION 1 @var13= ROW_NUMBER;
908907
GET DIAGNOSTICS CONDITION 2 @var14= ROW_NUMBER;
@@ -932,18 +931,18 @@ GET DIAGNOSTICS CONDITION 1 @var21= ROW_NUMBER;
932931
GET DIAGNOSTICS CONDITION 2 @var22= ROW_NUMBER;
933932
SELECT @var21, @var22;
934933

935-
INSERT IGNORE INTO t1 VALUES (9,CAST(123 AS CHAR(1)),1.00109);
934+
INSERT IGNORE INTO t1 VALUES (8,8,8),(9,CAST(123 AS CHAR(1)),1.00109);
936935
GET DIAGNOSTICS CONDITION 1 @var23= ROW_NUMBER;
937936
GET DIAGNOSTICS CONDITION 2 @var24= ROW_NUMBER;
938937
SELECT @var23, @var24;
939938

940-
INSERT IGNORE INTO t1 VALUES ('x','foo',1.0203);
939+
INSERT IGNORE INTO t1 VALUES (10,10,10),('x','foo',1.0203);
941940
GET DIAGNOSTICS CONDITION 1 @var25= ROW_NUMBER;
942941
GET DIAGNOSTICS CONDITION 2 @var26= ROW_NUMBER;
943942
SELECT @var25, @var26;
944943

945944
--error ER_OPERAND_COLUMNS
946-
INSERT IGNORE INTO t1 VALUES ((13,'m',1.0113));
945+
INSERT IGNORE INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113));
947946
GET DIAGNOSTICS CONDITION 1 @var27= ROW_NUMBER;
948947
GET DIAGNOSTICS CONDITION 2 @var28= ROW_NUMBER;
949948
SELECT @var27, @var28;
@@ -1030,15 +1029,14 @@ GET DIAGNOSTICS CONDITION 1 @var51= ROW_NUMBER;
10301029
GET DIAGNOSTICS CONDITION 2 @var52= ROW_NUMBER;
10311030
SELECT @var51, @var52;
10321031

1033-
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
1034-
INSERT INTO t1 VALUES ('x','foo',1.0203)
1032+
INSERT INTO t1 VALUES (10,10,10),('x','foo',1.0203)
10351033
ON DUPLICATE KEY UPDATE val1='c';
10361034
GET DIAGNOSTICS CONDITION 1 @var53= ROW_NUMBER;
10371035
GET DIAGNOSTICS CONDITION 2 @var54= ROW_NUMBER;
10381036
SELECT @var53, @var54;
10391037

10401038
--error ER_OPERAND_COLUMNS
1041-
INSERT INTO t1 VALUES ((13,'m',1.0113)) ON DUPLICATE KEY UPDATE val1='c';
1039+
INSERT INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113)) ON DUPLICATE KEY UPDATE val1='c';
10421040
GET DIAGNOSTICS CONDITION 1 @var55= ROW_NUMBER;
10431041
GET DIAGNOSTICS CONDITION 2 @var56= ROW_NUMBER;
10441042
SELECT @var55, @var56;
@@ -1181,20 +1179,18 @@ GET DIAGNOSTICS CONDITION 1 @var81= ROW_NUMBER;
11811179
GET DIAGNOSTICS CONDITION 2 @var82= ROW_NUMBER;
11821180
SELECT @var81, @var82;
11831181

1184-
--error ER_TRUNCATED_WRONG_VALUE
1185-
REPLACE INTO t1 VALUES (9,CAST(123 AS CHAR(1)),1.00109);
1182+
REPLACE INTO t1 VALUES (8,8,8),(9,CAST(123 AS CHAR(1)),1.00109);
11861183
GET DIAGNOSTICS CONDITION 1 @var83= ROW_NUMBER;
11871184
GET DIAGNOSTICS CONDITION 2 @var84= ROW_NUMBER;
11881185
SELECT @var83, @var84;
11891186

1190-
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
1191-
REPLACE INTO t1 VALUES ('x','foo',1.0203);
1187+
REPLACE INTO t1 VALUES (10,10,10),('x','foo',1.0203);
11921188
GET DIAGNOSTICS CONDITION 1 @var85= ROW_NUMBER;
11931189
GET DIAGNOSTICS CONDITION 2 @var86= ROW_NUMBER;
11941190
SELECT @var85, @var86;
11951191

11961192
--error ER_OPERAND_COLUMNS
1197-
REPLACE INTO t1 VALUES ((13,'m',1.0113));
1193+
REPLACE INTO t1 VALUES (11,11,11),(12,12,(13,'m',1.0113));
11981194
GET DIAGNOSTICS CONDITION 1 @var87= ROW_NUMBER;
11991195
GET DIAGNOSTICS CONDITION 2 @var88= ROW_NUMBER;
12001196
SELECT @var87, @var88;

mysql-test/main/trigger.result

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2308,17 +2308,19 @@ DROP TABLE t1, t2;
23082308
set time_zone="+00:00";
23092309
SET TIMESTAMP=UNIX_TIMESTAMP('2001-01-01 10:20:30');
23102310
SET @@session.sql_mode = 'STRICT_ALL_TABLES,STRICT_TRANS_TABLES';
2311+
set @rpt=1;
23112312
CREATE TABLE t1 (c CHAR(1) NOT NULL);
23122313
CREATE TRIGGER t1_bi
23132314
BEFORE INSERT
23142315
ON t1
23152316
FOR EACH ROW
23162317
BEGIN
2317-
SET NEW.c = 'www';
2318+
SET NEW.c = repeat(@rpt,@rpt);
2319+
set @rpt=@rpt+1;
23182320
END;
23192321
|
23202322
SET @@session.sql_mode = default;
2321-
INSERT INTO t1 VALUES ('a');
2323+
INSERT INTO t1 VALUES ('a'),('b');
23222324
ERROR 22001: Data too long for column 'c' at row 1
23232325
show create trigger t1_bi;
23242326
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -2327,7 +2329,8 @@ BEFORE INSERT
23272329
ON t1
23282330
FOR EACH ROW
23292331
BEGIN
2330-
SET NEW.c = 'www';
2332+
SET NEW.c = repeat(@rpt,@rpt);
2333+
set @rpt=@rpt+1;
23312334
END latin1 latin1_swedish_ci latin1_swedish_ci 2001-01-01 10:20:30.00
23322335
DROP TRIGGER t1_bi;
23332336
DROP TABLE t1;

mysql-test/main/trigger.test

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2627,20 +2627,22 @@ DROP TABLE t1, t2;
26272627
set time_zone="+00:00";
26282628
SET TIMESTAMP=UNIX_TIMESTAMP('2001-01-01 10:20:30');
26292629
SET @@session.sql_mode = 'STRICT_ALL_TABLES,STRICT_TRANS_TABLES';
2630+
set @rpt=1;
26302631
CREATE TABLE t1 (c CHAR(1) NOT NULL);
26312632
DELIMITER |;
26322633
CREATE TRIGGER t1_bi
26332634
BEFORE INSERT
26342635
ON t1
26352636
FOR EACH ROW
26362637
BEGIN
2637-
SET NEW.c = 'www';
2638+
SET NEW.c = repeat(@rpt,@rpt);
2639+
set @rpt=@rpt+1;
26382640
END;
26392641
|
26402642
DELIMITER ;|
26412643
SET @@session.sql_mode = default;
26422644
--error ER_DATA_TOO_LONG
2643-
INSERT INTO t1 VALUES ('a');
2645+
INSERT INTO t1 VALUES ('a'),('b'); # this is a BUG, must be "at row 2"
26442646
show create trigger t1_bi;
26452647
DROP TRIGGER t1_bi;
26462648
DROP TABLE t1;

0 commit comments

Comments
 (0)