Re: [HACKERS] Regression tests vs existing users in an installation
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Stephen Frost <sfrost@snowman.net>
Cc: Robert Haas <robertmhaas@gmail.com>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2019-06-28T18:42:49Z
Lists: pgsql-hackers
Attachments
- 0001-code-and-doc-fixes.patch (text/x-diff) patch 0001
- 0002-clean-up-test-cases.patch (text/x-diff) patch 0002
OK, here's a completed patch to add checking for naming-rule violations. I updated regress.sgml to clarify the naming rules (and failed to resist the temptation to update a lot of other somewhat-obsolete statements there, too). Also worth noting is that I added an IsReservedName check to pg_replication_origin_create(), ie it will no longer allow user-selected origin names starting with "pg_". This seems like a good idea considering that we generate internal origin names that look like that. I have not done anything equivalent for subscription names, but should we consider doing so? I touched the TAP tests only to the extent necessary to make them pass cleanly --- mostly I had to fool with pg_dump/t/010_dump_connstr.pl because it whines if the restore step emits any warnings. Perhaps there's another way to address that with less invasive changes to that test script; but I couldn't think of one other than ignoring warnings, which didn't seem like a great idea. This patch doesn't address the issue that we think rolenames.sql is unsafe to run in "make installcheck" mode. That seems like a separable problem, and we'd have to adjust that script as shown here anyway. Barring objections, I'll push this shortly (to HEAD only) and turn on the enabling switch on one or two of my buildfarm critters. regards, tom lane
Commits
-
Move rolenames test out of the core regression tests.
- c91504b958e1 12.0 landed
-
Add an enforcement mechanism for global object names in regression tests.
- 54100f5c6052 12.0 landed
-
Fix regression tests to use only global names beginning with "regress_".
- ca129e58c01f 12.0 landed
-
Disallow user-created replication origins named "pg_xxx".
- a1e61badf97b 12.0 landed