OSDN Git Service

Convert the list of syscache names from a series of #define's into an enum,
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 7 May 2008 01:04:49 +0000 (01:04 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 7 May 2008 01:04:49 +0000 (01:04 +0000)
to avoid the pain of manually renumbering them anytime we insert another
name in alphabetical order.  An excellent idea from Alex Hunsaker and
NikhilS' inherited-constraints patch --- whether or not the rest of that
gets in, this should.  Dunno why we never thought of it before.

src/include/utils/syscache.h

index ba20690..e622047 100644 (file)
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/syscache.h,v 1.71 2008/01/01 19:45:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/syscache.h,v 1.72 2008/05/07 01:04:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "utils/catcache.h"
 
 /*
- *             Declarations for util/syscache.c.
- *
  *             SysCache identifiers.
  *
- *             The order of these must match the order
- *             they are entered into the structure cacheinfo[] in syscache.c.
- *             Keep them in alphabetical order.
+ *             The order of these identifiers must match the order
+ *             of the entries in the array cacheinfo[] in syscache.c.
+ *             Keep them in alphabetical order (renumbering only costs a
+ *             backend rebuild).
  */
 
-#define AGGFNOID                       0
-#define AMNAME                         1
-#define AMOID                          2
-#define AMOPOPID                       3
-#define AMOPSTRATEGY           4
-#define AMPROCNUM                      5
-#define ATTNAME                                6
-#define ATTNUM                         7
-#define AUTHMEMMEMROLE         8
-#define AUTHMEMROLEMEM         9
-#define AUTHNAME                       10
-#define AUTHOID                                11
-#define CASTSOURCETARGET       12
-#define CLAAMNAMENSP           13
-#define CLAOID                         14
-#define CONDEFAULT                     15
-#define CONNAMENSP                     16
-#define CONSTROID                      17
-#define CONVOID                                18
-#define DATABASEOID                    19
-#define ENUMOID                                20
-#define ENUMTYPOIDNAME         21
-#define INDEXRELID                     22
-#define LANGNAME                       23
-#define LANGOID                                24
-#define NAMESPACENAME          25
-#define NAMESPACEOID           26
-#define OPERNAMENSP                    27
-#define OPEROID                                28
-#define OPFAMILYAMNAMENSP      29
-#define OPFAMILYOID                    30
-#define PROCNAMEARGSNSP                31
-#define PROCOID                                32
-#define RELNAMENSP                     33
-#define RELOID                         34
-#define RULERELNAME                    35
-#define STATRELATT                     36
-#define TSCONFIGMAP                    37
-#define TSCONFIGNAMENSP                38
-#define TSCONFIGOID                    39
-#define TSDICTNAMENSP          40
-#define TSDICTOID                      41
-#define TSPARSERNAMENSP                42
-#define TSPARSEROID                    43
-#define TSTEMPLATENAMENSP      44
-#define TSTEMPLATEOID          45
-#define TYPENAMENSP                    46
-#define TYPEOID                                47
+enum SysCacheIdentifier
+{
+       AGGFNOID = 0,
+       AMNAME,
+       AMOID,
+       AMOPOPID,
+       AMOPSTRATEGY,
+       AMPROCNUM,
+       ATTNAME,
+       ATTNUM,
+       AUTHMEMMEMROLE,
+       AUTHMEMROLEMEM,
+       AUTHNAME,
+       AUTHOID,
+       CASTSOURCETARGET,
+       CLAAMNAMENSP,
+       CLAOID,
+       CONDEFAULT,
+       CONNAMENSP,
+       CONSTROID,
+       CONVOID,
+       DATABASEOID,
+       ENUMOID,
+       ENUMTYPOIDNAME,
+       INDEXRELID,
+       LANGNAME,
+       LANGOID,
+       NAMESPACENAME,
+       NAMESPACEOID,
+       OPERNAMENSP,
+       OPEROID,
+       OPFAMILYAMNAMENSP,
+       OPFAMILYOID,
+       PROCNAMEARGSNSP,
+       PROCOID,
+       RELNAMENSP,
+       RELOID,
+       RULERELNAME,
+       STATRELATT,
+       TSCONFIGMAP,
+       TSCONFIGNAMENSP,
+       TSCONFIGOID,
+       TSDICTNAMENSP,
+       TSDICTOID,
+       TSPARSERNAMENSP,
+       TSPARSEROID,
+       TSTEMPLATENAMENSP,
+       TSTEMPLATEOID,
+       TYPENAMENSP,
+       TYPEOID
+};
 
 extern void InitCatalogCache(void);
 extern void InitCatalogCachePhase2(void);