Re: Uniqueness of rule, constraint, and trigger names - Mailing list pgsql-sql

From Tim Barnard
Subject Re: Uniqueness of rule, constraint, and trigger names
Date
Msg-id 015d01c1c3bc$fe622f40$a519af3f@hartcomm.com
Whole thread Raw
In response to Uniqueness of rule, constraint, and trigger names  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
I agree with your statement: "I think that all three object types should
have names that are unique
among the objects associated with a particular table, but not unique across
a whole database."

To address the potential problem of "loading schemas of existing databases,"
why not let the new proposed behavior be the default behavior and provide a
configuration option and/or command line option that would enable the old
behavior - at least for some period of time.

Tim

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: <pgsql-hackers@postgreSQL.org>; <pgsql-sql@postgreSQL.org>
Sent: Monday, March 04, 2002 11:24 AM
Subject: [SQL] Uniqueness of rule, constraint, and trigger names


> Currently we have a rather confusing mismash of behaviors for the names
> of rules, constraints, and triggers.  I'd like to unify the rules
> so that these objects all have the same naming behavior; and the only
> behavior that makes sense to me now is that of triggers.
>
> The current behavior is:
>
> 1. Rules are required to have a name that is unique within the current
> database.  The rule can be named without reference to the table it is
> on.  Dropping a rule is done with "DROP RULE name".
>
> 2. Constraints are not required to have any unique name at all.
> Dropping constraints is done with "ALTER TABLE tablename DROP CONSTRAINT
> constraintname", which will drop all constraints on that table that
> match the given name.
>
> 3. Triggers are required to have names that are unique among the
> triggers on a given table.  Dropping a trigger is done with "DROP
> TRIGGER name ON table".
>
> The SQL spec is not a great deal of help on this, since it doesn't
> have rules or triggers at all.  For constraints, it requires
> database-wide uniqueness of constraint names --- a rule I doubt
> anyone is going to favor adopting for Postgres.
>
> I think that all three object types should have names that are unique
> among the objects associated with a particular table, but not unique
> across a whole database.  So, triggers are okay already, but rules
> and constraints need work.
>
> For rules, we'd need to change the syntax of DROP RULE to be "DROP RULE
> name ON table", much like DROP TRIGGER.  This seems unlikely to cause
> problems for existing applications, since I doubt rule-dropping is done
> much by application code.
>
> For constraints, we'd need to change the code to be more careful to
> generate unique names for unnamed constraints.  That doesn't seem
> difficult, but I'm a little worried about the possibility of errors
> in loading schemas from existing databases, where there might be
> non-unique constraint names.  Perhaps it'd be safer to maintain the
> current behavior (no uniqueness required for constraint names).
>
> Comments?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>



pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Uniqueness of rule, constraint, and trigger names
Next
From: Stephan Szabo
Date:
Subject: Re: Uniqueness of rule, constraint, and trigger names