Can anyone shine a light on why 8.4 behaves surprisingly when being queried for a bogus column "name", but only using qualified table/ column references.

Here's a sample script:

-----
create table foo
(
        id int,
        x int
);

insert into foo(id, x)
values
        (1, 23),
        (2, 43),
        (4, 45);

-- Fails on both -- no column named 'name'
select name from foo;

-- Fails on 8.2, still no 'name' column, but 8.4 succeeds returning whole rows.
select f.name from foo f;
----

On 8.2.11, both selects fail:

CREATE TABLE
INSERT 0 3
ERROR:  column "name" does not exist
LINE 1: select name from foo;
              ^
ERROR:  column f.name does not exist
LINE 1: select f.name from foo f;
              ^


On 8.4.2, the first select fails, but the second succeeds, returning whole rows wrapped up like tuples:

CREATE TABLE
INSERT 0 3
ERROR:  column "name" does not exist
LINE 1: select name from foo;
              ^
 name
--------
(1,23)
(2,43)
(4,45)
(3 rows)

A quick skim through the 8.3. and 8.4. release notes found nothing interesting related to 'name'.

Thanks!
----
James Robinson
Socialserve.com


--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

Reply via email to