Back-branch bugs with fully-prunable UPDATEs

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Cc: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Date: 2019-04-06T20:27:59Z
Lists: pgsql-hackers
This test script works fine in HEAD:

drop table if exists parttbl cascade;
CREATE TABLE parttbl (a int, b int) PARTITION BY LIST (a);
CREATE TABLE parttbl_1 PARTITION OF parttbl FOR VALUES IN (NULL,500,501,502);
UPDATE parttbl SET a = NULL, b = NULL WHERE a = 1600 AND b = 999;

In v11, it suffers an assertion failure in ExecSetupPartitionTupleRouting.

In v10, it doesn't crash, but we do get

WARNING:  relcache reference leak: relation "parttbl" not closed

which is surely a bug as well.

(This is a boiled-down version of the script I mentioned in
https://www.postgresql.org/message-id/13344.1554578481@sss.pgh.pa.us)

This seems to be related to what Amit Langote complained of in
https://www.postgresql.org/message-id/21e7eaa4-0d4d-20c2-a1f7-c7e96f4ce440@lab.ntt.co.jp
but since there's no foreign tables involved at all, either it's
a different bug or he misdiagnosed what he was seeing.

			regards, tom lane



Commits

  1. Clean up side-effects of commits ab5fcf2b0 et al.

  2. Fix plan created for inherited UPDATE/DELETE with all tables excluded.