BUG #18001: Invalid subquery passed as true

Started by PG Bug reporting formalmost 3 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 18001
Logged by: Piet van Ham
Email address: pvham90@gmail.com
PostgreSQL version: 11.20
Operating system: Linux
Description:

create table table_a (column_a varchar(16), column_b varchar(16));
create table table_b (column_c varchar(16), column_d varchar(16));

insert into table_a (column_a, column_b) values ('row1a','row1b');
insert into table_b (column_c, column_d) values ('row2a','row2b');

delete from table_a where column_a in (select column_a from table_b); --the
subquery is invalid, but the where clause is passed as true resulting in all
records deleted

select count(*) from table_a;
-- 0

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #18001: Invalid subquery passed as true

hi

On Mon, 26 Jun 2023, 19:11 PG Bug reporting form, <noreply@postgresql.org>
wrote:

The following bug has been logged on the website:

Bug reference: 18001
Logged by: Piet van Ham
Email address: pvham90@gmail.com
PostgreSQL version: 11.20
Operating system: Linux
Description:

create table table_a (column_a varchar(16), column_b varchar(16));
create table table_b (column_c varchar(16), column_d varchar(16));

insert into table_a (column_a, column_b) values ('row1a','row1b');
insert into table_b (column_c, column_d) values ('row2a','row2b');

delete from table_a where column_a in (select column_a from table_b); --the
subquery is invalid, but the where clause is passed as true resulting in
all
records deleted

select count(*) from table_a;
-- 0

this is unfortunately working as required by the sql standard, see
https://wiki.postgresql.org/wiki/FAQ#Why_doesn.27t_PostgreSQL_report_a_column_not_found_error_when_using_the_wrong_name_in_a_subquery.3F

Show quoted text