Subquery with toplevel reference used to work in pg 8.4

Поиск
Список
Период
Сортировка
От Mark Murawski
Тема Subquery with toplevel reference used to work in pg 8.4
Дата
Msg-id 4F6D47E8.2040209@intellasoft.net
обсуждение исходный текст
Ответы Re: Subquery with toplevel reference used to work in pg 8.4  (Jaime Casanova <jaime@2ndquadrant.com>)
Re: Subquery with toplevel reference used to work in pg 8.4  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
I agree the query is a little odd, but I like backwards compatibility!


Postgres 8.4.1
----------------------
CREATE VIEW v_members AS
  SELECT
    1 as member_id,
    100 as tenant_id,
    3732 as conference_id,
    200 as uid
  FROM
    (select 1 as uid_user, 2 as uid_contact) as m;

SELECT
    u.tenant_id,
    u.uid
  FROM
    (select 100 as tenant_id, 200 as uid) u
    LEFT JOIN v_members m ON (m.uid = u.uid AND m.conference_id = 3732)
  WHERE
   (
     SELECT 1
     FROM   (select 3732 as conference_id) c
     WHERE  (c.conference_id = 3732) AND (m.uid IS NOT NULL)
   ) = 1;

  tenant_id | uid
-----------+-----
        100 | 200
(1 row)




postgres 9.1.3
--------------------------

CREATE VIEW v_members AS
  SELECT
    1 as member_id,
    100 as tenant_id,
    3732 as conference_id,
    200 as uid
  FROM
    (select 1 as uid_user, 2 as uid_contact) as m;

SELECT
    u.tenant_id,
    u.uid
  FROM
    (select 100 as tenant_id, 200 as uid) u
    LEFT JOIN v_members m ON (m.uid = u.uid AND m.conference_id = 3732)
  WHERE
   (
     SELECT 1
     FROM   (select 3732 as conference_id) c
     WHERE  (c.conference_id = 3732) AND (m.uid IS NOT NULL)
   ) = 1;

ERROR:  Upper-level PlaceHolderVar found where not expected

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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: BUG #6510: A simple prompt is displayed using wrong charset
Следующее
От: Jaime Casanova
Дата:
Сообщение: Re: Subquery with toplevel reference used to work in pg 8.4