Commit graph

1 commit

Author SHA1 Message Date
unknown
d945033292 WL#1724 "Min/Max Optimization for Queries with Group By Clause"
- after-review changes
- merged with the source tree from 204-08-27


mysql-test/r/distinct.result:
  Different plans due to group-by optimization.
sql/ha_myisam.cc:
  More general interface to key_copy.
sql/handler.cc:
  More general interface to key_copy.
sql/item.cc:
  New method to collect all Item_field objects. Used by Item::walk.
sql/item.h:
  Several methods to collect different kinds of items from expression trees.
  Used by Item::walk.
sql/item_sum.cc:
  Added helper to collect Item_sum objects.
sql/item_sum.h:
  Methods to collect and test Item_sum objects.
sql/key.cc:
  More general interface to key_copy and key_restore.
sql/mysql_priv.h:
  More general interface to key_copy and key_restore.
sql/opt_range.cc:
  Complete implementaion of WL#1724 "Min/Max Optimization for Queries with Group By Clause".
sql/opt_range.h:
  Complete implementaion of WL#1724 "Min/Max Optimization for Queries with Group By Clause".
sql/opt_sum.cc:
  simple_pred is re-used in opt_range.cc
sql/sql_acl.cc:
  More general interface to key_copy and key_restore.
sql/sql_handler.cc:
  More general interface to key_copy.
sql/sql_insert.cc:
  More general interface to key_copy.
sql/sql_select.cc:
  Changes to hook the new QUICK_GROUP_MIN_MAX_SELECT due to two differences from all other
  quick selects:
  1)
  This quick select may be created (and used) even if there is no WHERE clause.
  Several places assumed that a QUICK_SELECT is constructed only if there is a WHERE clause,
  which had to be changed so that QUICK_GROUP_MIN_MAX can be used.
  2)
  Unlike all other quick selects, this QUICK_GROUP_MIN_MAX_SELECT operates for GROUP BY queries.
  Since for the caller the quick select already produces one result tuple per group, there is
  no need to call end_send_group, instead we have to call end_send as for a regular quick select.
sql/sql_select.h:
  simple_pred is re-used in opt_range.cc
2004-08-27 16:37:13 +03:00