From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | "lxndrkrlv(at)gmail(dot)com" <lxndrkrlv(at)gmail(dot)com>, "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | Re: BUG #17233: Incorrect behavior of DELETE command with bad subquery in WHERE clause |
Date: | 2021-10-17 14:34:18 |
Message-ID: | 1409812.1634481258@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> The virtual join table doesn’t have a ctid, only physical tables do, and
> the ctid of physical tables apparently aren’t propogated when they are
> joined.
We leave the system columns out of the join because otherwise they'd
surely conflict between the two sides of the join. However, you could
still reference either one with "tmp1.ctid" or "tmp2.ctid".
There might be an opportunity here to improve the error message's hint:
regression=# SELECT CTID
regression-# FROM tmp1
regression-# INNER JOIN tmp2 ON tmp1.id = tmp2.id;
ERROR: column "ctid" does not exist
LINE 1: SELECT CTID
^
HINT: There is a column named "ctid" in table "tmp1", but it cannot be referenced from this part of the query.
"cannot be referenced" is probably a shade misleading, given the
availability of the qualified-name alternative.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2021-10-17 14:50:24 | Re: BUG #17233: Incorrect behavior of DELETE command with bad subquery in WHERE clause |
Previous Message | David G. Johnston | 2021-10-17 14:15:48 | Re: BUG #17233: Incorrect behavior of DELETE command with bad subquery in WHERE clause |