The following bug has been logged online:

Bug reference:      3459
Logged by:          David Sanchez i Gregori
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 8.x
Operating system:   Windows XP SP2, Linux x86, Linux X86-64
Description:        Query Error : plan should not reference subplan's
variable
Details: 

I reported this bug some while ago, but now I've done some research, that I
think it can be useful.

If we create a database like this:

CREATE DATABASE "Agenda"
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default;


An schema :

CREATE SCHEMA "Seguretat"
  AUTHORIZATION postgres;
COMMENT ON SCHEMA "Seguretat" IS 'Esquema on resideixen les funcions taules
i procediments relacionants amb la segretat.';


A Table :

CREATE TABLE "Seguretat"."Usuarios"
(
  "Nom" varchar(255) NOT NULL, -- Nom del usuari
  "ID" numeric NOT NULL, -- Identificador del usuari
  "Cognom1" varchar(255) NOT NULL, -- Primer cognom del usuari
  CONSTRAINT "PK_Usuarios" PRIMARY KEY ("ID")
) 
WITHOUT OIDS;
ALTER TABLE "Seguretat"."Usuarios" OWNER TO postgres;
COMMENT ON COLUMN "Seguretat"."Usuarios"."Nom" IS 'Nom del usuari';
COMMENT ON COLUMN "Seguretat"."Usuarios"."ID" IS 'Identificador del
usuari';
COMMENT ON COLUMN "Seguretat"."Usuarios"."Cognom1" IS 'Primer cognom del
usuari';


And do this query :

select min("ID") as nid from "Seguretat"."Usuarios" as j
where not exists
( select 1 from "Seguretat"."Usuarios" as k where k."ID"=j."ID")

The result is the expected one, but if we do this query :

select * from(
select min("ID") as nid from "Seguretat"."Usuarios" as j
where not exists
( select 1 from "Seguretat"."Usuarios" as k where k."ID"=j."ID")
) as b

We get an error, when we should get the same result.

The problem, also appears with max, instead of min, but there is no error,
with avg, or count.

I found these error in all 8.x on Windows XP SP 2 (32 bits) , Linux 32 bits,
and Linux AMD64.


Again, sorry for my English.

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to