diff options
author | Michael Widenius <monty@askmonty.org> | 2011-12-11 19:28:05 +0200 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2011-12-11 19:28:05 +0200 |
commit | 24e452a208adebedce6a8a418265fced66bfb027 (patch) | |
tree | 83bc0c6e237fbd9f9dcbd2ac79f03a3b86756239 /sql/sql_lex.cc | |
parent | 8a09adb3eaf036b652b11afea7d9d86a978fa566 (diff) | |
parent | 148587461954b544355bc808a89bfed1a70694e1 (diff) | |
download | mariadb-git-24e452a208adebedce6a8a418265fced66bfb027.tar.gz |
Merge with 5.1 & fixes to IGNORE handling
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r-- | sql/sql_lex.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index e8a446f9c4f..f29f51325a9 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1,4 +1,5 @@ -/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc. +/* + Copyright (c) 2000, 2011, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -11,7 +12,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ /* A lexical scanner on a temporary buffer with a yacc interface */ @@ -360,6 +362,7 @@ void lex_start(THD *thd) lex->server_options.port= -1; lex->is_lex_started= TRUE; + lex->used_tables= 0; DBUG_VOID_RETURN; } @@ -1569,7 +1572,7 @@ void st_select_lex_node::init_query() options= 0; sql_cache= SQL_CACHE_UNSPECIFIED; linkage= UNSPECIFIED_TYPE; - no_error= no_table_names_allowed= 0; + no_table_names_allowed= 0; uncacheable= 0; } @@ -1643,6 +1646,8 @@ void st_select_lex::init_query() is_prep_leaf_list_saved= FALSE; bzero((char*) expr_cache_may_be_used, sizeof(expr_cache_may_be_used)); + m_non_agg_field_used= false; + m_agg_func_used= false; } void st_select_lex::init_select() @@ -1675,9 +1680,10 @@ void st_select_lex::init_select() non_agg_fields.empty(); cond_value= having_value= Item::COND_UNDEF; inner_refs_list.empty(); - full_group_by_flag= 0; insert_tables= 0; merged_into= 0; + m_non_agg_field_used= false; + m_agg_func_used= false; } /* @@ -2058,6 +2064,9 @@ bool st_select_lex::setup_ref_array(THD *thd, uint order_group_num) if (ref_pointer_array) DBUG_RETURN(0); + // find_order_in_list() may need some extra space, so multiply by two. + order_group_num*= 2; + /* We have to create array in prepared statement memory if it is a prepared statement |