BUG #2839: after record with NULL field, query result is wrong

Started by dvsover 19 years ago2 messagesbugs
Jump to latest
#1dvs
dvs@fon.kamchatka.ru

The following bug has been logged online:

Bug reference: 2839
Logged by: Vladimir
Email address: dvs@fon.kamchatka.ru
PostgreSQL version: 8.1.3
Operating system: FreeBSD
Description: after record with NULL field, query result is wrong
Details:

create table tst (a int[]);
insert into tst values ('{1}'); -- (1)
insert into tst values (null);
insert into tst values ('{2}'); -- (3)
select z.a from tst z where exists (select 1 from
(
select generate_series(1,1) as s,* from (select z.a as arr0) qq
) q
where (q.arr0[q.s] is null) );
a
-----

{2}
(2 rows)

-- What difference between (1) and (3) records?
-- really, my query more complex (auto generated) and table has many
columns, wrong rows return after row where tested field is null

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: dvs (#1)
Re: BUG #2839: after record with NULL field, query result is wrong

"Vladimir" <dvs@fon.kamchatka.ru> writes:

create table tst (a int[]);
insert into tst values ('{1}'); -- (1)
insert into tst values (null);
insert into tst values ('{2}'); -- (3)
select z.a from tst z where exists (select 1 from
(
select generate_series(1,1) as s,* from (select z.a as arr0) qq
) q
where (q.arr0[q.s] is null) );

Hmm, surprising this hasn't been found before, because the underlying
bug has been around for a long time :-(. Fix committed --- thanks for
the report!

regards, tom lane