Re: SQL:2011 application time

From: Paul Jungwirth <pj(at)illuminatedcomputing(dot)com>
To: Peter Eisentraut <peter(at)eisentraut(dot)org>
Cc: jian he <jian(dot)universality(at)gmail(dot)com>, Isaac Morland <isaac(dot)morland(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Jeff Davis <pgsql(at)j-davis(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: SQL:2011 application time
Date: 2024-10-31 16:18:44
Message-ID: 57ea0668-5205-426e-b934-efc89f2186c2@illuminatedcomputing.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 10/24/24 17:22, Paul Jungwirth wrote:
> On 10/21/24 14:46, Paul Jungwirth wrote:
>> Here is a new set of patches, including new patches to (1) fix logical replication with WITHOUT
>> OVERLAPS indexes and (2) address some documentation lapses pointed out in jian he's feedback.
>> Since all that is against the already-commited PK/UNIQUE/FK work, I've kept them separate here
>> from the FOR PORTION OF etc patches. I've also added the logical replication problem to the v18
>> Open Items wiki page.
>
> New patches attached to fix some conflicts. I don't think there is anything else except cleaning up
> some sloppy white space.

Hi Hackers,

Here are some more updates. I think everything is ready except for the final patch adding PERIODs,
which still needs a little more work.

The biggest change here is a new patch to expose FOR PORTION OF details to plpgsql triggers via the
new TG_PERIOD_NAME and TG_PERIOD_BOUNDS variables. These were already available to C functions (and
we use them in the RI triggers), but now people will be able to access them via plpgsql as well.
One thing I don't love is that TG_PERIOD_BOUNDS is a string, because it needs to have a type at the
time you create the function, and the type of the FOR PORTION OF column could be anything:
daterange, tsrange, inetrange, textmultirange, whatever. If anyone has a better idea, I'm open to
suggestions. This patch is not really essential, but I thought authors of plpgsql triggers might
like to have it.

I also started working on allowing FOR PORTION OF in FDW updates/deletes (not included here). As far
as I can see, nothing needs to change about the API, because the FOR PORTION OF details are simply
passed as part of the node tree. We just have to remove the ereport that says FDW FOR PORTION OF is
unsupported. Then within each FDW you have to use the new FOR PORTION OF node to do the right thing
on the remote table. So I'm updating postgres_fdw to do that.

But beyond the *technical* need, do we need something to clue in FDW developers that these queries
are a possibility? With no changes to postgres_fdw, a FOR PORTION OF update/delete gets executed; it
just loses the FOR PORTION OF meaning. So we update/delete too much. That seems dangerous. It makes
me *want* to change the API, so that developers must address the possibility. But I don't want to
make things cluttered either. Any thoughts?

Rebased to fb7e27abfb.

Yours,

--
Paul ~{:-)
pj(at)illuminatedcomputing(dot)com

Attachment Content-Type Size
v43-0001-Add-WITHOUT-OVERLAPS-and-PERIOD-to-ALTER-TABLE-r.patch text/x-patch 2.9 KB
v43-0002-Update-conexclop-docs-for-WITHOUT-OVERLAPS.patch text/x-patch 1.0 KB
v43-0003-Fix-logical-replication-for-temporal-tables.patch text/x-patch 29.6 KB
v43-0004-Add-support-funcs-for-FOR-PORTION-OF.patch text/x-patch 43.8 KB
v43-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch text/x-patch 188.5 KB
v43-0006-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch text/x-patch 225.1 KB
v43-0007-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch text/x-patch 13.2 KB
v43-0008-Add-PERIODs.patch text/x-patch 565.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jacob Champion 2024-10-31 16:24:11 Re: [PoC] Federated Authn/z with OAUTHBEARER
Previous Message Peter Geoghegan 2024-10-31 16:14:07 Re: Count and log pages set all-frozen by vacuum