Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Susanne Ebrecht <susanne(at)2ndQuadrant(dot)com>, Ingmar Brouns <swingi(at)gmail(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent
Date: 2011-06-08 21:43:27
Message-ID: 1307569407.9604.9.camel@vanquo.pezone.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-docs

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(at)momjian(dot)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.

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2011-06-09 15:00:30 Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent
Previous Message Peter Eisentraut 2011-06-08 17:38:00 Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent

Browse pgsql-docs by date

  From Date Subject
Next Message Peter Eisentraut 2011-06-09 15:00:30 Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent
Previous Message Peter Eisentraut 2011-06-08 17:38:00 Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent