From b207f4a2560a19435598d442a0ca3f5e43aba532 Mon Sep 17 00:00:00 2001
From: Masahiko Sawada
Date: Wed, 21 Sep 2022 21:07:20 +0900
Subject: [PATCH v5 2/2] Reorganize GUC_XXX flag values.
Previously, we defined GUC flags for units for memory and time
followed by flags for properties. This change makes more room for
properties by inverting the order.
---
src/include/utils/guc.h | 56 ++++++++++++++++++++---------------------
1 file changed, 27 insertions(+), 29 deletions(-)
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index a846500bc5..8daeb877ad 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -204,41 +204,39 @@ typedef enum
/*
* bit values in "flags" of a GUC variable
*/
-#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_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
+#define GUC_UNIT_KB 0x000001 /* value is in kilobytes */
+#define GUC_UNIT_BLOCKS 0x000002 /* value is in blocks */
+#define GUC_UNIT_XBLOCKS 0x000003 /* value is in xlog blocks */
+#define GUC_UNIT_MB 0x000004 /* value is in megabytes */
+#define GUC_UNIT_BYTE 0x000005 /* value is in bytes */
+#define GUC_UNIT_MEMORY 0x00000F /* mask for size-related units */
+
+#define GUC_UNIT_MS 0x000010 /* value is in milliseconds */
+#define GUC_UNIT_S 0x000020 /* value is in seconds */
+#define GUC_UNIT_MIN 0x000030 /* value is in minutes */
+#define GUC_UNIT_TIME 0x0000F0 /* mask for time-related units */
+
+#define GUC_LIST_INPUT 0x000100 /* input can be list format */
+#define GUC_LIST_QUOTE 0x000200 /* double-quote list elements */
+#define GUC_NO_SHOW_ALL 0x000400 /* exclude from SHOW ALL */
+#define GUC_NO_RESET 0x000800 /* not support RESET and save */
+#define GUC_NO_RESET_ALL 0x001000 /* exclude from RESET ALL */
+#define GUC_REPORT 0x002000 /* auto-report changes to client */
+#define GUC_NOT_IN_SAMPLE 0x004000 /* not in postgresql.conf.sample */
+#define GUC_DISALLOW_IN_FILE 0x008000 /* can't set in postgresql.conf */
+#define GUC_CUSTOM_PLACEHOLDER 0x010000 /* placeholder for custom variable */
+#define GUC_SUPERUSER_ONLY 0x020000 /* show only to superusers */
+#define GUC_IS_NAME 0x040000 /* limit string to NAMEDATALEN-1 */
+#define GUC_NOT_WHILE_SEC_REST 0x080000 /* can't set if security restricted */
+#define GUC_DISALLOW_IN_AUTO_FILE 0x100000 /* 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 */
+#define GUC_EXPLAIN 0x200000 /* 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_NO_RESET 0x400000 /* not support RESET and save */
+#define GUC_RUNTIME_COMPUTED 0x400000
#define GUC_UNIT (GUC_UNIT_MEMORY | GUC_UNIT_TIME)
--
2.31.1