v6-0001-refactor-_tocEntryRequired-for-STATISTICS-DATA.patch

text/x-patch

Filename: v6-0001-refactor-_tocEntryRequired-for-STATISTICS-DATA.patch
Type: text/x-patch
Part: 0
Message: Re: Statistics Import and Export

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch v6-0001
Subject: refactor _tocEntryRequired for STATISTICS DATA.
File+
src/bin/pg_dump/pg_backup_archiver.c 9 12
From 87ec2ad2f7dba7cce39a959ef02413be68caf4fb Mon Sep 17 00:00:00 2001
From: jian he <jian.universality@gmail.com>
Date: Tue, 25 Feb 2025 14:13:24 +0800
Subject: [PATCH v6 1/4] refactor _tocEntryRequired for STATISTICS DATA.

we don't dump STATISTICS DATA in --section=pre-data.
so in _tocEntryRequired, we evaulate "(strcmp(te->desc, "STATISTICS DATA") == 0)"
after ``switch (curSection)``.
---
 src/bin/pg_dump/pg_backup_archiver.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 632077113a4..0fc4ba04ba4 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -2932,14 +2932,6 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
 		strcmp(te->desc, "SEARCHPATH") == 0)
 		return REQ_SPECIAL;
 
-	if (strcmp(te->desc, "STATISTICS DATA") == 0)
-	{
-		if (!ropt->dumpStatistics)
-			return 0;
-		else
-			res = REQ_STATS;
-	}
-
 	/*
 	 * DATABASE and DATABASE PROPERTIES also have a special rule: they are
 	 * restored in createDB mode, and not restored otherwise, independently of
@@ -2984,10 +2976,6 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
 	if (ropt->no_subscriptions && strcmp(te->desc, "SUBSCRIPTION") == 0)
 		return 0;
 
-	/* If it's statistics and we don't want statistics, maybe ignore it */
-	if (!ropt->dumpStatistics && strcmp(te->desc, "STATISTICS DATA") == 0)
-		return 0;
-
 	/* Ignore it if section is not to be dumped/restored */
 	switch (curSection)
 	{
@@ -3008,6 +2996,15 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
 			return 0;
 	}
 
+	/* If it's statistics and we don't want statistics, ignore it */
+	if (strcmp(te->desc, "STATISTICS DATA") == 0)
+	{
+		if (!ropt->dumpStatistics)
+			return 0;
+		else
+			return REQ_STATS;
+	}
+
 	/* Ignore it if rejected by idWanted[] (cf. SortTocFromFile) */
 	if (ropt->idWanted && !ropt->idWanted[te->dumpId - 1])
 		return 0;

base-commit: 39de4f157d3ac0b889bb276c2487fe160578f967
-- 
2.48.1