On Fri, Sep 15, 2023 at 12:11 AM Paul Jungwirth <p...@illuminatedcomputing.com> wrote: > > > I'll keep working on a patch to support multiple range keys, but I > wanted to work through the rest of the feedback first. Also there is > some fixing to do with partitions I believe, and then I'll finish the > PERIOD support. So this v14 patch is just some minor fixes & tweaks from > September feedback. >
small issues so far I found, v14. IndexInfo struct definition comment still has Temporal related comment, should be removed. catalog-pg-index.html, no indperiod doc entry, also in table pg_index, column indperiod is junk value now. I think in UpdateIndexRelation, you need an add indperiod to build a pg_index tuple, similar to what you did in CreateConstraintEntry. seems to make the following query works, we need to bring btree_gist related code to core? CREATE TABLE temporal_fk_rng2rng22 (id int8, valid_at int4range, unique (id, valid_at WITHOUT OVERLAPS)); /* ---------------- * pg_period definition. cpp turns this into * typedef struct FormData_pg_period * ---------------- */ CATALOG(pg_period,8000,PeriodRelationId) { Oid oid; /* OID of the period */ NameData pername; /* name of period */ Oid perrelid; /* OID of relation containing this period */ int16 perstart; /* column for start value */ int16 perend; /* column for end value */ int16 perrange; /* column for range value */ Oid perconstraint; /* OID of (start < end) constraint */ } FormData_pg_period; no idea what the above comment "cpp'' refers to. The sixth field in FormData_pg_period: perrange, the comment conflict with catalogs.sgml >> perrngtype oid (references pg_type.oid) >> The OID of the range type associated with this period create table pt (id integer, ds date, de date, period for p (ds, de)); SELECT table_name, column_name, column_default, is_nullable, is_generated, generation_expression FROM information_schema.columns WHERE table_name = 'pt' ORDER BY 1, 2; the hidden generated column (p) is_nullable return NO. but ds, de is_nullable both return YES. so column p is_nullable should return YES?