summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2005-07-20 20:02:36 +0400
committerunknown <konstantin@mysql.com>2005-07-20 20:02:36 +0400
commitec55fec92dd2a1cbb502345aba259b5fdfec6f5f (patch)
tree67f17393fe4e37a40bbcdee210b4e126d3cbb834 /sql/sql_select.h
parentb6823b66922c8ea7325541a8c7c132e9027fa412 (diff)
downloadmariadb-git-ec55fec92dd2a1cbb502345aba259b5fdfec6f5f.tar.gz
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.
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r--sql/sql_select.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h
index 7f6d661a4de..1fa246370c6 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -389,6 +389,12 @@ class Cursor: public Sql_alloc, public Query_arena
TABLE *derived_tables;
/* List of items created during execution */
query_id_t query_id;
+ struct Engine_info
+ {
+ const handlerton *ht;
+ void *read_view;
+ };
+ Engine_info ht_info[MAX_HA];
public:
Item_change_list change_list;
select_send result;