--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