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