Loading sql/handler.h +3 −3 Original line number Diff line number Diff line Loading @@ -630,9 +630,9 @@ struct handlerton int (*recover)(XID *xid_list, uint len); int (*commit_by_xid)(XID *xid); int (*rollback_by_xid)(XID *xid); void *(*create_cursor_read_view)(); void (*set_cursor_read_view)(void *); void (*close_cursor_read_view)(void *); void *(*create_cursor_read_view)(THD *thd); void (*set_cursor_read_view)(THD *thd, void *read_view); void (*close_cursor_read_view)(THD *thd, void *read_view); handler *(*create)(TABLE_SHARE *table, MEM_ROOT *mem_root); void (*drop_database)(char* path); int (*panic)(enum ha_panic_function flag); Loading sql/sql_cursor.cc +4 −4 Original line number Diff line number Diff line Loading @@ -323,7 +323,7 @@ Sensitive_cursor::post_open(THD *thd) if (ht->create_cursor_read_view) { info->ht= ht; info->read_view= (ht->create_cursor_read_view)(); info->read_view= (ht->create_cursor_read_view)(thd); ++info; } } Loading Loading @@ -433,7 +433,7 @@ Sensitive_cursor::fetch(ulong num_rows) thd->set_n_backup_active_arena(this, &backup_arena); for (info= ht_info; info->read_view ; info++) (info->ht->set_cursor_read_view)(info->read_view); (info->ht->set_cursor_read_view)(thd, info->read_view); join->fetch_limit+= num_rows; Loading @@ -454,7 +454,7 @@ Sensitive_cursor::fetch(ulong num_rows) reset_thd(thd); for (info= ht_info; info->read_view; info++) (info->ht->set_cursor_read_view)(0); (info->ht->set_cursor_read_view)(thd, 0); if (error == NESTED_LOOP_CURSOR_LIMIT) { Loading Loading @@ -487,7 +487,7 @@ Sensitive_cursor::close() for (Engine_info *info= ht_info; info->read_view; info++) { (info->ht->close_cursor_read_view)(info->read_view); (info->ht->close_cursor_read_view)(thd, info->read_view); info->read_view= 0; info->ht= 0; } Loading storage/innobase/handler/ha_innodb.cc +8 −4 Original line number Diff line number Diff line Loading @@ -7529,12 +7529,14 @@ This consistent view is then used inside of MySQL when accessing records using a cursor. */ void* innobase_create_cursor_view(void) /*=============================*/ /* out: Pointer to cursor view or NULL */ innobase_create_cursor_view( /*========================*/ /* out: pointer to cursor view or NULL */ THD* thd) /* in: user thread handle */ { return(read_cursor_view_create_for_mysql( check_trx_exists(current_thd))); check_trx_exists(thd))); } /*********************************************************************** Loading @@ -7545,6 +7547,7 @@ corresponding MySQL thread still lacks one. */ void innobase_close_cursor_view( /*=======================*/ THD* thd, /* in: user thread handle */ void* curview)/* in: Consistent read view to be closed */ { read_cursor_view_close_for_mysql(check_trx_exists(current_thd), Loading @@ -7560,6 +7563,7 @@ restored to a transaction read view. */ void innobase_set_cursor_view( /*=====================*/ THD* thd, /* in: user thread handle */ void* curview)/* in: Consistent cursor view to be set */ { read_cursor_set_for_mysql(check_trx_exists(current_thd), Loading storage/innobase/handler/ha_innodb.h +8 −3 Original line number Diff line number Diff line Loading @@ -313,9 +313,11 @@ This consistent view is then used inside of MySQL when accessing records using a cursor. */ void* innobase_create_cursor_view(void); /*=============================*/ /* out: Pointer to cursor view or NULL */ innobase_create_cursor_view( /*========================*/ /* out: pointer to cursor view or NULL */ THD* thd); /* in: user thread handle */ /*********************************************************************** Close the given consistent cursor view of a transaction and restore Loading @@ -325,8 +327,10 @@ corresponding MySQL thread still lacks one. */ void innobase_close_cursor_view( /*=======================*/ THD* thd, /* in: user thread handle */ void* curview); /* in: Consistent read view to be closed */ /*********************************************************************** Set the given consistent cursor view to a transaction which is created if the corresponding MySQL thread still lacks one. If the given Loading @@ -336,4 +340,5 @@ restored to a transaction read view. */ void innobase_set_cursor_view( /*=====================*/ THD* thd, /* in: user thread handle */ void* curview); /* in: Consistent read view to be set */ Loading
sql/handler.h +3 −3 Original line number Diff line number Diff line Loading @@ -630,9 +630,9 @@ struct handlerton int (*recover)(XID *xid_list, uint len); int (*commit_by_xid)(XID *xid); int (*rollback_by_xid)(XID *xid); void *(*create_cursor_read_view)(); void (*set_cursor_read_view)(void *); void (*close_cursor_read_view)(void *); void *(*create_cursor_read_view)(THD *thd); void (*set_cursor_read_view)(THD *thd, void *read_view); void (*close_cursor_read_view)(THD *thd, void *read_view); handler *(*create)(TABLE_SHARE *table, MEM_ROOT *mem_root); void (*drop_database)(char* path); int (*panic)(enum ha_panic_function flag); Loading
sql/sql_cursor.cc +4 −4 Original line number Diff line number Diff line Loading @@ -323,7 +323,7 @@ Sensitive_cursor::post_open(THD *thd) if (ht->create_cursor_read_view) { info->ht= ht; info->read_view= (ht->create_cursor_read_view)(); info->read_view= (ht->create_cursor_read_view)(thd); ++info; } } Loading Loading @@ -433,7 +433,7 @@ Sensitive_cursor::fetch(ulong num_rows) thd->set_n_backup_active_arena(this, &backup_arena); for (info= ht_info; info->read_view ; info++) (info->ht->set_cursor_read_view)(info->read_view); (info->ht->set_cursor_read_view)(thd, info->read_view); join->fetch_limit+= num_rows; Loading @@ -454,7 +454,7 @@ Sensitive_cursor::fetch(ulong num_rows) reset_thd(thd); for (info= ht_info; info->read_view; info++) (info->ht->set_cursor_read_view)(0); (info->ht->set_cursor_read_view)(thd, 0); if (error == NESTED_LOOP_CURSOR_LIMIT) { Loading Loading @@ -487,7 +487,7 @@ Sensitive_cursor::close() for (Engine_info *info= ht_info; info->read_view; info++) { (info->ht->close_cursor_read_view)(info->read_view); (info->ht->close_cursor_read_view)(thd, info->read_view); info->read_view= 0; info->ht= 0; } Loading
storage/innobase/handler/ha_innodb.cc +8 −4 Original line number Diff line number Diff line Loading @@ -7529,12 +7529,14 @@ This consistent view is then used inside of MySQL when accessing records using a cursor. */ void* innobase_create_cursor_view(void) /*=============================*/ /* out: Pointer to cursor view or NULL */ innobase_create_cursor_view( /*========================*/ /* out: pointer to cursor view or NULL */ THD* thd) /* in: user thread handle */ { return(read_cursor_view_create_for_mysql( check_trx_exists(current_thd))); check_trx_exists(thd))); } /*********************************************************************** Loading @@ -7545,6 +7547,7 @@ corresponding MySQL thread still lacks one. */ void innobase_close_cursor_view( /*=======================*/ THD* thd, /* in: user thread handle */ void* curview)/* in: Consistent read view to be closed */ { read_cursor_view_close_for_mysql(check_trx_exists(current_thd), Loading @@ -7560,6 +7563,7 @@ restored to a transaction read view. */ void innobase_set_cursor_view( /*=====================*/ THD* thd, /* in: user thread handle */ void* curview)/* in: Consistent cursor view to be set */ { read_cursor_set_for_mysql(check_trx_exists(current_thd), Loading
storage/innobase/handler/ha_innodb.h +8 −3 Original line number Diff line number Diff line Loading @@ -313,9 +313,11 @@ This consistent view is then used inside of MySQL when accessing records using a cursor. */ void* innobase_create_cursor_view(void); /*=============================*/ /* out: Pointer to cursor view or NULL */ innobase_create_cursor_view( /*========================*/ /* out: pointer to cursor view or NULL */ THD* thd); /* in: user thread handle */ /*********************************************************************** Close the given consistent cursor view of a transaction and restore Loading @@ -325,8 +327,10 @@ corresponding MySQL thread still lacks one. */ void innobase_close_cursor_view( /*=======================*/ THD* thd, /* in: user thread handle */ void* curview); /* in: Consistent read view to be closed */ /*********************************************************************** Set the given consistent cursor view to a transaction which is created if the corresponding MySQL thread still lacks one. If the given Loading @@ -336,4 +340,5 @@ restored to a transaction read view. */ void innobase_set_cursor_view( /*=====================*/ THD* thd, /* in: user thread handle */ void* curview); /* in: Consistent read view to be set */