BUG #4747: Some type names accepted in place of column name.

Поиск
Список
Период
Сортировка
От Bruce Toll
Тема BUG #4747: Some type names accepted in place of column name.
Дата
Msg-id 200904011855.n31ItgjU047609@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #4747: Some type names accepted in place of column name.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      4747
Logged by:          Bruce Toll
Email address:      btoll@dhsus.com
PostgreSQL version: 8.4devel
Operating system:   GNU/Linux (Ubuntu Hardy)
Description:        Some type names accepted in place of column name.
Details:

Hello,

In 8.4devel postgres, it appears that some type names
are accepted in place of column names, e.g "name".
This is different behavior than in 8.3.

For instance, the pg_catalog.pg_class table has no
column "name", yet the following query returns rows from the pg_class
table:

8.4devel (no contrib modules installed):
==================================================================
SELECT pg_class.name FROM pg_class limit 2;

                              name
-----------------------------------------------------------------
 (pg_type,11,71,10,0,1247,0,62,676,0,0,t,f,r,28,0,t,f,f,f,f,648,
 (pg_attribute,11,75,10,0,1249,0,587,6145,0,0,t,f,r,18,0,f,f,f,f
(2 rows)
==================================================================

8.3.6:
==================================================================
SELECT pg_class.name FROM pg_class limit 2;

ERROR:  column pg_class.name does not exist
LINE 1: SELECT pg_class.name FROM pg_class limit 2;
               ^
==================================================================

The change in behavior appears to be related to this changeset:
==================================================================
Date:   Wed Jul 30 21:23:17 2008 +0000

Allow I/O conversion casts to be applied to or from any type that is a
member
of the STRING type category, thereby opening up the mechanism for
user-defined
types.  This is mainly for the benefit of citext, though; there aren't
likely
to be a lot of types that are all general-purpose character strings.
[commit message truncated]
==================================================================

The 8.4devel output of 'select version();'
----------------------------------------------------------------------------
--
PostgreSQL 8.4devel on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.2.4
(Ubuntu 4.2.4-1ubuntu3), 32-bit

The tests were run on:
GNU/Linux (Ubuntu Hardy), 32bit Intel Core 2 Duo CPU,
Linux kernel 2.6.24-23-generic.

For reference, the last commit included in the 8.4devel build was:
----------------------------------------------------------
Author: Heikki Linnakangas <heikki@enterprisedb.com>
Date:   Wed Apr 1 09:17:32 2009 +0000

    Update comment to reflect that LC_COLLATE and LC_CTYPE are now
    per-database settings.
----------------------------------------------------------

Regards,
Bruce Toll

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: shared_buffers/SHMMAX defaults?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #4747: Some type names accepted in place of column name.