Re: Test instability when pg_dump orders by OID
Noah Misch <noah@leadboat.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Rewrite previous commit's test for TestUpgradeXversion compatibility.
- fb75e1ef7212 13.23 landed
- 22c6a44f01fd 14.20 landed
- 090c9c9608b3 15.15 landed
- c6dca7c3dd65 18.0 landed
- 49a09c6c51c0 17.7 landed
- 412d29fd2166 16.11 landed
- ad4412480d3f 19 (unreleased) landed
-
Sort DO_DEFAULT_ACL dump objects independent of OIDs.
- 4948bb9df421 14.20 landed
- 05341b2e9914 13.23 landed
- fbf967e996dd 15.15 landed
- e8d22095e5df 17.7 landed
- e68fa9a830f0 16.11 landed
- 7652142f4c14 18.0 landed
- b61a5c4bed7d 19 (unreleased) landed
-
Remove, from stable branches, the new assertion of no pg_dump OID sort.
- bc05590c7fcd 13.22 landed
- 7846f470964c 14.19 landed
- 70637d7ae0a2 15.14 landed
- 28e7252e450a 17.6 landed
- 216683296101 16.10 landed
- 0d2734eac345 18.0 landed
-
Sort dump objects independent of OIDs, for the 7 holdout object types.
- 04bc2c42f765 13.22 landed
- 7ee7c1cd389e 14.19 landed
- 22f126da6cce 15.14 landed
- 1ca1889ea6a3 17.6 landed
- 0ac1581c3f2d 16.10 landed
- c0ae03384fa3 18.0 landed
- 0decd5e89db9 19 (unreleased) landed
-
pg_dump: provide a stable sort order for rules.
- cc9a62c51a18 13.22 landed
- 25388fb2cb84 14.19 landed
- e99010cbd8e2 15.14 landed
- 9affed26349a 16.10 landed
- 5dd4957b28df 17.6 landed
-
pg_dump: include comments on not-null constraints on domains, too
- da71717f0a7c 19 (unreleased) cited
-
Verify roundtrip dump/restore of regression database
- 172259afb563 18.0 cited
-
In pg_dump, use simplehash.h to look up dumpable objects by OID.
- 92316a4582a5 15.0 cited
-
Tweak pg_dumpall to add GRANT CONNECT ON DATABASE ... TO PUBLIC when dumping
- 2ee56b6a3ab8 8.3.0 cited
-
Restructure operator classes to allow improved handling of cross-data-type
- a78fcfb51243 8.3.0 cited
-
First phase of project to use fixed OIDs for all system catalogs and
- 7c13781ee7a6 8.1.0 cited
-
Tweak pg_dump to say GRANT ALL when appropriate, rather than enumerating
- 1b68bcfad33e 7.2.1 cited
On Fri, Aug 22, 2025 at 10:20:19PM -0700, Noah Misch wrote: > On Mon, Aug 11, 2025 at 12:20:09AM +0500, Kirill Reshke wrote: > > On Sun, 10 Aug 2025 at 21:37, Noah Misch <noah@leadboat.com> wrote: > > > Thanks. Could you make src/test/regress create regression database objects so > > > the code addition has coverage? Using pg_signal_backend and > > > pg_read_all_settings as the default ACL role names should avoid that suite's > > > limitations. (The suite must run under any role name and must drop any roles > > > it creates, so it can't assume any particular non-system role name survives > > > the suite.) > > > > Here is my attempt at implementing necessary legwork. It's v3 because > > I accidentally cleared the CC list in my previous attempt. Noah kindly > > explained to me how additions to the regress test will cause pg_dump > > logic to be tested as well. > > TIL 002_pg_upgarde.pl runs a regression suite, so if we create any > > database objects in it, it will end up being dumped and restored in > > that test. > > So, I checked that without changes in pg_dump_sort.c, 002_pg_upgarde > > fails and with changes it does not. > > Great. > > > PFA. I am not horribly sure about my additions to the > > `src/test/regress/sql/privileges.sql` file, maybe appending SQL to the > > end of the file is not the best option and there is a better place. > > I like how src/test/regress/sql/collate.icu.utf8.sql puts that kind of thing > just after cleanup, so I put it there. Pushed as b61a5c4 with a few other > cosmetic changes. Thanks. TestUpgradeXversion fails: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=copperhead&dt=2025-08-23%2007%3A34%3A38 --- /home/pgbf/buildroot/upgrade.copperhead/REL_18_STABLE/origin-REL_16_STABLE.sql.fixed 2025-08-23 10:28:16.464887433 +0200 +++ /home/pgbf/buildroot/upgrade.copperhead/REL_18_STABLE/converted-REL_16_STABLE-to-REL_18_STABLE.sql.fixed 2025-08-23 10:28:16.508887289 +0200 @@ -606490,13 +606490,13 @@ -- -- Name: DEFAULT PRIVILEGES FOR TABLES; Type: DEFAULT ACL; Schema: -; Owner: pg_read_all_settings -- -ALTER DEFAULT PRIVILEGES FOR ROLE pg_read_all_settings REVOKE SELECT,INSERT,REFERENCES,DELETE,TRIGGER,TRUNCATE,UPDATE ON TABLES FROM pg_read_all_settings; -ALTER DEFAULT PRIVILEGES FOR ROLE pg_read_all_settings GRANT SELECT,REFERENCES,DELETE,TRIGGER,TRUNCATE,UPDATE ON TABLES TO pg_read_all_settings; +ALTER DEFAULT PRIVILEGES FOR ROLE pg_read_all_settings REVOKE ALL ON TABLES FROM pg_read_all_settings; +ALTER DEFAULT PRIVILEGES FOR ROLE pg_read_all_settings GRANT SELECT,REFERENCES,DELETE,TRIGGER,TRUNCATE,MAINTAIN,UPDATE ON TABLES TO pg_read_all_settings; Crossing the boundary of the MAINTAIN privilege existing seems relevant. Will fix. (My checklist did tell me to do a local run of TestUpgradeXversion. I skipped it, betting this patch wouldn't break that test. I lost that bet.)