Strange behavior on non-existent field in subselect? - Mailing list pgsql-general

From Ken Tanzer
Subject Strange behavior on non-existent field in subselect?
Date
Msg-id 45356032.602@desc.org
Whole thread Raw
Responses Re: Strange behavior on non-existent field in subselect?
List pgsql-general
We're a little puzzled by this (apparently) strange behavior, and would
be curious to know what you folks make of it.  Thanks.

Ken

CREATE TABLE foo (
     foo_field   integer );

CREATE TABLE par(
     par_field   integer );

SELECT VERSION();

SELECT foo_field FROM par;
SELECT foo_field FROM foo WHERE foo_field IN (SELECT foo_field FROM par);
INSERT INTO foo VALUES (1);
SELECT foo_field FROM foo WHERE foo_field IN (SELECT foo_field FROM par);
INSERT INTO par VALUES (1);
SELECT foo_field FROM foo WHERE foo_field IN (SELECT foo_field FROM par);
/* One row for every foo record, provided at least one record in par */

Which (for us) yields the following output:

Chasers=> \i strangefield.sql
CREATE TABLE
CREATE TABLE
                                                 version
-------------------------------------------------------------------------------------------------------
  PostgreSQL 8.1.4 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
3.4.4 20050721 (Red Hat 3.4.4-2)
(1 row)

psql:strangefield.sql:11: ERROR:  column "foo_field" does not exist
  foo_field
-----------
(0 rows)

INSERT 0 1
  foo_field
-----------
(0 rows)

INSERT 0 1
  foo_field
-----------
          1
(1 row)



Attachment

pgsql-general by date:

Previous
From: Chris Browne
Date:
Subject: Re: not so sequential sequences
Next
From: Ragnar
Date:
Subject: Re: Strange behavior on non-existent field in subselect?