Re: SQL:2011 application time
От | jian he |
---|---|
Тема | Re: SQL:2011 application time |
Дата | |
Msg-id | CACJufxGeUsmxOhnd2760kBv-hUWRwCy7A0s45pGSPTe8DJVTGw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: SQL:2011 application time (jian he <jian.universality@gmail.com>) |
Ответы |
Re: SQL:2011 application time
Re: SQL:2011 application time |
Список | pgsql-hackers |
hi. * The attached patch makes foreign keys with PERIOD fail if any of the foreign key columns is "generated columns". * The following queries will cause segmentation fault. not sure the best way to fix it. the reason in LINE: numpks = transformColumnNameList(RelationGetRelid(pkrel), fkconstraint->pk_attrs, pkattnum, pktypoid); begin; drop table if exists temporal3,temporal_fk_rng2rng; CREATE TABLE temporal3 (id int4range,valid_at tsrange, CONSTRAINT temporal3_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)); CREATE TABLE temporal_fk_rng2rng ( id int4range,valid_at tsrange,parent_id int4range, CONSTRAINT temporal_fk_rng2rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS), CONSTRAINT temporal_fk_rng2rng_fk FOREIGN KEY (parent_id, PERIOD valid_at) REFERENCES temporal3 (id, valid_at) ); * change the function FindFKComparisonOperators's "eqstrategy" to make pg_constraint record correct {conpfeqop,conppeqop,conffeqop}. * fix the ON DELETE SET NULL/DEFAULT (columnlist). Now the following queries error will be more consistent. ALTER TABLE temporal_fk_rng2rng DROP CONSTRAINT temporal_fk_rng2rng_fk, ADD CONSTRAINT temporal_fk_rng2rng_fk FOREIGN KEY (parent_id, PERIOD valid_at) REFERENCES temporal_rng ON DELETE SET DEFAULT(valid_at); --ON DELETE SET NULL(valid_at); * refactor restrict_cascading_range function. * you did if (numfks != numpks) before if (is_temporal) {numfks += 1;}, So I changed the code order to make the error report more consistent. anyway, I put it in one patch. please check the attached.
Вложения
В списке pgsql-hackers по дате отправления: