summaryrefslogtreecommitdiff
path: root/innobase/include/read0read.h
diff options
context:
space:
mode:
Diffstat (limited to 'innobase/include/read0read.h')
-rw-r--r--innobase/include/read0read.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/innobase/include/read0read.h b/innobase/include/read0read.h
index db6bf888095..7a91248cf7f 100644
--- a/innobase/include/read0read.h
+++ b/innobase/include/read0read.h
@@ -68,7 +68,34 @@ void
read_view_print(
/*============*/
read_view_t* view); /* in: read view */
+/*************************************************************************
+Create a consistent cursor view for mysql to be used in cursors. In this
+consistent read view modifications done by the creating transaction or future
+transactions are not visible. */
+
+cursor_view_t*
+read_cursor_view_create_for_mysql(
+/*==============================*/
+ trx_t* cr_trx);/* in: trx where cursor view is created */
+/*************************************************************************
+Close a given consistent cursor view for mysql and restore global read view
+back to a transaction read view. */
+
+void
+read_cursor_view_close_for_mysql(
+/*=============================*/
+ trx_t* trx, /* in: trx */
+ cursor_view_t* curview); /* in: cursor view to be closed */
+/*************************************************************************
+This function sets a given consistent cursor view to a transaction
+read view if given consistent cursor view is not NULL. Otherwise, function
+restores a global read view to a transaction read view. */
+void
+read_cursor_set_for_mysql(
+/*======================*/
+ trx_t* trx, /* in: transaction where cursor is set */
+ cursor_view_t* curview);/* in: consistent cursor view to be set */
/* Read view lists the trx ids of those transactions for which a consistent
read should not see the modifications to the database. */
@@ -100,6 +127,20 @@ struct read_view_struct{
/* List of read views in trx_sys */
};
+/* Implement InnoDB framework to support consistent read views in
+cursors. This struct holds both heap where consistent read view
+is allocated and pointer to a read view. */
+
+struct cursor_view_struct{
+ mem_heap_t* heap;
+ /* Memory heap for the cursor view */
+ read_view_t* read_view;
+ /* Consistent read view of the cursor*/
+ ulint n_mysql_tables_in_use;
+ /* number of Innobase tables used in the
+ processing of this cursor */
+};
+
#ifndef UNIV_NONINL
#include "read0read.ic"
#endif