Hello
I tested some usage of LATERAL clause, and I found so LATERAL doesn't
respects difference between VOLATILE and IMMUTABLE functions.
Is this behave expected?
-- unexpected
postgres=# select * from generate_series(1,3) g(v), LATERAL (SELECT random()) x;
;v │ random
───┼──────────────────1 │ 0.630256460513922 │ 0.630256460513923 │ 0.63025646051392
(3 rows)
-- expected
postgres=# select * from generate_series(1,3) g(v), LATERAL (SELECT
random() - v + v) x;v │ ?column?
───┼───────────────────1 │ 0.3815484778024262 │ 0.7629880602471533 │ 0.181648664642125
(3 rows)
Regards
Pavel Stehule