summaryrefslogtreecommitdiff
path: root/storage/innobase/que/que0que.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-05-24 18:09:22 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-05-24 18:23:16 +0300
commit8acf4d6f783e5a5f736624064989b88867143685 (patch)
tree87c5565c66e4754e16150ff85f9b3834646eca3b /storage/innobase/que/que0que.cc
parent9497a646791fd350e3e96611e73f69d10d24bca8 (diff)
downloadmariadb-git-8acf4d6f783e5a5f736624064989b88867143685.tar.gz
Follow-up fixes for MDEV-10139 Support for InnoDB SEQUENCE objects
Because SEQUENCE objects or NO_ROLLBACK tables do not support locking or MVCC or transactions, avoid starting a transaction. row_upd_step(): Do not start a transaction. Let the caller do that. que_thr_step(): Call trx_start_if_not_started_xa() for QUE_NODE_UPDATE. (The InnoDB SQL parser is not used for accessing NO_ROLLBACK tables.) row_ins_step(): Correct a too strict assertion and comment about concurrency. Multiple concurrent readers are allowed. row_update_for_mysql_using_upd_graph(): Do not start the transaction for NO_ROLLBACK tables. row_search_mvcc(): For NO_ROLLBACK tables, skip locking even inside LOCK TABLES. Only call trx_start_if_not_started() at the start of a statement, not for each individual request.
Diffstat (limited to 'storage/innobase/que/que0que.cc')
-rw-r--r--storage/innobase/que/que0que.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/storage/innobase/que/que0que.cc b/storage/innobase/que/que0que.cc
index 1aebef93ce5..fa0a429c283 100644
--- a/storage/innobase/que/que0que.cc
+++ b/storage/innobase/que/que0que.cc
@@ -1031,6 +1031,7 @@ que_thr_step(
} else if (type == QUE_NODE_INSERT) {
thr = row_ins_step(thr);
} else if (type == QUE_NODE_UPDATE) {
+ trx_start_if_not_started_xa(thr_get_trx(thr), true);
thr = row_upd_step(thr);
} else if (type == QUE_NODE_FETCH) {
thr = fetch_step(thr);