Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent
От | Peter Eisentraut |
---|---|
Тема | Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent |
Дата | |
Msg-id | 1307569407.9604.9.camel@vanquo.pezone.net обсуждение исходный текст |
Ответ на | Re: BUG #5926: information schema dtd_identifier for element_types, columns, parameters views inconsistent (Peter Eisentraut <peter_e@gmx.net>) |
Список | 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 по дате отправления: