optimizer not eliminating redundant sorts - Mailing list pgsql-general

From Greg Stark
Subject optimizer not eliminating redundant sorts
Date
Msg-id 87bs1p2jok.fsf@stark.dyndns.tv
Whole thread Raw
Responses Re: optimizer not eliminating redundant sorts  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Another odd thing. This type of query seems to be causing redundant sorts.
From what I've read in the source it tries quite hard to keep track of the
sort order of subplans to avoid unnecessary sorts, so I think these are
supposed to get optimized out. I'm not sure if the group nodes can get
optimized out, but surely the sorts can.

slo=> explain select x from (select x,y from (select x,y,z from ttt group by x,y,z) as x group by x,y) as x group by x;
                                             QUERY PLAN
----------------------------------------------------------------------------------------------------
 Group  (cost=0.05..0.06 rows=1 width=16)
   ->  Sort  (cost=0.05..0.06 rows=1 width=16)
         Sort Key: x
         ->  Subquery Scan x  (cost=0.03..0.04 rows=1 width=16)
               ->  Group  (cost=0.03..0.04 rows=1 width=16)
                     ->  Sort  (cost=0.03..0.04 rows=1 width=16)
                           Sort Key: x, y
                           ->  Subquery Scan x  (cost=0.01..0.02 rows=1 width=16)
                                 ->  Group  (cost=0.01..0.02 rows=1 width=16)
                                       ->  Sort  (cost=0.01..0.02 rows=1 width=16)
                                             Sort Key: x, y, z
                                             ->  Seq Scan on ttt  (cost=0.00..0.00 rows=1 width=16)


--
greg

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: backend process crash - PL/pgSQL functions - parsing problem?
Next
From: Tom Lane
Date:
Subject: Re: Index not used with IS NULL