Re: SQL:2011 application time
Paul A Jungwirth <pj@illuminatedcomputing.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Rename gist stratnum support function
- 32edf732e8dc 18.0 landed
-
Remove support for temporal RESTRICT foreign keys
- b83e8a2ca2eb 18.0 landed
-
Cache NO ACTION foreign keys separately from RESTRICT foreign keys
- 9926f854d077 18.0 landed
-
Fix NO ACTION temporal foreign keys when the referenced endpoints change
- 1772d554b089 18.0 landed
-
Improve whitespace in without_overlaps test
- 888d4523f0c2 18.0 landed
-
Tests for logical replication with temporal keys
- 939b0908c87a 18.0 landed
-
Support for GiST in get_equal_strategy_number()
- 74edabce7a33 18.0 landed
-
Make the conditions in IsIndexUsableForReplicaIdentityFull() more explicit
- 13544e790ef8 18.0 landed
-
Replace get_equal_strategy_number_for_am() by get_equal_strategy_number()
- a2a475b011cf 18.0 landed
-
Improve internal logical replication error for missing equality strategy
- 321c287351f7 18.0 landed
-
Simplify IsIndexUsableForReplicaIdentityFull()
- 7727049e8f66 18.0 landed
-
Fix ALTER TABLE / REPLICA IDENTITY for temporal tables
- 79b575d3bc09 18.0 landed
-
doc: Update pg_constraint.conexclop docs for WITHOUT OVERLAPS
- f683ba0867da 18.0 landed
-
doc: Add PERIOD to ALTER TABLE reference docs
- d56af4c882e2 18.0 landed
-
doc: Add WITHOUT OVERLAPS to ALTER TABLE reference docs
- bf621059500b 18.0 landed
-
Add temporal FOREIGN KEY contraints
- 89f908a6d0ac 18.0 landed
- 34768ee36165 17.0 landed
-
Add temporal PRIMARY KEY and UNIQUE constraints
- fc0438b4e805 18.0 landed
- 46a0cd4cefb4 17.0 landed
-
Add stratnum GiST support function
- 7406ab623fee 18.0 landed
- 6db4598fcb82 17.0 landed
-
Avoid crashing when a JIT-inlined backend function throws an error.
- 5d6c64d29097 17.0 cited
-
Revert temporal primary keys and foreign keys
- 8aee330af55d 17.0 landed
-
Fix ON CONFLICT DO NOTHING/UPDATE for temporal indexes
- 144c2ce0cc75 17.0 landed
-
Add test for REPLICA IDENTITY with a temporal key
- 482e108cd38d 17.0 landed
-
Use half-open interval notation in without_overlaps tests
- 5577a71fb0cc 17.0 landed
-
Use daterange and YMD in without_overlaps tests instead of tsrange.
- a88c800deb6f 17.0 landed
-
Rename pg_constraint.conwithoutoverlaps to conperiod
- 030e10ff1a36 17.0 landed
-
Fix comment on gist_stratnum_btree
- 86232a49a437 17.0 landed
-
Add missing TAP test name
- 1ab763fc22ad 16.0 cited
-
Improve error handling of HMAC computations
- 5513dc6a304d 15.0 cited
-
Rename functions to avoid future conflicts
- ee419607381d 15.0 landed
Attachments
- v45-0001-Fix-logical-replication-for-temporal-tables.patch (text/x-patch) patch v45-0001
- v45-0002-Add-without_portion-GiST-support-proc.patch (text/x-patch) patch v45-0002
- v45-0003-Fix-NOACTION-temporal-foreign-keys-when-the-refe.patch (text/x-patch) patch v45-0003
- v45-0004-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.patch (text/x-patch) patch v45-0004
- v45-0005-Add-intersect-support-func-for-FOR-PORTION-OF.patch (text/x-patch) patch v45-0005
- v45-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch (text/x-patch) patch v45-0006
- v45-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch (text/x-patch) patch v45-0007
- v45-0008-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch (text/x-patch) patch v45-0008
Here are updated patches. I left off the final PERIODs patch because it still has some conflicts
with the new NOT NULL constraints work. I'll soon an update with that soon.
On 11/21/24 04:56, Peter Eisentraut wrote:
>> On the publisher side: You can use REPLICA IDENTITY DEFAULT with a temporal PK/UNIQUE index. There
>> is no validation step, and sending the changes works fine. But REPLICA IDENTITY USING INDEX fails
>> because the validation step rejects the non-btree index.
>
> Ok, I have committed the fix for this, and I'll continue working through the rest of the patches.
Thanks!
On 11/13/24 02:11, Peter Eisentraut wrote:
> - return get_equal_strategy_number_for_am(am);
> + /* For GiST indexes we need to ask the opclass what strategy number to use. */
> + if (am == GIST_AM_OID)
> + return GistTranslateStratnum(opclass, RTEqualStrategyNumber);
> + else
> + return get_equal_strategy_number_for_am(am);
>
> This code should probably be pushed into get_equal_strategy_number_for_am(). That function already
> has a switch based on index AM OIDs. Also, there are other callers of
> get_equal_strategy_number_for_am(), which also might want to become aware of GiST support.
Done. The reason I didn't do this before is because we need the opclass, not just the am. I put an
explanation about that into the function comment. If that's a problem I can undo the change.
> For the new test file, remember to add it to src/test/subscription/meson.build.
>
> Also, maybe add a introductory comment in the test file to describe generally what it's trying to test.
Done.
On 11/13/24 02:50, Peter Eisentraut wrote:
> A quick comment on the patch
>
> v43-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch
>
> regarding the code in transformForPortionOfClause() and the additions you made to lsyscache.c:
>
> What you are doing is taking a type OID and a function OID and then converting them back to name and
> namespace and then building a node and then feeding that node back through the parse analysis
> transformation. This all seems quite fishy and cumbersome. I think instead of building a FuncCall
> and transforming it, try to build a FuncExpr directly. Then you wouldn't need these new helper
> functions, which would also reduce the surface area of your patch.
Okay, that makes sense. I changed that for the FOR PORTION OF bounds expression. I still need to get
the rangetype name and namespace to look up its constructor function. Even if I built another FuncExpr
myself there, I don't see any way to get the constructor oid without calling SearchSysCache3(PROCNAMEARGSNSP, ...).
So I'm still doing type oid -> type name -> func oid.
> Additional mini-comment:
>
> #include "utils/rangetypes.h"
>
> in src/include/nodes/execnodes.h appears to be unnecessary (but it is then required in src/backend/
> commands/trigger.c).
Done.
On 11/13/24 02:53, Peter Eisentraut wrote:
> I committed a few fixes in this area today. Has everything here been addressed?
Yes, everything here was addressed in my v41 patches (sent 2024-10-21).
Rebased to 4c4aaa19a6.
Yours,
--
Paul ~{:-)
pj@illuminatedcomputing.com