summaryrefslogtreecommitdiff
path: root/innobase/read
diff options
context:
space:
mode:
authorunknown <jan@hundin.mysql.fi>2005-08-18 06:38:01 +0300
committerunknown <jan@hundin.mysql.fi>2005-08-18 06:38:01 +0300
commitbbd4f64aca7e7218ce39b6d9e115f16a08e58a8e (patch)
tree08ebb7e679caa2363494ae8f2e6b133a7b44def9 /innobase/read
parent4d2bf4befcf6a91978c60b9a402301e864ed999e (diff)
downloadmariadb-git-bbd4f64aca7e7218ce39b6d9e115f16a08e58a8e.tar.gz
Allow consistent cursor view see changes made by creating transaction.
This is quick fix and needs to be fixed when semi-consistent high-granularity read view is implemented (Bug #12456).
Diffstat (limited to 'innobase/read')
-rw-r--r--innobase/read/read0read.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/innobase/read/read0read.c b/innobase/read/read0read.c
index dc1ae2f1a16..06349c1fd39 100644
--- a/innobase/read/read0read.c
+++ b/innobase/read/read0read.c
@@ -310,11 +310,13 @@ read_cursor_view_create_for_mysql(
n = 0;
trx = UT_LIST_GET_FIRST(trx_sys->trx_list);
- /* No active transaction should be visible, not even cr_trx !*/
+ /* No active transaction should be visible, except cr_trx.
+ This is quick fix for a bug 12456 and needs to be fixed when
+ semi-consistent high-granularity read view is implemented. */
while (trx) {
- if (trx->conc_state == TRX_ACTIVE ||
- trx->conc_state == TRX_PREPARED) {
+ if (trx != cr_trx && (trx->conc_state == TRX_ACTIVE ||
+ trx->conc_state == TRX_PREPARED)) {
read_view_set_nth_trx_id(view, n, trx->id);