From e2117e4ab0d7fcb76f20cbf2e52541998d639d9e Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 12 Jan 2017 18:59:46 -0500
Subject: [PATCH] Fix field order in struct catcache.

Somebody failed to grasp the point of having the #ifdef CATCACHE_STATS
fields at the end of the struct.  Put that back the way it should be,
and add a comment making it more explicit why it should be that way.
---
 src/include/utils/catcache.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/include/utils/catcache.h b/src/include/utils/catcache.h
index 2cee8b85f59..299d2465851 100644
--- a/src/include/utils/catcache.h
+++ b/src/include/utils/catcache.h
@@ -52,6 +52,12 @@ typedef struct catcache
 												 * heap scans */
 	bool		cc_isname[CATCACHE_MAXKEYS];	/* flag "name" key columns */
 	dlist_head	cc_lists;		/* list of CatCList structs */
+	dlist_head *cc_bucket;		/* hash buckets */
+
+	/*
+	 * Keep these at the end, so that compiling catcache.c with CATCACHE_STATS
+	 * doesn't break ABI for other modules
+	 */
 #ifdef CATCACHE_STATS
 	long		cc_searches;	/* total # searches against this cache */
 	long		cc_hits;		/* # of matches against existing entry */
@@ -66,7 +72,6 @@ typedef struct catcache
 	long		cc_lsearches;	/* total # list-searches */
 	long		cc_lhits;		/* # of matches against existing lists */
 #endif
-	dlist_head *cc_bucket;		/* hash buckets */
 } CatCache;
 
 
-- 
GitLab