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.