Fix pg_dump's failure to honor dependencies of SQL functions.
Tom Lane <tgl@sss.pgh.pa.us>
Fix pg_dump's failure to honor dependencies of SQL functions. A new-style SQL function can contain a parse-time dependency on a unique index, much as views and matviews can (such cases arise from GROUP BY and ON CONFLICT clauses, for example). To dump and restore such a function successfully, pg_dump must postpone the function until after the unique index is created, which will happen in the post-data part of the dump. Therefore we have to remove the normal constraint that functions are dumped in pre-data. Add code similar to the existing logic that handles this for matviews. I added test cases for both as well, since code coverage tests showed that we weren't testing the matview logic. Per report from Sami Imseih. Back-patch to v14 where new-style SQL functions came in. Discussion: https://postgr.es/m/2C1933AB-C2F8-499B-9D18-4AC1882256A0@amazon.com
Files
| Path | Change | +/− |
|---|---|---|
| src/bin/pg_dump/pg_dump.c | modified | +4 −1 |
| src/bin/pg_dump/pg_dump.h | modified | +1 −0 |
| src/bin/pg_dump/pg_dump_sort.c | modified | +44 −0 |
| src/bin/pg_dump/t/002_pg_dump.pl | modified | +40 −0 |
Discussion
- [BUG] pg_dump does not properly deal with BEGIN ATOMIC function 18 messages · 2023-05-31 → 2023-06-13