forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit89c30d1
committed
Fix pg_dump's handling of public schema with both -c and -C options.
Since -c plus -C requests dropping and recreating the target databaseas a whole, not dropping individual objects in it, we should assume thatthe public schema already exists and need not be created. The previouscoding considered only the state of the -c option, so it would emit"CREATE SCHEMA public" anyway, leading to an unexpected error in restore.Back-patch to 9.2. Older versions did not accept -c with -C so theissue doesn't arise there. (The logic being patched here dates to 8.0,cf commit2193121, so it's not really wrong that it didn't considerthe case at the time.)Note that versions before 9.6 will still attempt to emit REVOKE/GRANTon the public schema; but that happens without -c/-C too, and doesn'tseem to be the focus of this complaint. I considered extending thisstanza to also skip the public schema's ACL, but that would be amisfeature, as it'd break cases where users intentionally changed thatACL. The real fix for this aspect is Stephen Frost's work to not dumpbuilt-in ACLs, and that's not going to get back-ported.Per bugs #13804 and #14271. Solution found by David Johnston and laterrediscovered by me.Report: <20151207163520.2628.95990@wrigleys.postgresql.org>Report: <20160801021955.1430.47434@wrigleys.postgresql.org>1 parentb2148e1 commit89c30d1
1 file changed
+11
-4
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3205 | 3205 |
| |
3206 | 3206 |
| |
3207 | 3207 |
| |
3208 |
| - | |
3209 |
| - | |
| 3208 | + | |
| 3209 | + | |
| 3210 | + | |
| 3211 | + | |
| 3212 | + | |
| 3213 | + | |
| 3214 | + | |
| 3215 | + | |
| 3216 | + | |
| 3217 | + | |
3210 | 3218 |
| |
3211 |
| - | |
| 3219 | + | |
3212 | 3220 |
| |
3213 | 3221 |
| |
3214 | 3222 |
| |
3215 | 3223 |
| |
3216 |
| - | |
3217 | 3224 |
| |
3218 | 3225 |
| |
3219 | 3226 |
| |
|
0 commit comments
Comments
(0)