Hm, shouldn't this query notice that random() is volatile and not make the
subquery an initplan?


postgres=#  select i, (select (random()*1000)::integer  ) from x limit 5;
 i | ?column? 
---+----------
 1 |      677
 2 |      677
 3 |      677
 4 |      677
 5 |      677
(5 rows)

postgres=# explain  select i, (select (random()*1000)::integer  ) from x limit 
5;
                        QUERY PLAN                         
-----------------------------------------------------------
 Limit  (cost=0.02..0.11 rows=5 width=4)
   InitPlan
     ->  Result  (cost=0.00..0.02 rows=1 width=0)
   ->  Seq Scan on x  (cost=0.00..64.80 rows=3480 width=4)
(4 rows)


-- 
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com
  Ask me about EnterpriseDB's RemoteDBA services!

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to