Commit a8bb376f authored by unknown's avatar unknown
Browse files

Many files:

  Push the patch of Jan Lindstrom: better comments
ha_innodb.cc:
  Partial fix for Bug #12263 : we let InnoDB always to perform a rollback on the trx object if MySQL closes a connection; but we do print a warning to the .err log if an InnoDB transaction was active; we may remove that print later, since the situation really is not a bug; MySQL just is not aware that some cursor operation started an InnoDB transaction


sql/ha_innodb.cc:
  Partial fix for Bug #12263 : we let InnoDB always to perform a rollback on the trx object if MySQL closes a connection; but we do print a warning to the .err log if an InnoDB transaction was active; we may remove that print later, since the situation really is not a bug; MySQL just is not aware that some cursor operation started an InnoDB transaction
sql/ha_innodb.h:
  Push the patch of Jan Lindstrom: better comments
innobase/trx/trx0trx.c:
  Push the patch of Jan Lindstrom: better comments
innobase/srv/srv0srv.c:
  Push the patch of Jan Lindstrom: better comments
innobase/srv/srv0start.c:
  Push the patch of Jan Lindstrom: better comments
innobase/row/row0sel.c:
  Push the patch of Jan Lindstrom: better comments
innobase/read/read0read.c:
  Push the patch of Jan Lindstrom: better comments
innobase/include/read0read.h:
  Push the patch of Jan Lindstrom: better comments
innobase/include/trx0trx.h:
  Push the patch of Jan Lindstrom: better comments
parent acc42386
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -68,7 +68,6 @@ 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
@@ -78,10 +77,9 @@ 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 and restore global read view
back to a transaction. */
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(
@@ -90,7 +88,7 @@ read_cursor_view_close_for_mysql(
	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. Otherwice, function
read view if given consistent cursor view is not NULL. Otherwise, function
restores a global read view to a transaction read view. */

void 
+5 −6
Original line number Diff line number Diff line
@@ -606,14 +606,13 @@ struct trx_struct{
					/* memory heap for the global read 
					view */
	read_view_t*	global_read_view;
					/* consistent read view used in the
					transaction is stored here if
					transaction is using a consistent
					read view associated to a cursor */
					/* consistent read view associated
					to a transaction or NULL */
	read_view_t*	read_view;	/* consistent read view used in the
					transaction or NULL, this read view
					can be normal read view associated
					to a transaction or read view
					if defined can be normal read view 
					associated to a transaction (i.e. 
					same as global_read_view) or read view
					associated to a cursor */
	/*------------------------------*/
	UT_LIST_BASE_NODE_T(trx_named_savept_t) 
+3 −3
Original line number Diff line number Diff line
@@ -347,8 +347,8 @@ read_cursor_view_create_for_mysql(
}

/*************************************************************************
Close a given consistent cursor view for and restore global read view
back to a transaction. */
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(
@@ -372,7 +372,7 @@ read_cursor_view_close_for_mysql(
	
/*************************************************************************
This function sets a given consistent cursor view to a transaction
read view if given consistent cursor view is not null. Otherwice, function
read view if given consistent cursor view is not NULL. Otherwise, function
restores a global read view to a transaction read view. */

void 
+10 −2
Original line number Diff line number Diff line
@@ -3100,6 +3100,13 @@ row_search_for_mysql(
"http://dev.mysql.com/doc/mysql/en/InnoDB_troubleshooting_datadict.html\n"
"InnoDB: how you can resolve the problem.\n",
				prebuilt->table->name);

		/* Restore a global read view back to a transaction. This 
		forces MySQL always to set a cursor view before fetch from
		a cursor. */

		trx->read_view = trx->global_read_view;

		return(DB_ERROR);
	}

@@ -4091,8 +4098,9 @@ row_search_for_mysql(
	}

func_exit:
	/* Restore a global read view back to transaction. This forces
	MySQL always to set cursor view before fetch if it is used. */
	/* Restore a global read view back to a transaction. This 
	forces MySQL always to set a cursor view before fetch from
	a cursor. */

	trx->read_view = trx->global_read_view;

+4 −0
Original line number Diff line number Diff line
@@ -1711,6 +1711,10 @@ srv_printf_innodb_monitor(
	fprintf(file, "%ld queries inside InnoDB, %lu queries in queue\n",
       		       (long) srv_conc_n_threads,
		       (ulong) srv_conc_n_waiting_threads);

	fprintf(file, "%lu read views open inside InnoDB\n",
			UT_LIST_GET_LEN(trx_sys->view_list));

        n_reserved = fil_space_get_n_reserved_extents(0);
        if (n_reserved > 0) {
                fprintf(file,
Loading