| From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
|---|---|
| To: | Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Aleksander Alekseev <aleksander(at)tigerdata(dot)com>, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: [PATCH] Fix null pointer dereference in PG19 |
| Date: | 2026-07-09 08:32:08 |
| Message-ID: | 82f35e5c-9983-4c97-8567-451bc2cb8761@eisentraut.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 08.07.26 18:48, Paul A Jungwirth wrote:
> On Tue, Jul 7, 2026 at 7:07 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>
>> Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com> writes:
>>> On Tue, Apr 21, 2026 at 8:24 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>>> Checking this at parse time is completely the wrong thing.
>>>> The view could have gained (or lost) triggers by the time
>>>> it's executed.
>>
>>> But INSTEAD OF triggers are selected in the rewriter, which uses the
>>> same relcache snapshot as parse analysis. And a concurrent change
>>> can't sneak in different triggers, because that causes a relcache
>>> invalidation, so we redo the parse & rewrite phases.
>>
>> You have forgotten about views and rewrite rules. Those go to disk in
>> post-parser form, and will be rewritten only at execution sometime
>> later, *without* a re-parse.
>
> Ah yes, thank you! I should have been able to work that out.
>
> Here is another patch series. No code changes, but I inserted a new
> patch with tests showing that parse-time checking crashes, but
> rewrite-time and exec-time checking catches the forbidden statement.
> So the series is:
>
> v1: parse-time check, tests pass
> v2: add tests that crash the server
> v3: rewrite-time check: tests pass
> v4: exec-time check: tests pass
What do you want to do with these? Here you list them as four different
versions, but the attachments are four incremental patches of the same
version. Do you propose to apply all of them?
It seems we definitely do want the exec-time check. And I can see maybe
the parse-time check as an additional user-friendliness feature. But
maybe we don't need to check three times?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Shlok Kyal | 2026-07-09 08:41:30 | Re: PSQL - prevent describe listing tables that are already in listed schemas |
| Previous Message | Peter Eisentraut | 2026-07-09 08:18:53 | Re: [Bug] Add the missing RTE_GRAPH_TABLE case to transformLockingClause() |