859 lines
28 KiB
Plaintext
859 lines
28 KiB
Plaintext
|
|
#
|
|
# Part 1 : Statements with IGNORE to convert Errors to Warnings.
|
|
#
|
|
|
|
SET @org_mode=@@sql_mode;
|
|
#
|
|
#For Error Code : ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET
|
|
#
|
|
CREATE TABLE t1 (a int) ENGINE = InnoDB PARTITION BY HASH (a) PARTITIONS 2;
|
|
INSERT INTO t1 VALUES (0), (1), (2), (3);
|
|
CREATE VIEW v1 AS SELECT a FROM t1 PARTITION (p0);
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
2
|
|
1
|
|
3
|
|
SELECT * FROM v1;
|
|
a
|
|
0
|
|
2
|
|
INSERT INTO v1 VALUES (10),(11);
|
|
ERROR HY000: Found a row not matching the given partition set
|
|
INSERT IGNORE INTO v1 VALUES (10),(11);
|
|
Warnings:
|
|
Warning 1748 Found a row not matching the given partition set
|
|
UPDATE IGNORE v1 SET a=11 WHERE a=2;
|
|
Warnings:
|
|
Warning 1748 Found a row not matching the given partition set
|
|
SELECT * FROM v1;
|
|
a
|
|
0
|
|
2
|
|
10
|
|
SELECT * from t1;
|
|
a
|
|
0
|
|
2
|
|
10
|
|
1
|
|
3
|
|
DROP TABLE t1;
|
|
DROP VIEW v1;
|
|
#
|
|
#For Error Code : ER_NO_PARTITION_FOR_GIVEN_VALUE
|
|
# ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
|
|
#
|
|
CREATE TABLE t1 (a int) ENGINE = InnoDB PARTITION BY LIST (a)
|
|
(PARTITION x1 VALUES IN (2,5), PARTITION x2 VALUES IN (3));
|
|
INSERT INTO t1 VALUES (2), (3), (5);
|
|
INSERT INTO t1 VALUES (2),(4);
|
|
ERROR HY000: Table has no partition for value 4
|
|
INSERT IGNORE INTO t1 VALUES (2),(4);
|
|
Warnings:
|
|
Warning 1526 Table has no partition for value 4
|
|
SELECT * FROM t1;
|
|
a
|
|
2
|
|
5
|
|
2
|
|
3
|
|
UPDATE t1 SET a=a+1;
|
|
ERROR HY000: Table has no partition for value 6
|
|
UPDATE IGNORE t1 SET a=a+1;
|
|
Warnings:
|
|
Warning 1526 Table has no partition for value 6
|
|
Warning 1526 Table has no partition for value 4
|
|
SELECT * FROM t1;
|
|
a
|
|
5
|
|
3
|
|
3
|
|
3
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (b INT, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE = InnoDB;
|
|
CREATE TABLE t3 (c INT PRIMARY KEY, FOREIGN KEY(c) REFERENCES t2(b)) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2), (5);
|
|
INSERT INTO t2 VALUES (1);
|
|
INSERT INTO t3 VALUES (1), (2);
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
INSERT IGNORE INTO t3 VALUES (1), (2);
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE t3 SET c=2 where c=1;
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE IGNORE t3 SET c=2 where c=1;
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
DELETE FROM t1;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
DELETE IGNORE FROM t1;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
UPDATE t2 SET b=b+5;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE IGNORE t2 SET b=b+5;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
SELECT * FROM t2;
|
|
b
|
|
1
|
|
DROP TABLE t3,t2,t1;
|
|
CREATE TABLE t1 (a INT) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1),(NULL),(2);
|
|
SET sql_mode = 'NO_ENGINE_SUBSTITUTION';
|
|
ALTER TABLE t1 CHANGE a a INT NOT NULL;
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'a' at row 2
|
|
SET sql_mode = default;
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
0
|
|
2
|
|
UPDATE IGNORE t1 SET a=NULL WHERE a=0;
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
0
|
|
2
|
|
DELETE FROM t1;
|
|
INSERT INTO t1 VALUES (NULL);
|
|
ERROR 23000: Column 'a' cannot be null
|
|
INSERT IGNORE INTO t1 VALUES (NULL);
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
INSERT IGNORE INTO t1 VALUES (NULL),(3);
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
0
|
|
3
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a INT, b INT) ENGINE = InnoDB;
|
|
CREATE TABLE t2(a INT, b INT NOT NULL) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES(1, NULL),(2,NULL);
|
|
INSERT INTO t2 VALUES (1,3), (2,4);
|
|
UPDATE IGNORE t1,t2 SET t2.b=NULL;
|
|
Warnings:
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
DROP TABLE t1,t2;
|
|
#
|
|
# IGNORE keyword in the statement should not affect the errors in the
|
|
# trigger execution if trigger statement does not have IGNORE keyword.
|
|
# and vice versa.
|
|
#
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (b INT PRIMARY KEY, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE = InnoDB;
|
|
CREATE TABLE t3 (c INT PRIMARY KEY) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2);
|
|
INSERT INTO t2 VALUES (1);
|
|
INSERT INTO t3 VALUES (1),(2),(3),(4),(5);
|
|
CREATE TRIGGER post_insert_t1 AFTER INSERT ON t1
|
|
FOR EACH ROW BEGIN
|
|
INSERT INTO t3 VALUES(5);
|
|
END|
|
|
CREATE TRIGGER post_update_t1 AFTER UPDATE ON t1
|
|
FOR EACH ROW BEGIN
|
|
INSERT INTO t3 VALUES(4);
|
|
END|
|
|
INSERT IGNORE INTO t1 VALUES(3);
|
|
ERROR 23000: Duplicate entry '5' for key 'PRIMARY'
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
UPDATE IGNORE t1 SET a=3 WHERE a=2;
|
|
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
DROP TRIGGER post_insert_t1;
|
|
DROP TRIGGER post_update_t1;
|
|
CREATE TRIGGER post_insert_t1 AFTER INSERT ON t1
|
|
FOR EACH ROW BEGIN
|
|
INSERT IGNORE INTO t3 VALUES (5),(6);
|
|
END|
|
|
CREATE TRIGGER post_update_t1 AFTER UPDATE ON t1
|
|
FOR EACH ROW BEGIN
|
|
INSERT IGNORE INTO t3 VALUES(4);
|
|
END|
|
|
INSERT INTO t1 VALUES(2);
|
|
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
|
SELECT * FROM t3;
|
|
c
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
INSERT IGNORE INTO t1 VALUES(2),(3);
|
|
Warnings:
|
|
Warning 1062 Duplicate entry '2' for key 'PRIMARY'
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3;
|
|
c
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
UPDATE IGNORE t1 SET a=3 WHERE a=2;
|
|
Warnings:
|
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
|
DROP TRIGGER post_insert_t1;
|
|
DROP TRIGGER post_update_t1;
|
|
DROP TABLE t2,t1,t3;
|
|
|
|
#
|
|
# Part 2 : Statements with IGNORE + STRICT
|
|
# These statements gives error by default
|
|
# without IGNORE and STRICT mode.
|
|
#
|
|
|
|
SET sql_mode=default;
|
|
CREATE TABLE t1 (a INT) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1),(NULL),(2);
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a INT NOT NULL) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (NULL);
|
|
ERROR 23000: Column 'a' cannot be null
|
|
INSERT IGNORE INTO t1 VALUES(NULL);
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
INSERT INTO t1 VALUES (NULL),(3);
|
|
ERROR 23000: Column 'a' cannot be null
|
|
INSERT IGNORE INTO t1 VALUES (NULL),(1);
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
UPDATE t1 SET a=NULL WHERE a=0;
|
|
ERROR 23000: Column 'a' cannot be null
|
|
UPDATE IGNORE t1 SET a=NULL WHERE a=0;
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a INT, b INT) ENGINE = InnoDB;
|
|
CREATE TABLE t2(a INT, b INT NOT NULL) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES(1, NULL),(2,NULL);
|
|
INSERT INTO t2 VALUES (1,3), (2,4);
|
|
UPDATE t1,t2 SET t2.b=NULL;
|
|
ERROR 23000: Column 'b' cannot be null
|
|
UPDATE IGNORE t1,t2 SET t2.b=NULL;
|
|
Warnings:
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
DROP TABLE t1, t2;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (b INT, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE = InnoDB;
|
|
CREATE TABLE t3 (c INT PRIMARY KEY, FOREIGN KEY(c) REFERENCES t2(b)) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2), (5);
|
|
INSERT INTO t2 VALUES (1);
|
|
INSERT INTO t3 VALUES (1), (2);
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
INSERT IGNORE INTO t3 VALUES (1), (2);
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE t3 SET c=2 where c=1;
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE IGNORE t3 SET c=2 where c=1;
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
DELETE FROM t1;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
DELETE IGNORE FROM t1;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
UPDATE t2 SET b=b+5;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE IGNORE t2 SET b=b+5;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
SELECT * FROM t2;
|
|
b
|
|
1
|
|
DROP TABLE t3,t2,t1;
|
|
CREATE TABLE t1 (a int) ENGINE = InnoDB PARTITION BY HASH (a) PARTITIONS 2;
|
|
INSERT INTO t1 VALUES (0), (1), (2), (3);
|
|
CREATE VIEW v1 AS SELECT a FROM t1 PARTITION (p0);
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
2
|
|
1
|
|
3
|
|
SELECT * FROM v1;
|
|
a
|
|
0
|
|
2
|
|
INSERT INTO v1 VALUES (10),(11);
|
|
ERROR HY000: Found a row not matching the given partition set
|
|
INSERT IGNORE INTO v1 VALUES (10),(11);
|
|
Warnings:
|
|
Warning 1748 Found a row not matching the given partition set
|
|
UPDATE v1 SET a=11 WHERE a=2;
|
|
ERROR HY000: Found a row not matching the given partition set
|
|
UPDATE IGNORE v1 SET a=11 WHERE a=2;
|
|
Warnings:
|
|
Warning 1748 Found a row not matching the given partition set
|
|
DROP VIEW v1;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a int) ENGINE = InnoDB PARTITION BY LIST (a)
|
|
(PARTITION x1 VALUES IN (2,5), PARTITION x2 VALUES IN (3));
|
|
INSERT INTO t1 VALUES (2), (3),(5);
|
|
INSERT INTO t1 VALUES (2),(4);
|
|
ERROR HY000: Table has no partition for value 4
|
|
INSERT IGNORE INTO t1 VALUES (2),(4);
|
|
Warnings:
|
|
Warning 1526 Table has no partition for value 4
|
|
UPDATE t1 SET a=4 WHERE a=5;
|
|
ERROR HY000: Table has no partition for value 4
|
|
UPDATE IGNORE t1 SET a=4 WHERE a=5;
|
|
Warnings:
|
|
Warning 1526 Table has no partition for value 4
|
|
DROP TABLE t1;
|
|
CREATE TABLE t11 (a INT NOT NULL, b INT, PRIMARY KEY (a)) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (a INT NOT NULL, b INT, PRIMARY KEY (a)) ENGINE = InnoDB;
|
|
INSERT INTO t11 VALUES (0, 10),(1, 11),(2, 12);
|
|
INSERT INTO t2 VALUES (1, 21),(2, 12),(3, 23);
|
|
DELETE FROM t11 WHERE t11.b = (SELECT b FROM t2 WHERE t11.a < t2.a);
|
|
ERROR 21000: Subquery returns more than 1 row
|
|
DELETE IGNORE FROM t11 WHERE t11.b = (SELECT b FROM t2 WHERE t11.a < t2.a);
|
|
Warnings:
|
|
Warning 1242 Subquery returns more than 1 row
|
|
Warning 1242 Subquery returns more than 1 row
|
|
DROP TABLE t11, t2;
|
|
CREATE TABLE t1 (a INT) ENGINE = InnoDB;
|
|
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 WITH CHECK OPTION;
|
|
INSERT INTO v1 VALUES (1), (3);
|
|
ERROR HY000: CHECK OPTION failed 'test.v1'
|
|
INSERT IGNORE INTO v1 VALUES (1), (3);
|
|
Warnings:
|
|
Warning 1369 CHECK OPTION failed 'test.v1'
|
|
UPDATE v1 SET a=5 WHERE a=1;
|
|
ERROR HY000: CHECK OPTION failed 'test.v1'
|
|
UPDATE IGNORE v1 SET a=5 WHERE a=1;
|
|
Warnings:
|
|
Warning 1369 CHECK OPTION failed 'test.v1'
|
|
DROP VIEW v1;
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# Part 3 : For the handler errors converted to warning
|
|
# by IGNORE keyword.
|
|
#
|
|
|
|
#
|
|
# Test For warning message for unique key constraint violation.
|
|
#
|
|
CREATE TABLE t1( a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2( a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2), (3), (4);
|
|
INSERT INTO t2 VALUES (2), (4);
|
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/wl6614.txt' FROM t1;
|
|
SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/wl6614.txt');
|
|
LOAD_FILE('MYSQLTEST_VARDIR/tmp/wl6614.txt')
|
|
1
|
|
2
|
|
3
|
|
4
|
|
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/wl6614.txt' INTO TABLE t2;
|
|
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/wl6614.txt' IGNORE INTO TABLE t2;
|
|
Warnings:
|
|
Warning 1062 Duplicate entry '2' for key 'PRIMARY'
|
|
Warning 1062 Duplicate entry '4' for key 'PRIMARY'
|
|
SELECT * FROM t2;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
DELETE FROM t2;
|
|
INSERT INTO t2 VALUES (2),(4);
|
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/wl6614.txt' IGNORE INTO TABLE t2;
|
|
Warnings:
|
|
Warning 1062 Duplicate entry '2' for key 'PRIMARY'
|
|
Warning 1062 Duplicate entry '4' for key 'PRIMARY'
|
|
SELECT * from t2;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
DROP TABLE t1,t2;
|
|
|
|
#
|
|
# Part 4 : For the error codes affected by STRICT Mode,
|
|
# Using IGNORE + STRICT should give the behavior
|
|
# Warning ---> Warning ( IGNORE+STRICT mode)
|
|
#
|
|
|
|
#
|
|
#For Error Code : ER_NO_DEFAULT_FOR_FIELD
|
|
# ER_NO_DEFAULT_FOR_VIEW_FIELD
|
|
#
|
|
DROP TABLE IF EXISTS t1;
|
|
Warnings:
|
|
Note 1051 Unknown table 'test.t1'
|
|
CREATE TABLE t1 (col1 INT NOT NULL, col2 INT NOT NULL) ENGINE = InnoDB;
|
|
CREATE VIEW v1 (vcol1) AS SELECT col1 FROM t1;
|
|
INSERT INTO t1 (col1) VALUES(12);
|
|
ERROR HY000: Field 'col2' doesn't have a default value
|
|
INSERT IGNORE INTO t1 (col1) VALUES(12);
|
|
Warnings:
|
|
Warning 1364 Field 'col2' doesn't have a default value
|
|
INSERT INTO v1 (vcol1) VALUES(12);
|
|
ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
|
|
INSERT IGNORE INTO v1 (vcol1) VALUES(12);
|
|
Warnings:
|
|
Warning 1423 Field of view 'test.v1' underlying table doesn't have a default value
|
|
DROP TABLE t1;
|
|
DROP VIEW v1;
|
|
#
|
|
#For Error Code : ER_WARN_DATA_OUT_OF_RANGE
|
|
#
|
|
SET sql_mode=default;
|
|
CREATE TABLE t1(a INT) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES(2147483648);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
INSERT IGNORE INTO t1 VALUES(2147483648);
|
|
Warnings:
|
|
Warning 1264 Out of range value for column 'a' at row 1
|
|
UPDATE IGNORE t1 SET a=2147483648 WHERE a=0;
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
|
|
#
|
|
DROP TABLE IF EXISTS t1;
|
|
Warnings:
|
|
Note 1051 Unknown table 'test.t1'
|
|
CREATE TABLE t1(a INT) ENGINE = InnoDB;
|
|
INSERT INTO t1 values('a');
|
|
ERROR HY000: Incorrect integer value: 'a' for column 'a' at row 1
|
|
INSERT IGNORE INTO t1 values('a');
|
|
Warnings:
|
|
Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1
|
|
UPDATE IGNORE t1 SET a='a' WHERE a=0;
|
|
Warnings:
|
|
Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_DATA_TOO_LONG
|
|
#
|
|
DROP TABLE IF EXISTS t3;
|
|
Warnings:
|
|
Note 1051 Unknown table 'test.t3'
|
|
CREATE TABLE t3(c1 CHAR(10) NOT NULL) ENGINE = InnoDB;
|
|
INSERT INTO t3 VALUES('a');
|
|
INSERT INTO t3 (c1) VALUES('12345678901.x');
|
|
ERROR 22001: Data too long for column 'c1' at row 1
|
|
INSERT IGNORE INTO t3 (c1) VALUES('12345678901.x');
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'c1' at row 1
|
|
UPDATE IGNORE t3 SET c1='12345678901.x' WHERE c1='a';
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'c1' at row 1
|
|
DROP TABLE t3;
|
|
#
|
|
#For Error Code : ER_WRONG_VALUE_FOR_TYPE
|
|
#
|
|
CREATE TABLE t1 (col1 DATETIME) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES('1000-01-01 00:00:00');
|
|
INSERT INTO t1 VALUES(STR_TO_DATE('32.10.2004 15.30','%D.%D.%Y %H.%I'));
|
|
ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
|
|
INSERT IGNORE INTO t1 VALUES(STR_TO_DATE('32.10.2004 15.30','%D.%D.%Y %H.%I'));
|
|
Warnings:
|
|
Warning 1411 Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
|
|
Warning 1411 Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
|
|
UPDATE IGNORE t1 SET col1=STR_TO_DATE('32.10.2004 15.30','%D.%D.%Y %H.%I') WHERE col1='1000-01-01 00:00:00';
|
|
Warnings:
|
|
Warning 1411 Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
|
|
Warning 1411 Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_DATETIME_FUNCTION_OVERFLOW
|
|
#
|
|
CREATE TABLE t1 (d DATE) ENGINE = InnoDB;
|
|
INSERT INTO t1 (d) SELECT DATE_SUB('2000-01-01', INTERVAL 2001 YEAR);
|
|
ERROR 22008: Datetime function: datetime field overflow
|
|
INSERT IGNORE INTO t1 (d) SELECT DATE_SUB('2000-01-01',INTERVAL 2001 YEAR);
|
|
Warnings:
|
|
Warning 1441 Datetime function: datetime field overflow
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_TRUNCATED_WRONG_VALUE
|
|
#
|
|
CREATE TABLE t1 (col1 CHAR(3), col2 INT) ENGINE = InnoDB;
|
|
INSERT INTO t1 (col1) VALUES (CAST(1000 as CHAR(3)));
|
|
ERROR 22007: Truncated incorrect CHAR(3) value: '1000'
|
|
SELECT * FROM t1;
|
|
col1 col2
|
|
INSERT IGNORE into t1 (col1) VALUES (CAST(1000 as CHAR(3)));
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect CHAR(3) value: '1000'
|
|
SELECT * FROM t1;
|
|
col1 col2
|
|
100 NULL
|
|
INSERT INTO t1 (col1) VALUES (CAST(1000 as CHAR(3)));
|
|
ERROR 22007: Truncated incorrect CHAR(3) value: '1000'
|
|
SELECT * FROM t1;
|
|
col1 col2
|
|
100 NULL
|
|
INSERT IGNORE into t1 (col1) VALUES (CAST(1000 as CHAR(3)));
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect CHAR(3) value: '1000'
|
|
SELECT * FROM t1;
|
|
col1 col2
|
|
100 NULL
|
|
100 NULL
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_DIVISION_BY_ZERO
|
|
#For Error Code : WARN_DATA_TRUNCATED
|
|
#
|
|
SET sql_mode='ERROR_FOR_DIVISION_BY_ZERO,STRICT_ALL_TABLES';
|
|
Warnings:
|
|
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
|
|
CREATE TABLE t1(a TINYINT);
|
|
INSERT INTO t1 VALUES(2/0);
|
|
ERROR 22012: Division by 0
|
|
INSERT IGNORE INTO t1 VALUES(2/0);
|
|
Warnings:
|
|
Warning 1365 Division by 0
|
|
SELECT * FROM t1;
|
|
a
|
|
NULL
|
|
DELETE FROM t1;
|
|
INSERT INTO t1 VALUES ('a59b');
|
|
ERROR HY000: Incorrect integer value: 'a59b' for column 'a' at row 1
|
|
INSERT IGNORE INTO t1 VALUES ('a59b');
|
|
Warnings:
|
|
Warning 1366 Incorrect integer value: 'a59b' for column 'a' at row 1
|
|
INSERT INTO t1 VALUES ('1a');
|
|
ERROR 01000: Data truncated for column 'a' at row 1
|
|
INSERT IGNORE INTO t1 VALUES ('1a');
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'a' at row 1
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_WRONG_ARGUMENTS
|
|
#
|
|
CREATE TABLE t1(a INT) ENGINE = InnoDB;
|
|
INSERT INTO t1(SELECT SLEEP(NULL));
|
|
ERROR HY000: Incorrect arguments to sleep.
|
|
INSERT IGNORE into t1(SELECT SLEEP(NULL));
|
|
Warnings:
|
|
Warning 1210 Incorrect arguments to sleep.
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
DROP TABLE t1;
|
|
#
|
|
#For Error Code : ER_WARN_NULL_TO_NOTNULL
|
|
#
|
|
CREATE TABLE t1(a INT, b INT NOT NULL, c INT NOT NULL, d INT NOT NULL) ENGINE = InnoDB;
|
|
LOAD DATA INFILE '../../std_data/wl6030_2.dat' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '"';
|
|
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'b' at row 3
|
|
SELECT * FROM t1;
|
|
a b c d
|
|
LOAD DATA INFILE '../../std_data/wl6030_2.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '"';
|
|
Warnings:
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 3
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 4
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'd' at row 5
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 6
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 6
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'd' at row 6
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 7
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 8
|
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'd' at row 9
|
|
SELECT * FROM t1;
|
|
a b c d
|
|
11 12 13 14
|
|
NULL 22 23 24
|
|
31 0 33 34
|
|
41 42 0 44
|
|
51 52 53 0
|
|
NULL 0 0 0
|
|
NULL 0 73 74
|
|
NULL 82 0 84
|
|
NULL 92 93 0
|
|
DROP TABLE t1;
|
|
SET sql_mode=@org_mode;
|
|
|
|
#
|
|
# Part 5 : Test cases for the non transactional (MyIsam) engine.
|
|
#
|
|
CREATE TABLE t1 (a INT) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1),(NULL),(2);
|
|
SET sql_mode = 'NO_ENGINE_SUBSTITUTION';
|
|
ALTER TABLE t1 CHANGE a a INT NOT NULL;
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'a' at row 2
|
|
SET sql_mode = default;
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
0
|
|
2
|
|
UPDATE IGNORE t1 SET a=NULL WHERE a=0;
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
0
|
|
2
|
|
DELETE FROM t1;
|
|
INSERT INTO t1 VALUES (NULL);
|
|
ERROR 23000: Column 'a' cannot be null
|
|
INSERT IGNORE INTO t1 VALUES (NULL);
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
INSERT IGNORE INTO t1 VALUES (NULL),(3);
|
|
Warnings:
|
|
Warning 1048 Column 'a' cannot be null
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
0
|
|
3
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a INT, b INT) ENGINE = InnoDB;
|
|
CREATE TABLE t2(a INT, b INT NOT NULL) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES(1, NULL),(2,NULL);
|
|
INSERT INTO t2 VALUES (1,3), (2,4);
|
|
UPDATE IGNORE t1,t2 SET t2.b=NULL;
|
|
Warnings:
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
UPDATE IGNORE t2,t1 SET t2.b=NULL;
|
|
Warnings:
|
|
Warning 1048 Column 'b' cannot be null
|
|
Warning 1048 Column 'b' cannot be null
|
|
DROP TABLE t1,t2;
|
|
|
|
#
|
|
# Part 6 : Miscellaneous Test cases
|
|
#
|
|
|
|
# This case checks foreign key relationships.
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (b INT, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE = InnoDB;
|
|
CREATE TABLE t3 (c INT PRIMARY KEY, FOREIGN KEY(c) REFERENCES t2(b)) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2), (5);
|
|
INSERT INTO t2 VALUES (1);
|
|
INSERT INTO t3 VALUES (1), (2);
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
INSERT IGNORE INTO t3 VALUES (1), (2);
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE t3 SET c=2 where c=1;
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE IGNORE t3 SET c=2 where c=1;
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
DELETE FROM t1;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
DELETE IGNORE FROM t1;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
UPDATE t2 SET b=b+5;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
UPDATE IGNORE t2 SET b=b+5;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
SELECT * FROM t2;
|
|
b
|
|
1
|
|
DROP TABLE t3,t2,t1;
|
|
# This case checks that the number of warnings returned
|
|
# after multiupdate is correct.
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (b INT PRIMARY KEY, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE = InnoDB;
|
|
CREATE TABLE t3 (c INT PRIMARY KEY) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t2 VALUES (1);
|
|
INSERT INTO t3 VALUES (1);
|
|
UPDATE IGNORE t1,t3 SET t1.a=5 where t1.a=t3.c;
|
|
affected rows: 0
|
|
info: Rows matched: 1 Changed: 0 Warnings: 1
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
UPDATE IGNORE t2,t3 SET t2.b=5 where t2.b=t3.c;
|
|
affected rows: 0
|
|
info: Rows matched: 1 Changed: 0 Warnings: 1
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
DROP TABLE t3,t2,t1;
|
|
# Test cases to increase Code Coverage
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t2 (b INT PRIMARY KEY) ENGINE = InnoDB;
|
|
CREATE TABLE t3 (c INT PRIMARY KEY, FOREIGN KEY(c) REFERENCES t2(b)) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES(1),(2);
|
|
INSERT INTO t2 VALUES (3),(4);
|
|
INSERT INTO t3 VALUES(3),(4);
|
|
DELETE t1.*,t2.* FROM t1,t2;
|
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
DELETE IGNORE t1.*,t2.* FROM t1,t2;
|
|
Warnings:
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
Warning 1451 Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t2` (`b`))
|
|
SELECT * FROM t1;
|
|
a
|
|
SELECT * FROM t2;
|
|
b
|
|
3
|
|
4
|
|
DROP TABLE t3,t2,t1;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
CREATE TABLE t2 (b INT PRIMARY KEY, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES(1);
|
|
INSERT INTO t2 VALUES(2) ON DUPLICATE KEY UPDATE b=b-1;
|
|
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
INSERT IGNORE INTO t2 VALUES(2) ON DUPLICATE KEY UPDATE b=b-1;
|
|
Warnings:
|
|
Warning 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`))
|
|
DROP table t2,t1;
|
|
#
|
|
# Bug#14786621 ASSERTION FAILED: THD->IS_ERROR() || KILL:
|
|
# FILESORT + DISCARDED TABLESPACE
|
|
#
|
|
CREATE TABLE t(a int) engine=innodb;
|
|
ALTER TABLE t DISCARD TABLESPACE;
|
|
DELETE IGNORE FROM t ;
|
|
ERROR HY000: Tablespace has been discarded for table 't'
|
|
DELETE IGNORE FROM t ORDER BY 0 + 1 ;
|
|
ERROR HY000: Tablespace has been discarded for table 't'
|
|
DROP TABLE t;
|
|
#
|
|
# BUG#18526888 - STRICT MODE DOES NOT APPLY TO MULTI DELETE STATEMENT
|
|
#
|
|
CREATE TABLE t1(a INT);
|
|
INSERT INTO t1 VALUES(5);
|
|
CREATE TABLE t2(b int);
|
|
INSERT INTO t2 VALUES(7);
|
|
#
|
|
# STRICT MODE and IGNORE test case for DELETE
|
|
#
|
|
DELETE FROM t1 where a <=> ln(0);
|
|
ERROR 2201E: Invalid argument for logarithm
|
|
DELETE IGNORE FROM t1 where a <=> ln(0);
|
|
Warnings:
|
|
Warning 3020 Invalid argument for logarithm
|
|
Warning 3020 Invalid argument for logarithm
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Warning 3020 Invalid argument for logarithm
|
|
Warning 3020 Invalid argument for logarithm
|
|
#
|
|
# STRICT MODE and IGNORE test case for MULTI DELETE
|
|
# An error ER_INVALID_ARGUMENT_FOR_LOGARITHM is expected here.
|
|
#
|
|
DELETE t1, t2 FROM t1 INNER JOIN t2 WHERE t1.a <=> ln(0) AND t2.b <=> ln(0);
|
|
ERROR 2201E: Invalid argument for logarithm
|
|
# Warnings are expected here and works fine.
|
|
DELETE IGNORE t1, t2 FROM t1 INNER JOIN t2 WHERE t1.a <=> ln(0) AND t2.b <=> ln(0);
|
|
Warnings:
|
|
Warning 3020 Invalid argument for logarithm
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Warning 3020 Invalid argument for logarithm
|
|
# Clean-up
|
|
DROP TABLE t1,t2;
|
|
# Restore the orginal sql_mode
|
|
SET sql_mode= @org_mode;
|
|
#
|
|
# BUG 18662121 - ASSERT IN PROTOCOL::END_STATEMENT() IN LOAD DATA STATEMENT
|
|
#
|
|
SET sql_mode='STRICT_TRANS_TABLES';
|
|
Warnings:
|
|
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
|
|
CREATE TABLE t2 (a int default 0, b int primary key) engine=innodb;
|
|
INSERT INTO t2 VALUES (0, 17);
|
|
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t2 (a, @b) SET b= @b + 2;
|
|
ERROR 23000: Duplicate entry '17' for key 'PRIMARY'
|
|
DROP TABLE t2;
|
|
SET sql_mode= @org_mode;
|
|
#
|
|
# BUG#18662043 - ASSERT IN MY_OK() IN SQL_CMD_SIGNAL::EXECUTE
|
|
#
|
|
SET sql_mode='STRICT_TRANS_TABLES';
|
|
Warnings:
|
|
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
|
|
CREATE PROCEDURE p1()
|
|
BEGIN
|
|
# warning
|
|
DECLARE too_few_records CONDITION FOR SQLSTATE '01000';
|
|
SIGNAL too_few_records SET MYSQL_ERRNO = 1261;
|
|
END |
|
|
# This statement should pass with the fix.
|
|
CALL p1();
|
|
Warnings:
|
|
Warning 1261 Unhandled user-defined warning condition
|
|
# Clean-up
|
|
DROP PROCEDURE p1;
|
|
# Restore the orginal sql_mode
|
|
SET sql_mode= @org_mode;
|
|
#
|
|
# Bug #19873291 : MYSQL_EXECUTE_COMMAND(THD*): ASSERTION
|
|
# `THD->IS_ERROR() || THD->KILLED' FAILED
|
|
#
|
|
CREATE TABLE t1(a INT);
|
|
SET @org_safe_updates= @@sql_safe_updates;
|
|
SET SESSION sql_safe_updates=ON;
|
|
DELETE IGNORE FROM t1 WHERE a=1;
|
|
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
|
|
DROP TABLE t1;
|
|
SET sql_safe_updates= @org_safe_updates;
|