Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent - Mailing list pgsql-bugs

From Peter Eisentraut
Subject Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent
Date
Msg-id 1307569407.9604.9.camel@vanquo.pezone.net
Whole thread Raw
In response to Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-bugs
On ons, 2011-06-08 at 20:38 +0300, Peter Eisentraut wrote:
> On ons, 2011-06-08 at 11:09 -0400, Tom Lane wrote:
> > The omission of collection_type_identifier from the docs is clearly a
> > doc bug.  However, it looks to me like you've identified an error in the
> > view definition, not only a doc bug.  I think the values of the
> > dtd_identifier and collection_type_identifier columns are swapped, ie,
> > we ought to be prepending 'a' to the collection_type_identifier not the
> > dtd_identifier.  As far as I can tell from the spec, dtd_identifier
> > ought to be the identifier of the element type, while
> > collection_type_identifier should be a made-up identifier for the array
> > type.  That would make the sample query given in the docs correct.
>
> Yes, we need to switch those two columns around and change the
> documentation.
>
> > If my analysis is correct, we really ought to try to fix this in time
> > for beta2, since there's no way to fix it without a forced initdb.
>
> I can take care of this later today.

On fifth reading, I think the implementation of the information schema
is correct, but the documentation is wrong.

It was broken in commit 8e1ccad5:

commit 8e1ccad51901e83916dae297cd9afa450957a36c
Author: Bruce Momjian <bruce@momjian.us>
Date:   Tue Feb 20 18:47:25 2007 +0000

    Update information_schema documentation to match system tables.
    Backpatch to 8.2.X.

diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml
index 67ce709..8d0b8e4 100644
--- a/doc/src/sgml/information_schema.sgml
+++ b/doc/src/sgml/information_schema.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/information_schema.sgml,v 1.31 2007/02/01 00:28:17 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/information_schema.sgml,v 1.32 2007/02/20 18:47:25 momjian Exp $ -->

 <chapter id="information-schema">
  <title>The Information Schema</title>
@@ -1876,7 +1876,7 @@
 SELECT c.column_name, c.data_type, e.data_type AS element_type
 FROM information_schema.columns c LEFT JOIN information_schema.element_types e
      ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier)
-       = (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.array_type_identifier))
+       = (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.dtd_identifier))
 WHERE c.table_schema = '...' AND c.table_name = '...'
 ORDER BY c.ordinal_position;
 </programlisting>
@@ -1936,13 +1936,11 @@ ORDER BY c.ordinal_position;
      </row>

      <row>
-      <entry><literal>array_type_identifier</literal></entry>
+      <entry><literal>dtd_identifier</literal></entry>
       <entry><type>sql_identifier</type></entry>
       <entry>
        The identifier of the data type descriptor of the array being
-       described.  Use this to join with the
-       <literal>dtd_identifier</literal> columns of other information
-       schema views.
+       described
       </entry>
      </row>

@@ -2097,13 +2095,6 @@ ORDER BY c.ordinal_position;
       <entry>Always null, because arrays always have unlimited maximum cardinality in
<productname>PostgreSQL</></entry>
      </row>

-     <row>
-      <entry><literal>dtd_identifier</literal></entry>
-      <entry><type>sql_identifier</type></entry>
-      <entry>
-       An identifier of the data type descriptor of the element.  This
-       is currently not useful.
-      </entry>
      </row>
     </tbody>
    </tgroup>


This needs to be reverted and array_type_identifier (the SQL:1999 name)
updated to collection_type_identifier.

pgsql-bugs by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent
Next
From: Peter Eisentraut
Date:
Subject: Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent