Renumber GUC flags for a bit more sanity.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 27 Sep 2022 15:51:06 +0000 (11:51 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 27 Sep 2022 15:51:06 +0000 (11:51 -0400)
Push the units fields over to the left so that all the single-bit
flags can be together.  I considered rearranging the single-bit
flags to try to group flags with similar purposes, but eventually
decided that that involved too many judgment calls.

Discussion: https://postgr.es/m/17385-9ee529fb091f0ce5@postgresql.org

src/include/utils/guc.h

index 0fe86ba7041e4d51640100cfe2b9a29d5c523943..1788361974ba1fae838da6e4173f5419bf22c845 100644 (file)
@@ -202,44 +202,39 @@ typedef enum
 #define GUC_QUALIFIER_SEPARATOR '.'
 
 /*
- * bit values in "flags" of a GUC variable
+ * Bit values in "flags" of a GUC variable.  Note that these don't appear
+ * on disk, so we can reassign their values freely.
  */
-#define GUC_LIST_INPUT                 0x0001  /* input can be list format */
-#define GUC_LIST_QUOTE                 0x0002  /* double-quote list elements */
-#define GUC_NO_SHOW_ALL                        0x0004  /* exclude from SHOW ALL */
-#define GUC_NO_RESET             0x400000      /* disallow RESET and SAVE */
-#define GUC_NO_RESET_ALL               0x0008  /* exclude from RESET ALL */
-#define GUC_REPORT                             0x0010  /* auto-report changes to client */
-#define GUC_NOT_IN_SAMPLE              0x0020  /* not in postgresql.conf.sample */
-#define GUC_DISALLOW_IN_FILE   0x0040  /* can't set in postgresql.conf */
-#define GUC_CUSTOM_PLACEHOLDER 0x0080  /* placeholder for custom variable */
-#define GUC_SUPERUSER_ONLY             0x0100  /* show only to superusers */
-#define GUC_IS_NAME                            0x0200  /* limit string to NAMEDATALEN-1 */
-#define GUC_NOT_WHILE_SEC_REST 0x0400  /* can't set if security restricted */
-#define GUC_DISALLOW_IN_AUTO_FILE 0x0800       /* can't set in
-                                                                                        * PG_AUTOCONF_FILENAME */
-
-#define GUC_UNIT_KB                            0x1000  /* value is in kilobytes */
-#define GUC_UNIT_BLOCKS                        0x2000  /* value is in blocks */
-#define GUC_UNIT_XBLOCKS               0x3000  /* value is in xlog blocks */
-#define GUC_UNIT_MB                            0x4000  /* value is in megabytes */
-#define GUC_UNIT_BYTE                  0x5000  /* value is in bytes */
-#define GUC_UNIT_MEMORY                        0xF000  /* mask for size-related units */
-
-#define GUC_UNIT_MS                       0x10000      /* value is in milliseconds */
-#define GUC_UNIT_S                        0x20000      /* value is in seconds */
-#define GUC_UNIT_MIN              0x30000      /* value is in minutes */
-#define GUC_UNIT_TIME             0xF0000      /* mask for time-related units */
-
-#define GUC_EXPLAIN                      0x100000      /* include in explain */
-
-/*
- * GUC_RUNTIME_COMPUTED is intended for runtime-computed GUCs that are only
- * available via 'postgres -C' if the server is not running.
- */
-#define GUC_RUNTIME_COMPUTED  0x200000
-
-#define GUC_UNIT                               (GUC_UNIT_MEMORY | GUC_UNIT_TIME)
+#define GUC_LIST_INPUT            0x000001 /* input can be list format */
+#define GUC_LIST_QUOTE            0x000002 /* double-quote list elements */
+#define GUC_NO_SHOW_ALL                   0x000004 /* exclude from SHOW ALL */
+#define GUC_NO_RESET              0x000008 /* disallow RESET and SAVE */
+#define GUC_NO_RESET_ALL          0x000010 /* exclude from RESET ALL */
+#define GUC_EXPLAIN                       0x000020 /* include in EXPLAIN */
+#define GUC_REPORT                        0x000040 /* auto-report changes to client */
+#define GUC_NOT_IN_SAMPLE         0x000080 /* not in postgresql.conf.sample */
+#define GUC_DISALLOW_IN_FILE   0x000100 /* can't set in postgresql.conf */
+#define GUC_CUSTOM_PLACEHOLDER 0x000200 /* placeholder for custom variable */
+#define GUC_SUPERUSER_ONLY        0x000400 /* show only to superusers */
+#define GUC_IS_NAME                       0x000800 /* limit string to NAMEDATALEN-1 */
+#define GUC_NOT_WHILE_SEC_REST 0x001000 /* can't set if security restricted */
+#define GUC_DISALLOW_IN_AUTO_FILE \
+                                                          0x002000 /* can't set in PG_AUTOCONF_FILENAME */
+#define GUC_RUNTIME_COMPUTED   0x004000 /* delay processing in 'postgres -C' */
+
+#define GUC_UNIT_KB                     0x01000000 /* value is in kilobytes */
+#define GUC_UNIT_BLOCKS                 0x02000000 /* value is in blocks */
+#define GUC_UNIT_XBLOCKS        0x03000000 /* value is in xlog blocks */
+#define GUC_UNIT_MB                     0x04000000 /* value is in megabytes */
+#define GUC_UNIT_BYTE           0x05000000 /* value is in bytes */
+#define GUC_UNIT_MEMORY                 0x0F000000 /* mask for size-related units */
+
+#define GUC_UNIT_MS                     0x10000000 /* value is in milliseconds */
+#define GUC_UNIT_S                      0x20000000 /* value is in seconds */
+#define GUC_UNIT_MIN            0x30000000 /* value is in minutes */
+#define GUC_UNIT_TIME           0x70000000 /* mask for time-related units */
+
+#define GUC_UNIT                        (GUC_UNIT_MEMORY | GUC_UNIT_TIME)
 
 
 /* GUC vars that are actually defined in guc_tables.c, rather than elsewhere */