On 17/10/2013 00:06, Merlin Moncure
wrote:
That being said, I do think it might be better behavior (and still technically correct per the documentation) if volatile query expressions were force-evaluated. This sounds reasonable for a "yes or no" case like this, but wouldn't it raise the question of how many times the function should be evaluated? What if the query looked more like this: with tt_created as ( select fn_new_item(foo) as item from some_huge_table ) select item from tt_created limit 10 Should the CTE be calculated in its entirety, running the function for every row in some_huge_table? Or should it run at most 10 times? Which is desired would depend on the situation, but there's no real way to indicate in the syntax. -- Rowan Collins [IMSoP] |