74 lines
1.8 KiB
Plaintext
74 lines
1.8 KiB
Plaintext
--source suite/xengine/include/have_xengine.inc
|
|
|
|
#
|
|
# Basic UPDATE statements.
|
|
# UPDATE LOW_PRIORITY is covered in update_low_prio test
|
|
# UPDATE IGNORE is covered in update_ignore test
|
|
# Multi-table update is covered in update_multi test
|
|
#
|
|
|
|
########################################
|
|
# TODO:
|
|
# The results of the transactional part
|
|
# are unusual 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) ENGINE=xengine;
|
|
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(10000,'foobar');
|
|
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
|
|
|
UPDATE t1 SET a=a+100;
|
|
--sorted_result
|
|
SELECT a,b FROM t1;
|
|
|
|
UPDATE t1 SET a=a-100, b=DEFAULT WHERE a>100;
|
|
--sorted_result
|
|
SELECT a,b FROM t1;
|
|
|
|
# ORDER BY and LIMIT
|
|
UPDATE t1 SET b = 'update' WHERE a <= 4 ORDER BY b DESC, a ASC LIMIT 1;
|
|
--sorted_result
|
|
SELECT a,b FROM t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# Transactional UPDATE
|
|
#
|
|
|
|
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=xengine;
|
|
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(10000,'foobar');
|
|
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
|
|
|
BEGIN;
|
|
UPDATE t1 SET a=a+100;
|
|
UPDATE t1 SET a=a-50, b=DEFAULT WHERE a>100;
|
|
COMMIT;
|
|
--sorted_result
|
|
SELECT * FROM t1 ORDER BY pk;
|
|
|
|
BEGIN;
|
|
UPDATE t1 SET b = 'update' WHERE a <= 4 ORDER BY a DESC, b ASC LIMIT 3;
|
|
UPDATE t1 SET b = '';
|
|
ROLLBACK;
|
|
SELECT * FROM t1 ORDER BY pk;
|
|
|
|
BEGIN;
|
|
UPDATE t1 SET b = 'update2' WHERE a <= 100;
|
|
SAVEPOINT spt1;
|
|
UPDATE t1 SET b = '';
|
|
--error ER_UNKNOWN_ERROR
|
|
ROLLBACK TO SAVEPOINT spt1;
|
|
--error ER_UNKNOWN_ERROR
|
|
UPDATE t1 SET b = 'upd' WHERE a = 10050;
|
|
ROLLBACK;
|
|
SELECT * FROM t1 ORDER BY pk;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--source suite/xengine/include/check_xengine_log_error.inc
|