Use C99-designated initializer syntax for more arrays
authorMichael Paquier <michael@paquier.xyz>
Tue, 27 Feb 2024 23:42:36 +0000 (08:42 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 27 Feb 2024 23:42:36 +0000 (08:42 +0900)
This is in the same spirit as ef5e2e90859a, updating this time some
arrays in parser.c, relpath.c, guc_tables.c and pg_dump_sort.c so as the
order of their elements has no need to match the enum structures they
are based on anymore.

Author: Jelte Fennema-Nio
Reviewed-by: Jian He, Japin Li
Discussion: https://postgr.es/m/CAGECzQT3caUbcCcszNewCCmMbCuyP7XNAm60J3ybd6PN5kH2Dw@mail.gmail.com

src/backend/parser/parser.c
src/backend/utils/misc/guc_tables.c
src/bin/pg_dump/pg_dump_sort.c
src/common/relpath.c

index 9ec628ecbdf8b01fd336299a3fb8e98c4798be88..3a1fa91c1b675fe5f363e4fea0cd3f8e73695893 100644 (file)
@@ -56,12 +56,12 @@ raw_parser(const char *str, RawParseMode mode)
    {
        /* this array is indexed by RawParseMode enum */
        static const int mode_token[] = {
-           0,                  /* RAW_PARSE_DEFAULT */
-           MODE_TYPE_NAME,     /* RAW_PARSE_TYPE_NAME */
-           MODE_PLPGSQL_EXPR,  /* RAW_PARSE_PLPGSQL_EXPR */
-           MODE_PLPGSQL_ASSIGN1,   /* RAW_PARSE_PLPGSQL_ASSIGN1 */
-           MODE_PLPGSQL_ASSIGN2,   /* RAW_PARSE_PLPGSQL_ASSIGN2 */
-           MODE_PLPGSQL_ASSIGN3    /* RAW_PARSE_PLPGSQL_ASSIGN3 */
+           [RAW_PARSE_DEFAULT] = 0,
+           [RAW_PARSE_TYPE_NAME] = MODE_TYPE_NAME,
+           [RAW_PARSE_PLPGSQL_EXPR] = MODE_PLPGSQL_EXPR,
+           [RAW_PARSE_PLPGSQL_ASSIGN1] = MODE_PLPGSQL_ASSIGN1,
+           [RAW_PARSE_PLPGSQL_ASSIGN2] = MODE_PLPGSQL_ASSIGN2,
+           [RAW_PARSE_PLPGSQL_ASSIGN3] = MODE_PLPGSQL_ASSIGN3,
        };
 
        yyextra.have_lookahead = true;
index 527a2b273401cf47ecfe57d66cd6de781bfbebe2..a63ea042edf0aa90b42a57f4189f113cda45413d 100644 (file)
@@ -627,13 +627,13 @@ bool      in_hot_standby_guc;
  */
 const char *const GucContext_Names[] =
 {
-    /* PGC_INTERNAL */ "internal",
-    /* PGC_POSTMASTER */ "postmaster",
-    /* PGC_SIGHUP */ "sighup",
-    /* PGC_SU_BACKEND */ "superuser-backend",
-    /* PGC_BACKEND */ "backend",
-    /* PGC_SUSET */ "superuser",
-    /* PGC_USERSET */ "user"
+   [PGC_INTERNAL] = "internal",
+   [PGC_POSTMASTER] = "postmaster",
+   [PGC_SIGHUP] = "sighup",
+   [PGC_SU_BACKEND] = "superuser-backend",
+   [PGC_BACKEND] = "backend",
+   [PGC_SUSET] = "superuser",
+   [PGC_USERSET] = "user",
 };
 
 StaticAssertDecl(lengthof(GucContext_Names) == (PGC_USERSET + 1),
@@ -646,20 +646,20 @@ StaticAssertDecl(lengthof(GucContext_Names) == (PGC_USERSET + 1),
  */
 const char *const GucSource_Names[] =
 {
-    /* PGC_S_DEFAULT */ "default",
-    /* PGC_S_DYNAMIC_DEFAULT */ "default",
-    /* PGC_S_ENV_VAR */ "environment variable",
-    /* PGC_S_FILE */ "configuration file",
-    /* PGC_S_ARGV */ "command line",
-    /* PGC_S_GLOBAL */ "global",
-    /* PGC_S_DATABASE */ "database",
-    /* PGC_S_USER */ "user",
-    /* PGC_S_DATABASE_USER */ "database user",
-    /* PGC_S_CLIENT */ "client",
-    /* PGC_S_OVERRIDE */ "override",
-    /* PGC_S_INTERACTIVE */ "interactive",
-    /* PGC_S_TEST */ "test",
-    /* PGC_S_SESSION */ "session"
+   [PGC_S_DEFAULT] = "default",
+   [PGC_S_DYNAMIC_DEFAULT] = "default",
+   [PGC_S_ENV_VAR] = "environment variable",
+   [PGC_S_FILE] = "configuration file",
+   [PGC_S_ARGV] = "command line",
+   [PGC_S_GLOBAL] = "global",
+   [PGC_S_DATABASE] = "database",
+   [PGC_S_USER] = "user",
+   [PGC_S_DATABASE_USER] = "database user",
+   [PGC_S_CLIENT] = "client",
+   [PGC_S_OVERRIDE] = "override",
+   [PGC_S_INTERACTIVE] = "interactive",
+   [PGC_S_TEST] = "test",
+   [PGC_S_SESSION] = "session",
 };
 
 StaticAssertDecl(lengthof(GucSource_Names) == (PGC_S_SESSION + 1),
@@ -670,96 +670,51 @@ StaticAssertDecl(lengthof(GucSource_Names) == (PGC_S_SESSION + 1),
  */
 const char *const config_group_names[] =
 {
-   /* UNGROUPED */
-   gettext_noop("Ungrouped"),
-   /* FILE_LOCATIONS */
-   gettext_noop("File Locations"),
-   /* CONN_AUTH_SETTINGS */
-   gettext_noop("Connections and Authentication / Connection Settings"),
-   /* CONN_AUTH_TCP */
-   gettext_noop("Connections and Authentication / TCP Settings"),
-   /* CONN_AUTH_AUTH */
-   gettext_noop("Connections and Authentication / Authentication"),
-   /* CONN_AUTH_SSL */
-   gettext_noop("Connections and Authentication / SSL"),
-   /* RESOURCES_MEM */
-   gettext_noop("Resource Usage / Memory"),
-   /* RESOURCES_DISK */
-   gettext_noop("Resource Usage / Disk"),
-   /* RESOURCES_KERNEL */
-   gettext_noop("Resource Usage / Kernel Resources"),
-   /* RESOURCES_VACUUM_DELAY */
-   gettext_noop("Resource Usage / Cost-Based Vacuum Delay"),
-   /* RESOURCES_BGWRITER */
-   gettext_noop("Resource Usage / Background Writer"),
-   /* RESOURCES_ASYNCHRONOUS */
-   gettext_noop("Resource Usage / Asynchronous Behavior"),
-   /* WAL_SETTINGS */
-   gettext_noop("Write-Ahead Log / Settings"),
-   /* WAL_CHECKPOINTS */
-   gettext_noop("Write-Ahead Log / Checkpoints"),
-   /* WAL_ARCHIVING */
-   gettext_noop("Write-Ahead Log / Archiving"),
-   /* WAL_RECOVERY */
-   gettext_noop("Write-Ahead Log / Recovery"),
-   /* WAL_ARCHIVE_RECOVERY */
-   gettext_noop("Write-Ahead Log / Archive Recovery"),
-   /* WAL_RECOVERY_TARGET */
-   gettext_noop("Write-Ahead Log / Recovery Target"),
-   /* WAL_SUMMARIZATION */
-   gettext_noop("Write-Ahead Log / Summarization"),
-   /* REPLICATION_SENDING */
-   gettext_noop("Replication / Sending Servers"),
-   /* REPLICATION_PRIMARY */
-   gettext_noop("Replication / Primary Server"),
-   /* REPLICATION_STANDBY */
-   gettext_noop("Replication / Standby Servers"),
-   /* REPLICATION_SUBSCRIBERS */
-   gettext_noop("Replication / Subscribers"),
-   /* QUERY_TUNING_METHOD */
-   gettext_noop("Query Tuning / Planner Method Configuration"),
-   /* QUERY_TUNING_COST */
-   gettext_noop("Query Tuning / Planner Cost Constants"),
-   /* QUERY_TUNING_GEQO */
-   gettext_noop("Query Tuning / Genetic Query Optimizer"),
-   /* QUERY_TUNING_OTHER */
-   gettext_noop("Query Tuning / Other Planner Options"),
-   /* LOGGING_WHERE */
-   gettext_noop("Reporting and Logging / Where to Log"),
-   /* LOGGING_WHEN */
-   gettext_noop("Reporting and Logging / When to Log"),
-   /* LOGGING_WHAT */
-   gettext_noop("Reporting and Logging / What to Log"),
-   /* PROCESS_TITLE */
-   gettext_noop("Reporting and Logging / Process Title"),
-   /* STATS_MONITORING */
-   gettext_noop("Statistics / Monitoring"),
-   /* STATS_CUMULATIVE */
-   gettext_noop("Statistics / Cumulative Query and Index Statistics"),
-   /* AUTOVACUUM */
-   gettext_noop("Autovacuum"),
-   /* CLIENT_CONN_STATEMENT */
-   gettext_noop("Client Connection Defaults / Statement Behavior"),
-   /* CLIENT_CONN_LOCALE */
-   gettext_noop("Client Connection Defaults / Locale and Formatting"),
-   /* CLIENT_CONN_PRELOAD */
-   gettext_noop("Client Connection Defaults / Shared Library Preloading"),
-   /* CLIENT_CONN_OTHER */
-   gettext_noop("Client Connection Defaults / Other Defaults"),
-   /* LOCK_MANAGEMENT */
-   gettext_noop("Lock Management"),
-   /* COMPAT_OPTIONS_PREVIOUS */
-   gettext_noop("Version and Platform Compatibility / Previous PostgreSQL Versions"),
-   /* COMPAT_OPTIONS_CLIENT */
-   gettext_noop("Version and Platform Compatibility / Other Platforms and Clients"),
-   /* ERROR_HANDLING_OPTIONS */
-   gettext_noop("Error Handling"),
-   /* PRESET_OPTIONS */
-   gettext_noop("Preset Options"),
-   /* CUSTOM_OPTIONS */
-   gettext_noop("Customized Options"),
-   /* DEVELOPER_OPTIONS */
-   gettext_noop("Developer Options"),
+   [UNGROUPED] = gettext_noop("Ungrouped"),
+   [FILE_LOCATIONS] = gettext_noop("File Locations"),
+   [CONN_AUTH_SETTINGS] = gettext_noop("Connections and Authentication / Connection Settings"),
+   [CONN_AUTH_TCP] = gettext_noop("Connections and Authentication / TCP Settings"),
+   [CONN_AUTH_AUTH] = gettext_noop("Connections and Authentication / Authentication"),
+   [CONN_AUTH_SSL] = gettext_noop("Connections and Authentication / SSL"),
+   [RESOURCES_MEM] = gettext_noop("Resource Usage / Memory"),
+   [RESOURCES_DISK] = gettext_noop("Resource Usage / Disk"),
+   [RESOURCES_KERNEL] = gettext_noop("Resource Usage / Kernel Resources"),
+   [RESOURCES_VACUUM_DELAY] = gettext_noop("Resource Usage / Cost-Based Vacuum Delay"),
+   [RESOURCES_BGWRITER] = gettext_noop("Resource Usage / Background Writer"),
+   [RESOURCES_ASYNCHRONOUS] = gettext_noop("Resource Usage / Asynchronous Behavior"),
+   [WAL_SETTINGS] = gettext_noop("Write-Ahead Log / Settings"),
+   [WAL_CHECKPOINTS] = gettext_noop("Write-Ahead Log / Checkpoints"),
+   [WAL_ARCHIVING] = gettext_noop("Write-Ahead Log / Archiving"),
+   [WAL_RECOVERY] = gettext_noop("Write-Ahead Log / Recovery"),
+   [WAL_ARCHIVE_RECOVERY] = gettext_noop("Write-Ahead Log / Archive Recovery"),
+   [WAL_RECOVERY_TARGET] = gettext_noop("Write-Ahead Log / Recovery Target"),
+   [WAL_SUMMARIZATION] = gettext_noop("Write-Ahead Log / Summarization"),
+   [REPLICATION_SENDING] = gettext_noop("Replication / Sending Servers"),
+   [REPLICATION_PRIMARY] = gettext_noop("Replication / Primary Server"),
+   [REPLICATION_STANDBY] = gettext_noop("Replication / Standby Servers"),
+   [REPLICATION_SUBSCRIBERS] = gettext_noop("Replication / Subscribers"),
+   [QUERY_TUNING_METHOD] = gettext_noop("Query Tuning / Planner Method Configuration"),
+   [QUERY_TUNING_COST] = gettext_noop("Query Tuning / Planner Cost Constants"),
+   [QUERY_TUNING_GEQO] = gettext_noop("Query Tuning / Genetic Query Optimizer"),
+   [QUERY_TUNING_OTHER] = gettext_noop("Query Tuning / Other Planner Options"),
+   [LOGGING_WHERE] = gettext_noop("Reporting and Logging / Where to Log"),
+   [LOGGING_WHEN] = gettext_noop("Reporting and Logging / When to Log"),
+   [LOGGING_WHAT] = gettext_noop("Reporting and Logging / What to Log"),
+   [PROCESS_TITLE] = gettext_noop("Reporting and Logging / Process Title"),
+   [STATS_MONITORING] = gettext_noop("Statistics / Monitoring"),
+   [STATS_CUMULATIVE] = gettext_noop("Statistics / Cumulative Query and Index Statistics"),
+   [AUTOVACUUM] = gettext_noop("Autovacuum"),
+   [CLIENT_CONN_STATEMENT] = gettext_noop("Client Connection Defaults / Statement Behavior"),
+   [CLIENT_CONN_LOCALE] = gettext_noop("Client Connection Defaults / Locale and Formatting"),
+   [CLIENT_CONN_PRELOAD] = gettext_noop("Client Connection Defaults / Shared Library Preloading"),
+   [CLIENT_CONN_OTHER] = gettext_noop("Client Connection Defaults / Other Defaults"),
+   [LOCK_MANAGEMENT] = gettext_noop("Lock Management"),
+   [COMPAT_OPTIONS_PREVIOUS] = gettext_noop("Version and Platform Compatibility / Previous PostgreSQL Versions"),
+   [COMPAT_OPTIONS_CLIENT] = gettext_noop("Version and Platform Compatibility / Other Platforms and Clients"),
+   [ERROR_HANDLING_OPTIONS] = gettext_noop("Error Handling"),
+   [PRESET_OPTIONS] = gettext_noop("Preset Options"),
+   [CUSTOM_OPTIONS] = gettext_noop("Customized Options"),
+   [DEVELOPER_OPTIONS] = gettext_noop("Developer Options"),
    /* help_config wants this array to be null-terminated */
    NULL
 };
@@ -774,11 +729,11 @@ StaticAssertDecl(lengthof(config_group_names) == (DEVELOPER_OPTIONS + 2),
  */
 const char *const config_type_names[] =
 {
-    /* PGC_BOOL */ "bool",
-    /* PGC_INT */ "integer",
-    /* PGC_REAL */ "real",
-    /* PGC_STRING */ "string",
-    /* PGC_ENUM */ "enum"
+   [PGC_BOOL] = "bool",
+   [PGC_INT] = "integer",
+   [PGC_REAL] = "real",
+   [PGC_STRING] = "string",
+   [PGC_ENUM] = "enum",
 };
 
 StaticAssertDecl(lengthof(config_type_names) == (PGC_ENUM + 1),
index 8ee8a42781a163707f950941a56f7ad3a2b1db13..4cb754caa55fdad1f78960ec49ebd54dc86139dd 100644 (file)
@@ -104,53 +104,53 @@ enum dbObjectTypePriorities
 /* This table is indexed by enum DumpableObjectType */
 static const int dbObjectTypePriority[] =
 {
-   PRIO_NAMESPACE,             /* DO_NAMESPACE */
-   PRIO_EXTENSION,             /* DO_EXTENSION */
-   PRIO_TYPE,                  /* DO_TYPE */
-   PRIO_TYPE,                  /* DO_SHELL_TYPE */
-   PRIO_FUNC,                  /* DO_FUNC */
-   PRIO_AGG,                   /* DO_AGG */
-   PRIO_OPERATOR,              /* DO_OPERATOR */
-   PRIO_ACCESS_METHOD,         /* DO_ACCESS_METHOD */
-   PRIO_OPFAMILY,              /* DO_OPCLASS */
-   PRIO_OPFAMILY,              /* DO_OPFAMILY */
-   PRIO_COLLATION,             /* DO_COLLATION */
-   PRIO_CONVERSION,            /* DO_CONVERSION */
-   PRIO_TABLE,                 /* DO_TABLE */
-   PRIO_TABLE_ATTACH,          /* DO_TABLE_ATTACH */
-   PRIO_ATTRDEF,               /* DO_ATTRDEF */
-   PRIO_INDEX,                 /* DO_INDEX */
-   PRIO_INDEX_ATTACH,          /* DO_INDEX_ATTACH */
-   PRIO_STATSEXT,              /* DO_STATSEXT */
-   PRIO_RULE,                  /* DO_RULE */
-   PRIO_TRIGGER,               /* DO_TRIGGER */
-   PRIO_CONSTRAINT,            /* DO_CONSTRAINT */
-   PRIO_FK_CONSTRAINT,         /* DO_FK_CONSTRAINT */
-   PRIO_PROCLANG,              /* DO_PROCLANG */
-   PRIO_CAST,                  /* DO_CAST */
-   PRIO_TABLE_DATA,            /* DO_TABLE_DATA */
-   PRIO_SEQUENCE_SET,          /* DO_SEQUENCE_SET */
-   PRIO_DUMMY_TYPE,            /* DO_DUMMY_TYPE */
-   PRIO_TSPARSER,              /* DO_TSPARSER */
-   PRIO_TSDICT,                /* DO_TSDICT */
-   PRIO_TSTEMPLATE,            /* DO_TSTEMPLATE */
-   PRIO_TSCONFIG,              /* DO_TSCONFIG */
-   PRIO_FDW,                   /* DO_FDW */
-   PRIO_FOREIGN_SERVER,        /* DO_FOREIGN_SERVER */
-   PRIO_DEFAULT_ACL,           /* DO_DEFAULT_ACL */
-   PRIO_TRANSFORM,             /* DO_TRANSFORM */
-   PRIO_LARGE_OBJECT,          /* DO_LARGE_OBJECT */
-   PRIO_LARGE_OBJECT_DATA,     /* DO_LARGE_OBJECT_DATA */
-   PRIO_PRE_DATA_BOUNDARY,     /* DO_PRE_DATA_BOUNDARY */
-   PRIO_POST_DATA_BOUNDARY,    /* DO_POST_DATA_BOUNDARY */
-   PRIO_EVENT_TRIGGER,         /* DO_EVENT_TRIGGER */
-   PRIO_REFRESH_MATVIEW,       /* DO_REFRESH_MATVIEW */
-   PRIO_POLICY,                /* DO_POLICY */
-   PRIO_PUBLICATION,           /* DO_PUBLICATION */
-   PRIO_PUBLICATION_REL,       /* DO_PUBLICATION_REL */
-   PRIO_PUBLICATION_TABLE_IN_SCHEMA,   /* DO_PUBLICATION_TABLE_IN_SCHEMA */
-   PRIO_SUBSCRIPTION,          /* DO_SUBSCRIPTION */
-   PRIO_SUBSCRIPTION_REL       /* DO_SUBSCRIPTION_REL */
+   [DO_NAMESPACE] = PRIO_NAMESPACE,
+   [DO_EXTENSION] = PRIO_EXTENSION,
+   [DO_TYPE] = PRIO_TYPE,
+   [DO_SHELL_TYPE] = PRIO_TYPE,
+   [DO_FUNC] = PRIO_FUNC,
+   [DO_AGG] = PRIO_AGG,
+   [DO_OPERATOR] = PRIO_OPERATOR,
+   [DO_ACCESS_METHOD] = PRIO_ACCESS_METHOD,
+   [DO_OPCLASS] = PRIO_OPFAMILY,
+   [DO_OPFAMILY] = PRIO_OPFAMILY,
+   [DO_COLLATION] = PRIO_COLLATION,
+   [DO_CONVERSION] = PRIO_CONVERSION,
+   [DO_TABLE] = PRIO_TABLE,
+   [DO_TABLE_ATTACH] = PRIO_TABLE_ATTACH,
+   [DO_ATTRDEF] = PRIO_ATTRDEF,
+   [DO_INDEX] = PRIO_INDEX,
+   [DO_INDEX_ATTACH] = PRIO_INDEX_ATTACH,
+   [DO_STATSEXT] = PRIO_STATSEXT,
+   [DO_RULE] = PRIO_RULE,
+   [DO_TRIGGER] = PRIO_TRIGGER,
+   [DO_CONSTRAINT] = PRIO_CONSTRAINT,
+   [DO_FK_CONSTRAINT] = PRIO_FK_CONSTRAINT,
+   [DO_PROCLANG] = PRIO_PROCLANG,
+   [DO_CAST] = PRIO_CAST,
+   [DO_TABLE_DATA] = PRIO_TABLE_DATA,
+   [DO_SEQUENCE_SET] = PRIO_SEQUENCE_SET,
+   [DO_DUMMY_TYPE] = PRIO_DUMMY_TYPE,
+   [DO_TSPARSER] = PRIO_TSPARSER,
+   [DO_TSDICT] = PRIO_TSDICT,
+   [DO_TSTEMPLATE] = PRIO_TSTEMPLATE,
+   [DO_TSCONFIG] = PRIO_TSCONFIG,
+   [DO_FDW] = PRIO_FDW,
+   [DO_FOREIGN_SERVER] = PRIO_FOREIGN_SERVER,
+   [DO_DEFAULT_ACL] = PRIO_DEFAULT_ACL,
+   [DO_TRANSFORM] = PRIO_TRANSFORM,
+   [DO_LARGE_OBJECT] = PRIO_LARGE_OBJECT,
+   [DO_LARGE_OBJECT_DATA] = PRIO_LARGE_OBJECT_DATA,
+   [DO_PRE_DATA_BOUNDARY] = PRIO_PRE_DATA_BOUNDARY,
+   [DO_POST_DATA_BOUNDARY] = PRIO_POST_DATA_BOUNDARY,
+   [DO_EVENT_TRIGGER] = PRIO_EVENT_TRIGGER,
+   [DO_REFRESH_MATVIEW] = PRIO_REFRESH_MATVIEW,
+   [DO_POLICY] = PRIO_POLICY,
+   [DO_PUBLICATION] = PRIO_PUBLICATION,
+   [DO_PUBLICATION_REL] = PRIO_PUBLICATION_REL,
+   [DO_PUBLICATION_TABLE_IN_SCHEMA] = PRIO_PUBLICATION_TABLE_IN_SCHEMA,
+   [DO_SUBSCRIPTION] = PRIO_SUBSCRIPTION,
+   [DO_SUBSCRIPTION_REL] = PRIO_SUBSCRIPTION_REL,
 };
 
 StaticAssertDecl(lengthof(dbObjectTypePriority) == (DO_SUBSCRIPTION_REL + 1),
index b16fe19dea6401549db07d3fedc6cd11efb5debd..d9214f915c9c927b5fad4254114ace017a920503 100644 (file)
  * pg_relation_size().
  */
 const char *const forkNames[] = {
-   "main",                     /* MAIN_FORKNUM */
-   "fsm",                      /* FSM_FORKNUM */
-   "vm",                       /* VISIBILITYMAP_FORKNUM */
-   "init"                      /* INIT_FORKNUM */
+   [MAIN_FORKNUM] = "main",
+   [FSM_FORKNUM] = "fsm",
+   [VISIBILITYMAP_FORKNUM] = "vm",
+   [INIT_FORKNUM] = "init",
 };
 
 StaticAssertDecl(lengthof(forkNames) == (MAX_FORKNUM + 1),