Re: Underscore in positional parameters? - Mailing list pgsql-hackers

From Erik Wienhold
Subject Re: Underscore in positional parameters?
Date
Msg-id d9362183-020a-4199-b048-3fb54bbbd0bc@ewie.name
Whole thread Raw
In response to Re: Underscore in positional parameters?  (Peter Eisentraut <peter@eisentraut.org>)
List pgsql-hackers
On 2024-07-02 10:14 +0200, Peter Eisentraut wrote:
> On 19.05.24 16:43, Erik Wienhold wrote:
> > On 2024-05-19 07:00 +0200, Alexander Lakhin wrote:
> > > I encountered anomalies that you address with this patch too.
> > > And I can confirm that it fixes most cases, but there is another one:
> > > SELECT $300000000 \bind 'foo' \g
> > > ERROR:  invalid memory alloc request size 1200000000
> > > 
> > > Maybe you would find this worth fixing as well.
> > 
> > Yes, that error message is not great.  In variable_paramref_hook we
> > check paramno > INT_MAX/sizeof(Oid) when in fact MaxAllocSize/sizeof(Oid)
> > is the more appropriate limit to avoid that unspecific alloc size error.
> > 
> > Fixed in v4 with a separate patch because it's unrelated to the param
> > number parsing.  But it fits nicely into the broader issue on the upper
> > limit for param numbers.  Note that $268435455 is still the largest
> > possible param number ((2^30-1)/4) and that we just return a more
> > user-friendly error message for params beyond that limit.
> 
> I have committed your two v4 patches.
> 
> I made a small adjustment in 0001: I changed the ecpg part to also store the
> result from strtoint() into a local variable before checking for error, like
> you had done in the scan.l part.  I think this is a bit better style.  In
> 0002 you had a typo in the commit message: MAX_INT instead of INT_MAX.

Thanks Peter!

-- 
Erik



pgsql-hackers by date:

Previous
From: Dean Rasheed
Date:
Subject: Re: Optimize numeric multiplication for one and two base-NBASE digit multiplicands.
Next
From: Peter Eisentraut
Date:
Subject: Re: Underscore in positional parameters?