BUG #16520: Deleting from non-existent column in CTE removes all rows

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #16520: Deleting from non-existent column in CTE removes all rows
Дата
Msg-id 16520-e4e105305f3d0c4a@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #16520: Deleting from non-existent column in CTE removes all rows  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #16520: Deleting from non-existent column in CTE removes all rows  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-bugs
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:

Using the `postgres:12` docker image and given the following:
```
DROP TABLE IF EXISTS test;
CREATE TABLE test (
  id SERIAL,
  username varchar(32)
);
INSERT INTO test (username)
VALUES ('Jesse'), ('Jesse'), ('Scott'), ('Scott'), ('John');
```

This will throw an error that the column does not exist:
```
WITH to_delete AS (
  SELECT MIN(id), username
  FROM test
  GROUP BY username
  HAVING count(*) > 1
)
SELECT id
FROM to_delete;
```

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
);
```

More information: https://stackoverflow.com/q/62661721/3903479


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [BUG][PATCH] ecpg crash with bytea type and cursors
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: BUG #16519: SET SESSION ROLE in plpgsql requires string literal.