80 lines
2.2 KiB
Plaintext
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
|