Re: Underscore in positional parameters?

Erik Wienhold <ewie@ewie.name>

From: Erik Wienhold <ewie@ewie.name>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter@eisentraut.org>, Alexander Lakhin <exclusion@gmail.com>, Michael Paquier <michael@paquier.xyz>, Dean Rasheed <dean.a.rasheed@gmail.com>, pgsql-hackers@postgresql.org
Date: 2024-07-04T12:34:35Z
Lists: pgsql-hackers
On 2024-07-02 16:21 +0200, Tom Lane wrote:
> Erik Wienhold <ewie@ewie.name> writes:
> > On 2024-07-02 10:45 +0200, Peter Eisentraut wrote:
> >> I had to revert the test case from the 0002 patch.  It ended up running some
> >> build farm machines out of memory.
> 
> >> +ERROR:  out of memory
> >> +DETAIL:  Failed on request of size 1073741820 in memory context "PortalContext".
> 
> > That means paramno is less than MaxAllocSize/sizeof(Oid) if it tries to
> > allocate memory.  MaxAllocSize is always 0x3fffffff.  Is sizeof(Oid)
> > less than 4 on those machines?
> 
> No.  Y'know, it's not really *that* astonishing for a machine to not
> have a spare 1GB of RAM available on-demand.  This test would
> certainly have failed on our 32-bit animals, although it doesn't
> look like any of them had gotten to it yet.

Ah, sorry.  I somehow missed that it allocates memory for each param,
instead of first checking *all* params.  m(

-- 
Erik



Commits

  1. Fix overflow in parsing of positional parameter

  2. Limit max parameter number with MaxAllocSize

  3. Re-forbid underscore in positional parameters