polardbxengine/mysql-test/suite/xengine/t/update_with_keys.test

80 lines
2.2 KiB
Plaintext

--source suite/xengine/include/have_xengine.inc
#
# UPDATE statements for tables with keys
#
#############################################
# TODO:
# The test doesn't work quite as expected,
# apparently due to "can't see own changes"
#############################################
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY, INDEX(b)) ENGINE=xengine;
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'x'),(7,'y'),(8,'z');
UPDATE t1 SET a=100, b='f' WHERE b IN ('b','c');
UPDATE t1 SET b='m' WHERE b = 'f';
UPDATE t1 SET b='z' WHERE a < 2;
UPDATE t1 SET b='';
--sorted_result
SELECT a,b FROM t1;
DROP TABLE t1;
--echo # XEngine: skip the test for secondary UNIQUE keys.
--disable_testcase BUG#0
--error ER_GET_ERRMSG
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY, UNIQUE INDEX(a)) ENGINE=innodb;
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(0,'f'),(100,'a');
UPDATE t1 SET a=a+200;
UPDATE t1 SET a=0 WHERE a > 250;
--error ER_DUP_ENTRY
UPDATE t1 SET a=205 WHERE a=200;
UPDATE t1 SET a=12345 ORDER BY a, b LIMIT 1;
--sorted_result
SELECT a,b FROM t1;
--error ER_DUP_ENTRY
UPDATE t1 SET a=80 WHERE a IN (202,203);
--sorted_result
SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY, UNIQUE INDEX(a,b)) ENGINE=xengine;
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(100,'a'),(6,'f');
UPDATE t1 SET a=6 WHERE a=3;
--error ER_DUP_ENTRY
UPDATE t1 SET a=100 WHERE a=1;
--error ER_DUP_ENTRY
UPDATE t1 SET a=4, b='d' WHERE b='f';
UPDATE t1 SET a=a+1;
--sorted_result
SELECT a,b FROM t1;
--error ER_DUP_ENTRY
UPDATE t1 SET b='z';
DROP TABLE t1;
--enable_testcase
CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=xengine;
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(0,'f'),(100,'a');
UPDATE t1 SET a=a+200;
UPDATE t1 SET a=0 WHERE a > 250;
--error ER_DUP_ENTRY
UPDATE t1 SET a=205 WHERE a=200;
UPDATE t1 SET a=12345 ORDER BY a DESC, b LIMIT 1;
--sorted_result
SELECT a,b FROM t1;
--error ER_DUP_ENTRY
UPDATE t1 SET a=80 WHERE a IN (202,203);
DROP TABLE t1;
--source suite/xengine/include/check_xengine_log_error.inc