From: Dmitry Lenev Date: November 30 2010 8:31am Subject: bzr commit into mysql-trunk-bugfixing branch (Dmitry.Lenev:3392) Bug#27480 List-Archive: http://lists.mysql.com/commits/125454 X-Bug: 27480 Message-Id: <20101130083106.C357E1E520D@mockturtle> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0190997846==" --===============0190997846== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/dlenev/src/bzr/mysql-trunk-bugfixing-bug27480/ based on revid:alexander.nozdrin@stripped 3392 Dmitry Lenev 2010-11-30 Prerequisite patch for Bug#27480 (Extend CREATE TEMPORARY TABLES privilege to allow temp table operations). Review fixes in progress. modified: sql/sp_head.cc sql/sql_view.cc === modified file 'sql/sp_head.cc' --- a/sql/sp_head.cc 2010-11-29 14:13:07 +0000 +++ b/sql/sp_head.cc 2010-11-30 08:30:48 +0000 @@ -2952,9 +2952,6 @@ sp_lex_keeper::reset_lex_and_exec_core(T reinit_stmt_before_use(thd, m_lex); if (open_tables) - res= open_and_process_temporary_table_list(thd, m_lex->query_tables); - - if (!res && open_tables) res= instr->exec_open_and_lock_tables(thd, m_lex->query_tables); if (!res) @@ -3044,8 +3041,9 @@ int sp_instr::exec_open_and_lock_tables( Check whenever we have access to tables for this statement and open and lock them before executing instructions core function. */ - if (check_table_access(thd, SELECT_ACL, tables, FALSE, UINT_MAX, FALSE) - || open_and_lock_tables(thd, tables, TRUE, 0)) + if (open_and_process_temporary_table_list(thd, tables) || + check_table_access(thd, SELECT_ACL, tables, FALSE, UINT_MAX, FALSE) || + open_and_lock_tables(thd, tables, TRUE, 0)) result= -1; else result= 0; === modified file 'sql/sql_view.cc' --- a/sql/sql_view.cc 2010-11-29 14:13:07 +0000 +++ b/sql/sql_view.cc 2010-11-30 08:30:48 +0000 @@ -441,6 +441,12 @@ bool mysql_create_view(THD *thd, TABLE_L goto err; } + /* + Open matching temporary tables for table list elements added by + prelocking algorithm. We need this in order to catch cases when + view uses functions that use temporary tables (note that this + check is not robust). + */ if (open_and_process_temporary_table_list(thd, lex->query_tables)) { res= TRUE; --===============0190997846== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/dmitry.lenev@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: dmitry.lenev@stripped # target_branch: file:///home/dlenev/src/bzr/mysql-trunk-bugfixing-\ # bug27480/ # testament_sha1: 22928243cb567da1acfedd7c38d0e257e0376515 # timestamp: 2010-11-30 11:31:06 +0300 # base_revision_id: alexander.nozdrin@stripped\ # r3tx8bmhtx7pdcn2 # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWUkufWAAAlLfgFAQWHf/938n 3uC////0UAWO5vNAHevO23u7cB2wCUSaUybJ6SZqbEzUmjIxAA00yYgGhoVPST0g8hDQxMgZDI0M IDQ0aaD0gJQmpPJqTIekMmajTI0AGgABoGgCSU00JqPI1G0jahtJ6jTRoaNqANAAAJJCNGhoCNEw mpmqeIJkaPUaGgAaaQCROkvRSMNmclzUFv4/fbcSVU8CX1fbmCRUBxXVlau1sPPcwCByDE69pebR 3kQzMMyr1/FfL5Zp7289mjfAqIRd6Fq+8+C2X18eZjBd2cMszauY/Hj8WmrpYeN+sZ1hpuQgyWXz zNJLUtGQNOnQhOEaMRjvSu4Ssv2yHxlQgqAt0I3LZeymwyHJWh94ZFgZoVwbUE2jnvsyASF+6iPx lwxZoXVVx7KkxxEs4AcUevVYwpMyVAL6G+kZkeIEIPQmEphARoA/lCCO0hSQAiQD0oppRSJ9ReOM eVlNeLJt90EE655Ky+3HYQS1TMsRqJzQl6Me3WgDFDnmwzDBFOS8pzNCsxjmZDvVdtOToK8x2Xmr BPI8wrZCrNTIwN+GzOQ77eMSQqVbm9ECyBzR8jAq0KgHG0ByPDcPrhJwGTy59dxyLayJ2HcMbwNx YjlIbeVBewrh2SkUcZ11KCCcC8lRi1qqKgIfI4nU6EAOV0yVgTLTeROVdcTfKl+BoQx9HSsuk4oY fM0NvAt9CIE912xWcQKstGISwCNeQ4owbG4ZD2M/aYXPKCJXktZzCFJMbaTP+RkDm2MznCMbRzhG 1xVRiww4npEgVWTqvjbciGJHbq7PCgWBkVPWSZtpMmOIVZKTnCqplfS1MoFGQA0bQqREUjUWrNTc ZrClDi/nMz0WoPn89D6t8qiMAIAE9S0MB4e5eZwLX4okHPYFVoK+mIm+2T0ei4sc1k12WgnIWIvu lxDBIU4ToTYxwFZo0wh3eDQ51xccYreYin/jod3G60IZjkl0iJElC9pK1ByEOpZyKGwZ0I40RqXO zhFY1g3LrPHOi6i8nloHk5eHUFWkjuCECEpe1lPZ6wJFTA1ZcZl5PD8RxpYYe8VnwKfjPDmdvT3/ 7CVT2jHCWREwlhlqaNQWKkkVW/gIybFKEQM5DGXEhv02sO8g2opKyehqRSXEZEHT1HOm5ap1wwAF DJxyxq62npOHeWM6xWIbfzDgMOspgc+nG/Bj2DFnaBRanBdj8Y3sUrgVbSN1OAtCb6XWQ1kS9GT4 GpGyKwV1RNKXxGiFD0RIlRE6oMU5tmQpNgzebjdHEZuQEPGkaTExbNhlHpgwFEAY2is5h5CKnSxg yYpLs4lFFQV02AJGQwowCyEmhlS25mV02kNAcuIOWMWgbDH3WoajqjTmrRPgQVSPJFrePh+nHSnY iRElMC1G/eRntSGwHkIETU0ZPNEO9i1CpFTgeuh4FIk4cwzQ9YDxcxYydo2L42HccULY2hJqyOsy 5HzOQGncbi3oSssTlaZD33MxE2IYch468qjChD0oUQEQDfTRy1R3FpWVirZGI5SOphzMzgSN42o2 IGaSsRvYh9Wej7j5iU0eCo2UJ8F0NuDkZHQXEZS4MMDeKKF8aw1Hq3a4+zv75WTlB2F0WU1THdsa BBjRAkFbJzPek7ywzXrqrIqLELNlUqOIk9axWUXFtisgK2J3UZVpa4oyjXhwKHkIXtHAB6ztKxMV hf5nmzMUhq5xaFRa6Qrbr3Di9zGoZGAwzKihSjTQqXYPDt+A470xV4EpdZnhCJNF4ZSEOqYHepHp Q80N3w6HXu8RrHAXRJkeZwEMWp3XisXo7D3DtzBElA+s9pzEUo1Myw8iCPzx2AFZRwvRUpHiSoMD 5mJ/4u5IpwoSCSXPrAA= --===============0190997846==--