From: | Erik Wienhold <ewie(at)ewie(dot)name> |
---|---|
To: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Underscore in positional parameters? |
Date: | 2024-05-19 14:43:39 |
Message-ID: | 7e7d7001-bc48-4b7d-b937-d77fcd7ac31b@ewie.name |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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.
--
Erik
Attachment | Content-Type | Size |
---|---|---|
v4-0001-Fix-overflow-in-parsing-of-positional-parameter.patch | text/x-diff | 2.8 KB |
v4-0002-Limit-max-parameter-number-with-MaxAllocSize.patch | text/x-diff | 2.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2024-05-19 16:21:07 | Re: [PATCH] Avoid mixing custom and OpenSSL BIO functions |
Previous Message | Joe Conway | 2024-05-19 14:42:01 | Re: commitfest.postgresql.org is no longer fit for purpose |