Re: Uniqueness of rule, constraint, and trigger names

From: "Tim Barnard" <tbarnard(at)povn(dot)com>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Uniqueness of rule, constraint, and trigger names
Date: 2002-03-04 20:41:42
Message-ID: 015d01c1c3bc$fe622f40$a519af3f@hartcomm.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers 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(at)sss(dot)pgh(dot)pa(dot)us>
To: <pgsql-hackers(at)postgreSQL(dot)org>; <pgsql-sql(at)postgreSQL(dot)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
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dan Langille 2002-03-04 20:43:38 Re: Uniqueness of rule, constraint, and trigger names
Previous Message Tom Lane 2002-03-04 20:38:22 Re: Uniqueness of rule, constraint, and trigger names

Browse pgsql-sql by date

  From Date Subject
Next Message Dan Langille 2002-03-04 20:43:38 Re: Uniqueness of rule, constraint, and trigger names
Previous Message Tom Lane 2002-03-04 20:38:22 Re: Uniqueness of rule, constraint, and trigger names