mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
Ensure that "pg_restore -l" reports dependent TOC entries correctly.
If -l was specified together with selective-restore options such as -n
or -N, dependent TOC entries such as comments would be omitted from
the listing, even when an actual restore would have selected them.
This happened because PrintTOCSummary neglected to update the te->reqs
marking of the entry they depended on.
Per report from Justin Pryzby. This has been wrong since 0d4e6ed30
taught _tocEntryRequired to sometimes look at the "reqs" marking of
other TOC entries, so back-patch to all supported branches.
Discussion: https://postgr.es/m/ZjoeirG7yxODdC4P@pryzbyj2023
This commit is contained in:
parent
363e8c2f98
commit
6a458d93ba
@ -1222,10 +1222,13 @@ PrintTOCSummary(Archive *AHX)
|
||||
curSection = SECTION_PRE_DATA;
|
||||
for (te = AH->toc->next; te != AH->toc; te = te->next)
|
||||
{
|
||||
/* This bit must match ProcessArchiveRestoreOptions' marking logic */
|
||||
if (te->section != SECTION_NONE)
|
||||
curSection = te->section;
|
||||
te->reqs = _tocEntryRequired(te, curSection, AH);
|
||||
/* Now, should we print it? */
|
||||
if (ropt->verbose ||
|
||||
(_tocEntryRequired(te, curSection, AH) & (REQ_SCHEMA | REQ_DATA)) != 0)
|
||||
(te->reqs & (REQ_SCHEMA | REQ_DATA)) != 0)
|
||||
{
|
||||
char *sanitized_name;
|
||||
char *sanitized_schema;
|
||||
|
Loading…
Reference in New Issue
Block a user