From: Date: March 11 2007 1:31pm Subject: bk commit into 5.1 tree (gkodinov:1.2480) BUG#20604 List-Archive: http://lists.mysql.com/commits/21691 X-Bug: 20604 Message-Id: <200703111231.l2BCVnQK026155@magare.gmz> Below is the list of changes that have just been committed into a local 5.1 repository of kgeorge. When kgeorge does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-03-11 14:31:43+02:00, gkodinov@stripped +3 -0 WL3527: post-merge updates sql_yacc.yy: WL3527: updated the diff to use correct parser words table.cc: WL3527: exteneded the fix for bug #20604 to fit the new variables sql_select.cc: WL3527: renamed used_keys to covering_keys sql/sql_select.cc@stripped, 2007-03-11 14:26:12+02:00, gkodinov@stripped +1 -1 renamed used_keys to covering_keys sql/sql_yacc.yy@stripped, 2007-03-11 14:26:41+02:00, gkodinov@stripped +1 -1 WL3527: updated the diff to use correct parser words sql/table.cc@stripped, 2007-03-11 14:29:46+02:00, gkodinov@stripped +3 -3 WL3527: exteneded the fix for bug #20604 to fit the new variables # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: gkodinov # Host: magare.gmz # Root: /home/kgeorge/mysql/autopush/WL3527-5.1-opt --- 1.503/sql/sql_select.cc 2007-03-09 17:54:11 +02:00 +++ 1.504/sql/sql_select.cc 2007-03-11 14:26:12 +02:00 @@ -654,7 +654,7 @@ void JOIN::remove_subq_pushed_predicates static void save_index_subquery_explain_info(JOIN_TAB *join_tab, Item* where) { join_tab->packed_info= TAB_INFO_HAVE_VALUE; - if (join_tab->table->used_keys.is_set(join_tab->ref.key)) + if (join_tab->table->covering_keys.is_set(join_tab->ref.key)) join_tab->packed_info |= TAB_INFO_USING_INDEX; if (where) join_tab->packed_info |= TAB_INFO_USING_WHERE; --- 1.551/sql/sql_yacc.yy 2007-03-11 11:45:10 +02:00 +++ 1.552/sql/sql_yacc.yy 2007-03-11 14:26:41 +02:00 @@ -7548,7 +7548,7 @@ index_hint_clause: } | FOR_SYM JOIN_SYM { $$= INDEX_HINT_MASK_JOIN; } | FOR_SYM ORDER_SYM BY { $$= INDEX_HINT_MASK_ORDER; } - | FOR_SYM GROUP BY { $$= INDEX_HINT_MASK_GROUP; } + | FOR_SYM GROUP_SYM BY { $$= INDEX_HINT_MASK_GROUP; } ; index_hint_type: --- 1.281/sql/table.cc 2007-03-09 16:56:01 +02:00 +++ 1.282/sql/table.cc 2007-03-11 14:29:46 +02:00 @@ -4272,11 +4272,11 @@ bool st_table_list::process_index_hints( /* apply USE INDEX */ if (!index_join[INDEX_HINT_USE].is_clear_all() || have_empty_use_join) - table->keys_in_use_for_query= index_join[INDEX_HINT_USE]; + table->keys_in_use_for_query.intersect(index_join[INDEX_HINT_USE]); if (!index_order[INDEX_HINT_USE].is_clear_all() || have_empty_use_order) - table->keys_in_use_for_order_by= index_order[INDEX_HINT_USE]; + table->keys_in_use_for_order_by.intersect (index_order[INDEX_HINT_USE]); if (!index_group[INDEX_HINT_USE].is_clear_all() || have_empty_use_group) - table->keys_in_use_for_group_by= index_group[INDEX_HINT_USE]; + table->keys_in_use_for_group_by.intersect (index_group[INDEX_HINT_USE]); /* apply IGNORE INDEX */ table->keys_in_use_for_query.subtract (index_join[INDEX_HINT_IGNORE]);