Avoid a join between relations having the FK to detect FK violation.
The planner might optimize this considering the PK must exist on the
referenced side at some point, effectively masking a bug this test
tries to detect.
Tom Lane and Jehan-Guillaume de Rorthais
Discussion: https://postgr.es/m/467.
1581270529@sss.pgh.pa.us
INSERT INTO fkpart9.pk VALUES (35);
INSERT INTO fkpart9.fk VALUES (35);
DELETE FROM fkpart9.pk WHERE a=35;
-SELECT fk.fk_a, pk.a
-FROM fkpart9.fk
-LEFT JOIN fkpart9.pk ON fk.fk_a = pk.a
-WHERE fk.fk_a=35;
- fk_a | a
-------+---
+SELECT * FROM fkpart9.pk;
+ a
+---
+(0 rows)
+
+SELECT * FROM fkpart9.fk;
+ fk_a
+------
(0 rows)
DROP SCHEMA fkpart9 CASCADE;
INSERT INTO fkpart9.pk VALUES (35);
INSERT INTO fkpart9.fk VALUES (35);
DELETE FROM fkpart9.pk WHERE a=35;
-SELECT fk.fk_a, pk.a
-FROM fkpart9.fk
-LEFT JOIN fkpart9.pk ON fk.fk_a = pk.a
-WHERE fk.fk_a=35;
+SELECT * FROM fkpart9.pk;
+SELECT * FROM fkpart9.fk;
DROP SCHEMA fkpart9 CASCADE;