Re: BUG #16520: Deleting from non-existent column in CTE removes all rows - Mailing list pgsql-bugs

From David G. Johnston
Subject Re: BUG #16520: Deleting from non-existent column in CTE removes all rows
Date
Msg-id CAKFQuwbY5dPkv1GNsuxyoPpCYPrao=W0P5NnQ==wBq7vMR-KEQ@mail.gmail.com
Whole thread Raw
In response to BUG #16520: Deleting from non-existent column in CTE removes all rows  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs
On Tuesday, June 30, 2020, PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      16520
Logged by:          Jesse Lieberg
Email address:      jesse007@ymail.com
PostgreSQL version: 12.3
Operating system:   debian:buster-slim
Description:       

However, the this will not return an error and instead deletes all rows:
```
WITH to_delete AS (
  SELECT MIN(id), username
  FROM test
  GROUP BY username
  HAVING count(*) > 1
)
DELETE FROM test
WHERE id IN (
  SELECT id
  FROM to_delete
);

Yes, because the column id does exist - you just omitted the table reference which ends up making the subquery query equivalent to:  “select test.id from to_delete” which is mandatory, and generally useful, sql syntax.

David J.

pgsql-bugs by date:

Previous
From: Michael Meskes
Date:
Subject: Re: [BUG][PATCH] ecpg crash with bytea type and cursors
Next
From: Jehan-Guillaume de Rorthais
Date:
Subject: Re: [BUG][PATCH] ecpg crash with bytea type and cursors