Simon Riggs <simon(at)2ndquadrant(dot)com> writes:
> We have
> * relhasindex (bool) set by CREATE INDEX but not unset by DROP INDEX
> * relhasrules (bool)
> * reltriggers (int2) set by CREATE and DROP, since its an integer
Right.
> If CREATE INDEX can take a Share lock and can update pg_class, why would
> it not be theoretically possible for CREATE TRIGGER?
It's (probably) theoretically possible, if we replace reltriggers with a
bool that acts more like relhasindex, ie it's a hint to go look in
pg_triggers. My point was just that you can't arbitrarily decide that
some operation needs only a given strength of lock if you are not up to
speed on these sorts of details.
regards, tom lane