On Fri, Nov 13, 2015 at 7:15 AM, Merlin Moncure <mmoncure@xxxxxxxxx> wrote: > On Thu, Nov 12, 2015 at 4:26 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: >> Merlin Moncure <mmoncure@xxxxxxxxx> writes: >>> On Thu, Nov 12, 2015 at 9:48 AM, Craig James <cjames@xxxxxxxxxxxxxx> wrote: >>>> What about a warning on creation? >>>> >>>> db=> create table foo(i integer primary key); >>>> db=> create table bar(j integer primary key, i integer); >>>> db=> alter table bar add constraint fk_bar foreign key(i) references foo(i); >>>> WARNING: fk_bar: column bar(i) has no index, deletions on table foo may be >>>> slow. >>>> >>>> It might save some fraction of these questions. >> >>> Maybe, but I wonder if this would cause pg_restore to bleat warnings >>> when restoring. >> >> We could probably teach pg_dump to put index definitions before FKs, if it >> doesn't already. But I'm suspicious of this sort of "training wheels" >> warning --- we've had roughly similar messages in the past and removed >> them because too many people complained about them. > > For posterity, indexes are the last step -- and I think that's a good > way to do things. As to the broader point, I agree. Warnings should > be reserved for things that are demonstrably dubious, and there are > just too many situations where that doesn't apply for an unindexed > foreign constraint. Oh well. If they were implemented as a notice that would be different. Much like the notice you get about index creation on PK / Unique constraint creation. But I'm not 100% sure it's a good idea. -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance