diff options
author | Sergey Glukhov <sergey.glukhov@oracle.com> | 2010-12-14 13:46:00 +0300 |
---|---|---|
committer | Sergey Glukhov <sergey.glukhov@oracle.com> | 2010-12-14 13:46:00 +0300 |
commit | e6bf102466847e992c8cec894b7ef6bb7a971c8b (patch) | |
tree | fefb04085998222a7c9fcd629b204667e76e3a20 /sql/sql_prepare.cc | |
parent | 8d311a855164416744c35742a3e1368c49ca6c1a (diff) | |
parent | fcb83cbf15653bbed15936d8eafb4fc7de3e743b (diff) | |
download | mariadb-git-e6bf102466847e992c8cec894b7ef6bb7a971c8b.tar.gz |
5.1-bugteam->5.5-bugteam merge
Diffstat (limited to 'sql/sql_prepare.cc')
-rw-r--r-- | sql/sql_prepare.cc | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 4a1d1ae7fe3..345f7158dbf 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1780,7 +1780,7 @@ static bool mysql_test_create_view(Prepared_statement *stmt) if (open_normal_and_derived_tables(thd, tables, MYSQL_OPEN_FORCE_SHARED_MDL)) goto err; - lex->view_prepare_mode= 1; + lex->context_analysis_only|= CONTEXT_ANALYSIS_ONLY_VIEW; res= select_like_stmt_test(stmt, 0, 0); err: @@ -2292,19 +2292,6 @@ end: } -/** Init PS/SP specific parse tree members. */ - -static void init_stmt_after_parse(LEX *lex) -{ - SELECT_LEX *sl= lex->all_selects_list; - /* - Switch off a temporary flag that prevents evaluation of - subqueries in statement prepare. - */ - for (; sl; sl= sl->next_select_in_list()) - sl->uncacheable&= ~UNCACHEABLE_PREPARE; -} - /** SQLCOM_PREPARE implementation. @@ -3223,6 +3210,7 @@ bool Prepared_statement::prepare(const char *packet, uint packet_len) parser_state.m_lip.multi_statements= FALSE; lex_start(thd); + lex->context_analysis_only|= CONTEXT_ANALYSIS_ONLY_PREPARE; error= parse_sql(thd, & parser_state, NULL) || thd->is_error() || @@ -3283,7 +3271,7 @@ bool Prepared_statement::prepare(const char *packet, uint packet_len) if (error == 0) { setup_set_params(); - init_stmt_after_parse(lex); + lex->context_analysis_only&= ~CONTEXT_ANALYSIS_ONLY_PREPARE; state= Query_arena::PREPARED; flags&= ~ (uint) IS_IN_USE; |