When we have successfully optimized a MIN or MAX aggregate into an indexscan,
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 27 Mar 2008 19:06:23 +0000 (19:06 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 27 Mar 2008 19:06:23 +0000 (19:06 +0000)
commitfe0604d97c748ec6b684db8418c62abd2b2399b8
tree54561e9f831ba86ab7693df4aed702833fc89392
parentb8eb06119d7b4318e92715bd66065ac6542c9894
When we have successfully optimized a MIN or MAX aggregate into an indexscan,
the query result must be exactly one row (since we don't do this when there's
any GROUP BY).  Therefore any ORDER BY or DISTINCT attached to the query is
useless and can be dropped.  Aside from saving useless cycles, this protects
us against problems with matching the hacked-up tlist entries to sort clauses,
as seen in a bug report from Taiki Yamaguchi.  We might need to work harder
if we ever try to optimize grouped queries with this approach, but this
solution will do for now.
src/backend/optimizer/plan/planner.c