From: | Jim Jones <jim(dot)jones(at)uni-muenster(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Add notification on BEGIN ATOMIC SQL functions using temp relations |
Date: | 2025-09-21 22:02:21 |
Message-ID: | 235e008c-2b86-4227-997c-1994ba6ea0cf@uni-muenster.de |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 9/21/25 19:34, Tom Lane wrote:
> Jim Jones <jim(dot)jones(at)uni-muenster(dot)de> writes:
>> That's indeed a much larger problem. Calling it from a session silently
>> delivers a "wrong" result --- I was expecting an error.
>
> Yeah, me too. See
>
> https://www.postgresql.org/message-id/2736425.1758475979%40sss.pgh.pa.us
>
The attached PoC now raises an ERROR instead of a WARNING.
A boolean is now computed in fmgr_sql_validator(), set to true if the
function has a prosqlbody (BEGIN ATOMIC) and is defined in a
non-temporary schema. This flag is then used to call
check_sql_fn_statements().
In check_sql_fn_statements(): if the new flag is true, it scans the
function body and raises an error if any temporary relations are found;
if it's false, it skips that check.
In returning.sql there was a query that creates a BEGIN ATOMIC function
using on a temporary table. I changed the table to permanent.
Best regards, Jim
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Disallow-BEGIN-ATOMIC-functions-depending-on-temp.patch | text/x-patch | 19.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2025-09-21 22:02:25 | Re: GNU/Hurd portability patches |
Previous Message | David E. Wheeler | 2025-09-21 20:59:58 | Re: ABI Compliance Checker GSoC Project |