Re: CTE materializing sets? - Mailing list pgsql-general

From Tomas Vondra
Subject Re: CTE materializing sets?
Date
Msg-id 777bd5c1ee2d3153b2984c19a2a1f03f@fuzzy.cz
Whole thread Raw
In response to Re: CTE materializing sets?  (Craig Ringer <ringerc@ringerc.id.au>)
List pgsql-general
Dne 09.10.2012 11:48, Craig Ringer napsal:
> On 10/06/2012 08:45 AM, Liam Caffrey wrote:
>> Hi,
>>
>> If I run a CTE does that materialize the resulting data in the same
>> (or
>> a similar) way as if I created a temp table and referred to that
>> instead? Or does the CTE keep the set in memory?
>
> Really good question, I too would be interested in this.
>
> I'd expect it'd materialize to RAM if the result is within `work_mem`
> but I'd love to know for sure.

Yes - it's using a tuplestore, and that's the default behavior. It
stores the
tuples in RAM until it reaches work_mem and then starts spilling the
data
to disk. It's entirely transparent behavior.

Tomas


pgsql-general by date:

Previous
From: Serge Fonville
Date:
Subject: Re: CTE materializing sets?
Next
From: Craig Ringer
Date:
Subject: Re: CTE materializing sets?