1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-19 13:42:17 +03:00

Get rid of long datatype in CATCACHE_STATS enabled builds

"long" is 32 bits on Windows 64-bit.  Switch to a datatype that's 64-bit
on all platforms.  While we're there, use an unsigned type as these
fields count things that have occurred, of which it's not possible to
have negative numbers of.

Author: David Rowley <dgrowleyml@gmail.com>
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/CAApHDvoGFjSA3aNyVQ3ivbyc4ST=CC5L-_VjEUQ92HbE2Cxovg@mail.gmail.com
This commit is contained in:
David Rowley
2025-11-17 12:26:41 +13:00
parent e7cde9dad2
commit 9c047da51f
2 changed files with 23 additions and 17 deletions

View File

@@ -461,14 +461,14 @@ static void
CatCachePrintStats(int code, Datum arg)
{
slist_iter iter;
long cc_searches = 0;
long cc_hits = 0;
long cc_neg_hits = 0;
long cc_newloads = 0;
long cc_invals = 0;
long cc_nlists = 0;
long cc_lsearches = 0;
long cc_lhits = 0;
uint64 cc_searches = 0;
uint64 cc_hits = 0;
uint64 cc_neg_hits = 0;
uint64 cc_newloads = 0;
uint64 cc_invals = 0;
uint64 cc_nlists = 0;
uint64 cc_lsearches = 0;
uint64 cc_lhits = 0;
slist_foreach(iter, &CacheHdr->ch_caches)
{
@@ -476,7 +476,10 @@ CatCachePrintStats(int code, Datum arg)
if (cache->cc_ntup == 0 && cache->cc_searches == 0)
continue; /* don't print unused caches */
elog(DEBUG2, "catcache %s/%u: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %d lists, %ld lsrch, %ld lhits",
elog(DEBUG2, "catcache %s/%u: %d tup, %" PRIu64 " srch, %" PRIu64 "+%"
PRIu64 "=%" PRIu64 " hits, %" PRIu64 "+%" PRIu64 "=%"
PRIu64 " loads, %" PRIu64 " invals, %d lists, %" PRIu64
" lsrch, %" PRIu64 " lhits",
cache->cc_relname,
cache->cc_indexoid,
cache->cc_ntup,
@@ -500,7 +503,10 @@ CatCachePrintStats(int code, Datum arg)
cc_lsearches += cache->cc_lsearches;
cc_lhits += cache->cc_lhits;
}
elog(DEBUG2, "catcache totals: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %ld lists, %ld lsrch, %ld lhits",
elog(DEBUG2, "catcache totals: %d tup, %" PRIu64 " srch, %" PRIu64 "+%"
PRIu64 "=%" PRIu64 " hits, %" PRIu64 "+%" PRIu64 "=%" PRIu64
" loads, %" PRIu64 " invals, %" PRIu64 " lists, %" PRIu64
" lsrch, %" PRIu64 " lhits",
CacheHdr->ch_ntup,
cc_searches,
cc_hits,

View File

@@ -69,18 +69,18 @@ typedef struct catcache
* 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 */
long cc_neg_hits; /* # of matches against negative entry */
long cc_newloads; /* # of successful loads of new entry */
uint64 cc_searches; /* total # searches against this cache */
uint64 cc_hits; /* # of matches against existing entry */
uint64 cc_neg_hits; /* # of matches against negative entry */
uint64 cc_newloads; /* # of successful loads of new entry */
/*
* cc_searches - (cc_hits + cc_neg_hits + cc_newloads) is number of failed
* searches, each of which will result in loading a negative entry
*/
long cc_invals; /* # of entries invalidated from cache */
long cc_lsearches; /* total # list-searches */
long cc_lhits; /* # of matches against existing lists */
uint64 cc_invals; /* # of entries invalidated from cache */
uint64 cc_lsearches; /* total # list-searches */
uint64 cc_lhits; /* # of matches against existing lists */
#endif
} CatCache;