diff options
author | unknown <konstantin@mysql.com> | 2005-07-20 20:02:36 +0400 |
---|---|---|
committer | unknown <konstantin@mysql.com> | 2005-07-20 20:02:36 +0400 |
commit | ec55fec92dd2a1cbb502345aba259b5fdfec6f5f (patch) | |
tree | 67f17393fe4e37a40bbcdee210b4e126d3cbb834 /sql/sql_select.h | |
parent | b6823b66922c8ea7325541a8c7c132e9027fa412 (diff) | |
download | mariadb-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.h | 6 |
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; |