Fix crash in postgres_fdw for provably-empty remote UPDATE/DELETE.
Tom Lane <tgl@sss.pgh.pa.us>
Fix crash in postgres_fdw for provably-empty remote UPDATE/DELETE. In 86dc90056, I'd written find_modifytable_subplan with the assumption that if the immediate child of a ModifyTable is a Result, it must be a projecting Result with a subplan. However, if the UPDATE or DELETE has a provably-constant-false WHERE clause, that's not so: we'll generate a dummy subplan with a childless Result. Add the missing null-check so we don't crash on such cases. Per report from Alexander Pyhalov. Discussion: https://postgr.es/m/b9a6f53549456b2f3e2fd150dcd79d72@postgrespro.ru
Files
| Path | Change | +/− |
|---|---|---|
| contrib/postgres_fdw/expected/postgres_fdw.out | modified | +20 −0 |
| contrib/postgres_fdw/postgres_fdw.c | modified | +3 −1 |
| contrib/postgres_fdw/sql/postgres_fdw.sql | modified | +4 −0 |
Discussion
- PostgreSQL 14 backend crash on incorrect trigger 2 messages · 2021-07-07