diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-05-24 18:09:22 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-05-24 18:23:16 +0300 |
commit | 8acf4d6f783e5a5f736624064989b88867143685 (patch) | |
tree | 87c5565c66e4754e16150ff85f9b3834646eca3b /storage/innobase/que/que0que.cc | |
parent | 9497a646791fd350e3e96611e73f69d10d24bca8 (diff) | |
download | mariadb-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.cc | 1 |
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); |