I have moved the text about duplicate constraints to the top of the
information schema section because it affects several tables (applied
patch attached). I could not figure out how to get the actual error
concept to the front of the paragraph.
---------------------------------------------------------------------------
Fabien COELHO wrote:
>
> Hello Bruce,
>
> >>>> Is that the direction we want to go, or would it be better to factor
> >>>> the information out into a separate page about compatibility gotchas?
> >>>
> >>> It would probably be better to explain globally applicable issues in a
> >>> separate section.
> >>
> >> I agree that a general caveat is better, together with a one line
> >> reference in the documentation of each table with an issue.
> >
> > Oh, I just noticed this. Can you give me a list of information_schema
> > tables that have this issue? I am only aware of
> > referential_constraints.
>
> Possibly any relation which references constraints with a (catalog,
> schema, name) triplet expecting it to be unique should have this issue.
>
> >From a quick scan on the information_schema, I would say:
> - check_constraint_routine_usage
> - check_constraints
> - constraint_column_usage (*)
> - constraint_table_usage (*)
> - domain_constraints
> - referential_constraints
> - table_constraints (*)
>
> For the three starred relations, the issue is not too big because a
> constraint name is unique per table in pgsql, and the table name is also
> given in these relations.
>
> This issue makes the "information_schema" pretty useless for being really
> use for serious work as the data can be ambiguous, so I still claim that
> for me this is a real "bug" rather than just a "feature", which is the
> status reached once a bug is documented:-)
>
> When constraint names are generated by postgresql, ISTM that the software
> is free to choose them so they could be chosen non ambiguous per schema.
>
> When users choose colliding names, I agree that it would break existing
> schemas, but there could be an option to enforce uniqueness of the name
> per schema if desired.
>
> I know there are some underlying issues with that that were discussed
> previously.
>
> Anyway I would appreciate something that it appears in the "todo" list,
> even if it is never implemented:-)
>
> --
> Fabien.
--
Bruce Momjian <[email protected]> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml
index 91c2dd4..32e9083 100644
*** a/doc/src/sgml/information_schema.sgml
--- b/doc/src/sgml/information_schema.sgml
***************
*** 21,26 ****
--- 21,39 ----
<productname>PostgreSQL</productname>-specific views.
</para>
+ <note>
+ <para>
+ The SQL standard requires constraint names to be unique within a
+ schema; <productname>PostgreSQL</productname>, however, does not
+ enforce this restriction. If duplicate-named constraints are
+ stored in the same <productname>PostgreSQL</productname> schema,
+ a standard-compliant query that expects to return one matching
+ constraint row might return several, one row for each matching
+ constraint stored in the specified schema.
+ </para>
+ </note>
+
+
<sect1 id="infoschema-schema">
<title>The Schema</title>
*************** ORDER BY c.ordinal_position;
*** 3212,3229 ****
</tgroup>
</table>
- <note>
- <para>
- The SQL standard requires constraint names to be unique within a
- schema; <productname>PostgreSQL</productname>, however, does not
- enforce this restriction. If duplicate-named constraints are
- stored in the same <productname>PostgreSQL</productname> schema, a
- standard-compliant query that expects to return one row might
- return several, one for each matching constraint stored in the
- specified schema.
- </para>
- </note>
-
</sect1>
<sect1 id="infoschema-role-column-grants">
--- 3225,3230 ----
--
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs