Skip site navigation (1) Skip section navigation (2)

regression ? 8.4 do not apply One-Time Filter to subquery

From: Sergey Burladyan <eshkinkot(at)gmail(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: regression ? 8.4 do not apply One-Time Filter to subquery
Date: 2009-07-02 00:08:14
Message-ID: 87ocs47xqp.fsf@seb.progtech.ru (view raw or flat)
Thread:
Lists: pgsql-performance
8.4 from CVS HEAD:
EXPLAIN ANALYZE select * from (select n, 1 as r from generate_series(1, 100000) as n union all select n, 2 from generate_series(1, 100000) as n) as x where r = 3;
                                                           QUERY PLAN                                                        
--------------------------------------------------------------------------------------------------------------------------------
 Result  (cost=0.00..30.00 rows=10 width=36) (actual time=90.723..90.723 rows=0 loops=1)
   ->  Append  (cost=0.00..30.00 rows=10 width=36) (actual time=90.720..90.720 rows=0 loops=1)
         ->  Function Scan on generate_series n  (cost=0.00..15.00 rows=5 width=36) (actual time=45.191..45.191 rows=0 loops=1)
               Filter: (1 = 3)
         ->  Function Scan on generate_series n  (cost=0.00..15.00 rows=5 width=36) (actual time=45.522..45.522 rows=0 loops=1)
               Filter: (2 = 3)
 Total runtime: 118.709 ms
(7 rows)

8.3.7:
EXPLAIN ANALYZE select * from (select n, 1 as r from generate_series(1, 100000) as n union all select n, 2 from generate_series(1, 100000) as n) as x where r = 3;
                                                QUERY PLAN
----------------------------------------------------------------------------------------------------------
 Result  (cost=0.00..25.02 rows=2 width=8) (actual time=0.005..0.005 rows=0 loops=1)
   ->  Append  (cost=0.00..25.02 rows=2 width=8) (actual time=0.004..0.004 rows=0 loops=1)
         ->  Result  (cost=0.00..12.50 rows=1 width=4) (actual time=0.001..0.001 rows=0 loops=1)
               One-Time Filter: false
               ->  Function Scan on generate_series n  (cost=0.00..12.50 rows=1 width=4) (never executed)
         ->  Result  (cost=0.00..12.50 rows=1 width=4) (actual time=0.000..0.000 rows=0 loops=1)
               One-Time Filter: false
               ->  Function Scan on generate_series n  (cost=0.00..12.50 rows=1 width=4) (never executed)
 Total runtime: 0.053 ms
(9 rows)

Is it right ?

-- 
Sergey Burladyan

Responses

pgsql-performance by date

Next:From: Janet JacobsenDate: 2009-07-02 22:48:23
Subject: Re: slow DELETE on 12 M row table
Previous:From: Tom LaneDate: 2009-07-01 18:07:15
Subject: Re: - Slow Query

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group