mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Implement MySQL framework to support consistent read views in
cursors. This should fix Bug#11813 when InnoDB part is in (tested with a draft patch). The idea of the patch is that if a storage engine supports consistent read views, we open one when open a cursor, set is as the active view when fetch from the cursor, and close together with cursor close. sql/examples/ha_archive.cc: - extend handlerton with cursors methods; fix coding style sql/examples/ha_example.cc: - extend handlerton with cursors methods; fix coding style sql/examples/ha_tina.cc: - extend handlerton with cursors methods; fix coding style sql/ha_berkeley.cc: - extend handlerton with cursors methods sql/ha_blackhole.cc: - extend handlerton with cursors methods; fix coding style sql/ha_federated.cc: - extend handlerton with cursors methods; fix coding style sql/ha_heap.cc: - extend handlerton with cursors methods; fix coding style sql/ha_innodb.cc: - extend handlerton with cursors methods sql/ha_myisam.cc: - extend handlerton with cursors methods; fix coding style sql/ha_myisammrg.cc: - extend handlerton with cursors methods; fix coding style sql/ha_ndbcluster.cc: - extend handlerton with cursors methods sql/handler.h: - extend handlerton with cursors methods sql/sql_select.cc: - create a consistent read view when we open a cursor, set it for a fetch, and free when we closing the cursor. sql/sql_select.h: - add Cursor::ht_info to remember read views used in a cursor. tests/mysql_client_test.c: Disable an assert that will be no longer valid when consistent read views in InnoDB are used.
This commit is contained in:
@ -13874,10 +13874,12 @@ static void test_bug10760()
|
||||
printf("Fetched row %s\n", id_buf);
|
||||
rc= mysql_rollback(mysql); /* should close the cursor */
|
||||
myquery(rc);
|
||||
#if 0
|
||||
rc= mysql_stmt_fetch(stmt);
|
||||
DIE_UNLESS(rc);
|
||||
if (!opt_silent)
|
||||
printf("Got error (as expected): %s\n", mysql_error(mysql));
|
||||
#endif
|
||||
}
|
||||
|
||||
mysql_stmt_close(stmt);
|
||||
|
Reference in New Issue
Block a user