Re: CTE materializing sets?

From: Tomas Vondra <tv(at)fuzzy(dot)cz>
To: <pgsql-general(at)postgresql(dot)org>
Subject: Re: CTE materializing sets?
Date: 2012-10-09 10:08:55
Message-ID: 777bd5c1ee2d3153b2984c19a2a1f03f@fuzzy.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Craig Ringer 2012-10-09 10:10:24 Re: CTE materializing sets?
Previous Message Serge Fonville 2012-10-09 09:53:10 Re: CTE materializing sets?