From: | Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org> |
Subject: | Re: SQL:2011 Application Time Update & Delete |
Date: | 2025-09-25 04:05:41 |
Message-ID: | CA+renyWA-b00qvz4gDdPbPBjVatacB1T5v7SJc6J_xg3R6-qRw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Aug 29, 2025 at 6:03 AM Paul A Jungwirth
<pj(at)illuminatedcomputing(dot)com> wrote:
> I'm still working on the PERIOD DDL, but that doesn't have to go in at
> the same time. The tricky part is ALTER TABLE ADD PERIOD, where I need
> to wait until the add-columns pass to see the start/end columns'
> type/etc, but then in that same pass I need to add a generated range
> column. If I add the column in a later pass, I get a failure, e.g.
> "cannot ALTER TABLE "pt" because it is being used by active queries in
> this session". This only appeared with recent(ish) NOT NULL work. I
> think the solution is to avoid holding a relcache entry longer than
> needed, but I haven't had a chance to locate the issue yet.
Here is another update, now with working PERIOD DDL. I also fixed some
new post-rebase problems causing CI to fail.
There is a detailed wiki page attached to the commitfest entry. To
summarize the patches here:
- Four documentation patches adding a new chapter introducing temporal
concepts. This are split out by topic: primary key + unique
constraints, foreign keys, PERIODs, and UPDATE/DELETE FOR PORTION OF.
- Two patches adding UPDATE/DELETE FOR PORTION OF. (I broke out the
helper functions that compute temporal leftovers.)
- Some patches adding CASCADE/SET NULL/SET DEFAULT to temporal foreign
keys. Once you have UPDATE/DELETE FOR PORTION OF, these are easy. You
do need to know the FOR PORTION OF bounds though, so one of the
patches adds that to the TriggerData struct.
- A patch to add the same bounds info to PL/pgSQL trigger variables.
- A patch to add PERIOD DDL support, based on hidden GENERATED
rangetype columns.
Rebased to d96c854dfc.
Yours,
--
Paul ~{:-)
pj(at)illuminatedcomputing(dot)com
Attachment | Content-Type | Size |
---|---|---|
v54-0003-Document-temporal-PERIODs.patch | application/octet-stream | 1.9 KB |
v54-0002-Document-temporal-foreign-keys.patch | application/octet-stream | 9.6 KB |
v54-0001-Add-docs-chapter-for-temporal-tables.patch | application/octet-stream | 17.7 KB |
v54-0005-Add-range_minus_multi-and-multirange_minus_multi.patch | application/octet-stream | 22.7 KB |
v54-0007-Add-tg_temporal-to-TriggerData.patch | application/octet-stream | 10.3 KB |
v54-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch | application/octet-stream | 200.7 KB |
v54-0004-Document-temporal-update-delete.patch | application/octet-stream | 23.8 KB |
v54-0008-Look-up-more-temporal-foreign-key-helper-procs.patch | application/octet-stream | 6.8 KB |
v54-0009-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch | application/octet-stream | 205.8 KB |
v54-0010-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch | application/octet-stream | 14.5 KB |
v54-0011-Add-PERIODs.patch | application/octet-stream | 563.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Guo | 2025-09-25 04:23:00 | Re: Eager aggregation, take 3 |
Previous Message | shveta malik | 2025-09-25 03:59:31 | Re: Report bytes and transactions actually sent downtream |