Wrong results from Parallel Hash Full Join

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Wrong results from Parallel Hash Full Join
Date: 2023-04-12 11:35:53
Message-ID: CAMbWs48Nde1Mv=BJv6_vXmRKHMuHZm2Q_g4F6Z3_pn+3EV6BGQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I came across $subject and reduced the repro query as below.

create table a (i int);
create table b (i int);
insert into a values (1);
insert into b values (2);
update b set i = 2;

set min_parallel_table_scan_size to 0;
set parallel_tuple_cost to 0;
set parallel_setup_cost to 0;

# explain (costs off) select * from a full join b on a.i = b.i;
QUERY PLAN
------------------------------------------
Gather
Workers Planned: 2
-> Parallel Hash Full Join
Hash Cond: (a.i = b.i)
-> Parallel Seq Scan on a
-> Parallel Hash
-> Parallel Seq Scan on b
(7 rows)

# select * from a full join b on a.i = b.i;
i | i
---+---
1 |
(1 row)

Tuple (NULL, 2) is missing from the results.

Thanks
Richard

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2023-04-12 11:48:08 Re: [BUG #17888] Incorrect memory access in gist__int_ops for an input array with many elements
Previous Message Amit Kapila 2023-04-12 11:23:35 Re: Support logical replication of DDLs