pg_dump: Don't use enums for defining bit mask values
authorPeter Eisentraut <[email protected]>
Fri, 11 Dec 2020 18:15:30 +0000 (19:15 +0100)
committerPeter Eisentraut <[email protected]>
Fri, 11 Dec 2020 18:15:30 +0000 (19:15 +0100)
This usage would mean that values of the enum type are potentially not
one of the enum values.  Use macros instead, like everywhere else.

Discussion: https://www.postgresql.org/message-id/14dde730-1d34-260e-fa9d-7664df2d6313@enterprisedb.com

src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_backup_archiver.h
src/bin/pg_dump/pg_backup_utils.h

index b961a24b36dd1ae76e9234a88339a23f5d52620d..1f82c6499be16fee5bedfa8c8adf37617fe8cefd 100644 (file)
@@ -86,7 +86,7 @@ static void _selectTableAccessMethod(ArchiveHandle *AH, const char *tableam);
 static void processEncodingEntry(ArchiveHandle *AH, TocEntry *te);
 static void processStdStringsEntry(ArchiveHandle *AH, TocEntry *te);
 static void processSearchPathEntry(ArchiveHandle *AH, TocEntry *te);
-static teReqs _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH);
+static int _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH);
 static RestorePass _tocEntryRestorePass(TocEntry *te);
 static bool _tocEntryIsACL(TocEntry *te);
 static void _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te);
@@ -757,7 +757,7 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
 {
    RestoreOptions *ropt = AH->public.ropt;
    int         status = WORKER_OK;
-   teReqs      reqs;
+   int         reqs;
    bool        defnDumped;
 
    AH->currentTE = te;
@@ -1868,7 +1868,7 @@ getTocEntryByDumpId(ArchiveHandle *AH, DumpId id)
    return NULL;
 }
 
-teReqs
+int
 TocIDRequired(ArchiveHandle *AH, DumpId id)
 {
    TocEntry   *te = getTocEntryByDumpId(AH, id);
@@ -2803,10 +2803,10 @@ StrictNamesCheck(RestoreOptions *ropt)
  * REQ_SCHEMA and REQ_DATA bits if we want to restore schema and/or data
  * portions of this TOC entry, or REQ_SPECIAL if it's a special entry.
  */
-static teReqs
+static int
 _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
 {
-   teReqs      res = REQ_SCHEMA | REQ_DATA;
+   int         res = REQ_SCHEMA | REQ_DATA;
    RestoreOptions *ropt = AH->public.ropt;
 
    /* These items are treated specially */
index fb8d226d487d3d2efe0005274a01d879a184bf78..177360ed6e6fb5a896256444073f16da735b9f44 100644 (file)
@@ -229,12 +229,9 @@ typedef enum
 #define RESTORE_PASS_LAST RESTORE_PASS_POST_ACL
 } RestorePass;
 
-typedef enum
-{
-   REQ_SCHEMA = 0x01,          /* want schema */
-   REQ_DATA = 0x02,            /* want data */
-   REQ_SPECIAL = 0x04          /* for special TOC entries */
-} teReqs;
+#define REQ_SCHEMA 0x01        /* want schema */
+#define REQ_DATA   0x02        /* want data */
+#define REQ_SPECIAL    0x04        /* for special TOC entries */
 
 struct _archiveHandle
 {
@@ -386,7 +383,7 @@ struct _tocEntry
 
    /* working state while dumping/restoring */
    pgoff_t     dataLength;     /* item's data size; 0 if none or unknown */
-   teReqs      reqs;           /* do we need schema and/or data of object */
+   int         reqs;           /* do we need schema and/or data of object (REQ_* bit mask) */
    bool        created;        /* set for DATA member if TABLE was created */
 
    /* working state (needed only for parallel restore) */
@@ -436,7 +433,7 @@ extern void WriteDataChunksForTocEntry(ArchiveHandle *AH, TocEntry *te);
 extern ArchiveHandle *CloneArchive(ArchiveHandle *AH);
 extern void DeCloneArchive(ArchiveHandle *AH);
 
-extern teReqs TocIDRequired(ArchiveHandle *AH, DumpId id);
+extern int TocIDRequired(ArchiveHandle *AH, DumpId id);
 TocEntry   *getTocEntryByDumpId(ArchiveHandle *AH, DumpId id);
 extern bool checkSeek(FILE *fp);
 
index ca51e259665537a30a2815964d9b75a7ddfef7a1..2bea167a69bc50d75b87a34355eacc4e89fa99c4 100644 (file)
 
 #include "common/logging.h"
 
-typedef enum                   /* bits returned by set_dump_section */
-{
-   DUMP_PRE_DATA = 0x01,
-   DUMP_DATA = 0x02,
-   DUMP_POST_DATA = 0x04,
-   DUMP_UNSECTIONED = 0xff
-} DumpSections;
+/* bits returned by set_dump_section */
+#define DUMP_PRE_DATA      0x01
+#define DUMP_DATA          0x02
+#define DUMP_POST_DATA     0x04
+#define DUMP_UNSECTIONED   0xff
 
 typedef void (*on_exit_nicely_callback) (int code, void *arg);