diff options
author | unknown <sergefp@mysql.com> | 2005-08-03 03:47:07 +0000 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2005-08-03 03:47:07 +0000 |
commit | e442059c0dbfeadaabf7e12e905fec0b94c153a6 (patch) | |
tree | 551d1a44fe7c14ba73b87378e84fb04d7228ab30 /sql/sp_head.h | |
parent | 88105618c5eba3714189875a8d799cb7503bd657 (diff) | |
parent | b323667ffc7176482073ca7d626560dcd8d7ee75 (diff) | |
download | mariadb-git-e442059c0dbfeadaabf7e12e905fec0b94c153a6.tar.gz |
Manual merge
mysql-test/r/sp.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_trigger.h:
Auto merged
Diffstat (limited to 'sql/sp_head.h')
-rw-r--r-- | sql/sp_head.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/sql/sp_head.h b/sql/sp_head.h index 09b9c8f47a1..e15b68be158 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -282,6 +282,10 @@ private: /* Multi-set representing optimized list of tables to be locked by this routine. Does not include tables which are used by invoked routines. + + Note: for prelocking-free SPs this multiset is constructed too. + We do so because the same instance of sp_head may be called both + in prelocked mode and in non-prelocked mode. */ HASH m_sptabs; @@ -383,7 +387,8 @@ class sp_lex_keeper public: sp_lex_keeper(LEX *lex, bool lex_resp) - : m_lex(lex), m_lex_resp(lex_resp) + : m_lex(lex), m_lex_resp(lex_resp), + lex_query_tables_own_last(NULL) { lex->sp_lex_in_use= TRUE; } @@ -418,6 +423,25 @@ private: for LEX deletion. */ bool m_lex_resp; + + /* + Support for being able to execute this statement in two modes: + a) inside prelocked mode set by the calling procedure or its ancestor. + b) outside of prelocked mode, when this statement enters/leaves + prelocked mode itself. + */ + + /* + List of additional tables this statement needs to lock when it + enters/leaves prelocked mode on its own. + */ + TABLE_LIST *prelocking_tables; + + /* + The value m_lex->query_tables_own_last should be set to this when the + statement enters/leaves prelocked mode on its own. + */ + TABLE_LIST **lex_query_tables_own_last; }; |