View Single Post

   
  #1 (permalink)  
Old 04-12-2008, 04:46 AM
Sergey E. Koposov
 
Posts: n/a
Default problem with volatile functions in subselects ?

Hello Hackers,

I see the very strange behaviour with the following set of queries:

wsdb=# select na,nb, na::double precision as da, nb::double precision as db from ( select random()::numeric as na,random()::numeric as nb from generate_series(1,2)) as xx;
na | nb | da | db
-------------------+-------------------+-------------------+-------------------
0.756045001445359 | 0.505602368389071 | 0.283893094995941 | 0.160685719065687
0.792114335015469 | 0.416411793053342 | 0.342387438445532 | 0.531201674850286
(2 rows)

On my understanding that should produce the "na" column equal to "da" ?

When I do the same with the select from the table the result is similar:

wsdb=# select na,nb, na::double precision as da, nb::double precision as db from ( select random()::numeric as na,random()::numeric as nb from pg_proc) as xx;
na | nb | da | db
-----------------------+-----------------------+----------------------+----------------------
0.125243402610181 | 0.620239329347498 | 0.64666960465101 | 0.257827353318141
0.934299875951512 | 0.0322264223509591 | 0.96565025298188 | 0.0439542480949099
.........

But when I limit the select, I get the expected result.

wsdb=# select na,nb, na::double precision as da, nb::double precision as db from ( select random()::numeric as na,random()::numeric as nb from pg_proc limit 2) as xx;
na | nb | da | db
-------------------+-------------------+-------------------+-------------------
0.543030349324937 | 0.925069289712733 | 0.543030349324937 | 0.925069289712733
0.934251406665077 | 0.292522935332974 | 0.934251406665077 | 0.292522935332974
(2 rows)

Is that a bug, or I'm missing something ?

PG version is 8.1.4 or 8.2dev.

Regards,
Sergey

************************************************** *****************
Sergey E. Koposov
Max Planck Institute for Astronomy/Sternberg Astronomical Institute
Tel: +49-6221-528-349
Web: http://lnfm1.sai.msu.ru/~math
E-mail: math@sai.msu.ru

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

Reply With Quote