Re: json(b)_array_elements use causes very large memory usage when also referencing entire json document

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Lucas Fairchild-Madar <lucas(dot)madar(at)gmail(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: json(b)_array_elements use causes very large memory usage when also referencing entire json document
Date: 2017-10-07 02:42:05
Message-ID: 20171007024205.3p6idiqexbmik4cs@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 2017-10-06 22:35:37 -0400, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > I've just played around with this. ValuePerCall SRFs are fine with
> > called in a short-lived context (they're required to be able to, as
> > documented in xfunc.sgml), so is SFRM_Materialize. The only thing to be
> > careful about is the *arguments* to the function, those need to live
> > long enough in the ValuePerCall case.
>
> Isn't there already code to deal with that? See around line 175
> in execSRF.c.

Well, that's for nodeFunctionscan.c, not nodeProjectSet.c. But it seems
quite sensible to model this very similarly.

I'd still like to unify those two functions, but given that
ExecMakeTableFunctionResult materializes ValuePerCall SRFs, that doesn't
seem likely.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2017-10-07 04:08:43 Re: json(b)_array_elements use causes very large memory usage when also referencing entire json document
Previous Message Tom Lane 2017-10-07 02:35:37 Re: json(b)_array_elements use causes very large memory usage when also referencing entire json document