From: Tor Didriksen Date: June 28 2011 7:25am Subject: bzr push into mysql-trunk branch (tor.didriksen:3236 to 3237) List-Archive: http://lists.mysql.com/commits/139944 Message-Id: <20110628072500.ACE84141@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3237 Tor Didriksen 2011-06-28 [merge] merge opt-team => trunk added: mysql-test/r/join_cache_jcl0.result mysql-test/t/join_cache_jcl0.test modified: mysql-test/include/join_cache.inc mysql-test/include/subquery.inc mysql-test/include/subquery_mat.inc mysql-test/include/subquery_sj.inc mysql-test/r/count_distinct.result mysql-test/r/distinct.result mysql-test/r/group_by.result mysql-test/r/join_cache_jcl1.result mysql-test/r/join_cache_jcl2.result mysql-test/r/join_cache_jcl3.result mysql-test/r/join_cache_jcl4.result mysql-test/r/join_cache_jcl5.result mysql-test/r/join_cache_jcl6.result mysql-test/r/join_cache_jcl7.result mysql-test/r/join_cache_jcl8.result mysql-test/r/join_nested.result mysql-test/r/join_nested_jcl6.result mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/null_key_all.result mysql-test/r/null_key_icp.result mysql-test/r/null_key_none.result mysql-test/r/order_by_all.result mysql-test/r/order_by_icp_mrr.result mysql-test/r/order_by_none.result mysql-test/r/range_all.result mysql-test/r/select_all.result mysql-test/r/select_all_jcl6.result mysql-test/r/select_found.result mysql-test/r/select_icp_mrr.result mysql-test/r/select_icp_mrr_jcl6.result mysql-test/r/select_none.result mysql-test/r/select_none_jcl6.result mysql-test/r/subquery_all.result mysql-test/r/subquery_all_jcl6.result mysql-test/r/subquery_mat.result mysql-test/r/subquery_mat_all.result mysql-test/r/subquery_mat_none.result mysql-test/r/subquery_nomat_nosj.result mysql-test/r/subquery_nomat_nosj_jcl6.result mysql-test/r/subquery_none.result mysql-test/r/subquery_none_jcl6.result mysql-test/r/subquery_sj_all.result mysql-test/r/subquery_sj_all_jcl6.result mysql-test/r/subquery_sj_all_jcl7.result mysql-test/r/subquery_sj_dupsweed.result mysql-test/r/subquery_sj_dupsweed_jcl6.result mysql-test/r/subquery_sj_dupsweed_jcl7.result mysql-test/r/subquery_sj_firstmatch.result mysql-test/r/subquery_sj_firstmatch_jcl6.result mysql-test/r/subquery_sj_firstmatch_jcl7.result mysql-test/r/subquery_sj_loosescan.result mysql-test/r/subquery_sj_loosescan_jcl6.result mysql-test/r/subquery_sj_loosescan_jcl7.result mysql-test/r/subquery_sj_mat.result mysql-test/r/subquery_sj_mat_jcl6.result mysql-test/r/subquery_sj_mat_jcl7.result mysql-test/r/subquery_sj_mat_nosj.result mysql-test/r/subquery_sj_none.result mysql-test/r/subquery_sj_none_jcl6.result mysql-test/r/subquery_sj_none_jcl7.result mysql-test/r/subselect_innodb.result mysql-test/t/join_outer.test sql/item_subselect.cc sql/item_subselect.h sql/opt_range.cc sql/opt_sum.cc sql/sql_base.cc sql/sql_join_cache.cc sql/sql_select.cc sql/sql_select.h 3236 Tor Didriksen 2011-06-24 Bug#12590211 - ADD BOUNDS CHECK ON REF_POINTER_ARRAY AND FRIENDS Cleanup the Item** and Item*** code for ref_pointer_array. Wrap the array(s) in a container, so we can do bounds checks. @ sql/item.cc Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item.h Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_cmpfunc.cc Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_cmpfunc.h Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_func.cc Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_func.h Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_row.cc Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_row.h Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_strfunc.cc Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_strfunc.h Introduce Ref_ptr_array for split_sum_funcN functions. @ sql/item_subselect.cc Don't use select_lex->ref_pointer_array, use the "slice" owned by the JOIN instance instead. @ sql/sql_array.h New, templatized, array class. @ sql/sql_derived.cc Remove ref_pointer_array from mysql_select() function signature. @ sql/sql_lex.cc In setup_ref_array(), add sanity check that that the size of ref_pointer_array does not change. @ sql/sql_parse.cc Remove ref_pointer_array from mysql_select() function signature. @ sql/sql_select.cc Changed several functions from xx_(.. Item ** ..) to xx_(.. Ref_ptr_array ..) Remove ref_pointer_array from mysql_select() function signature. @ sql/sql_select.h Document usage of ref_pointer_array. Change from Item** to Ref_ptr_array. Re-wrote setter functions. @ sql/sql_union.cc For UNION, the 'n_sum_items' are accumulated in the "global_parameters" select_lex. This number must be propagated to setup_ref_array() When preparing a 'fake_select_lex' we need to use global_parameters->order_list rather than fake_select_lex->order_list (see comments inside st_select_lex_unit::cleanup) @ sql/sql_yacc.yy Reset parsing_place when done parsing 'SHOW' and 'DESCRIBE' @ unittest/gunit/bounds_checked_array-t.cc New unit test. added: unittest/gunit/bounds_checked_array-t.cc modified: sql/item.cc sql/item.h sql/item_cmpfunc.cc sql/item_cmpfunc.h sql/item_func.cc sql/item_func.h sql/item_row.cc sql/item_row.h sql/item_strfunc.cc sql/item_strfunc.h sql/item_subselect.cc sql/item_sum.cc sql/sql_array.h sql/sql_base.cc sql/sql_base.h sql/sql_derived.cc sql/sql_do.cc sql/sql_insert.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_load.cc sql/sql_parse.cc sql/sql_prepare.cc sql/sql_select.cc sql/sql_select.h sql/sql_union.cc sql/sql_update.cc sql/sql_yacc.yy unittest/gunit/CMakeLists.txt Diff too large for email (55954 lines, the limit is 10000). No bundle (reason: useless for push emails).