Coverage Report

Created: 2026-08-13 07:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/postgres/src/include/utils/memutils.h
Line
Count
Source
1
/*-------------------------------------------------------------------------
2
 *
3
 * memutils.h
4
 *    This file contains declarations for memory allocation utility
5
 *    functions.  These are functions that are not quite widely used
6
 *    enough to justify going in utils/palloc.h, but are still part
7
 *    of the API of the memory management subsystem.
8
 *
9
 *
10
 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
11
 * Portions Copyright (c) 1994, Regents of the University of California
12
 *
13
 * src/include/utils/memutils.h
14
 *
15
 *-------------------------------------------------------------------------
16
 */
17
#ifndef MEMUTILS_H
18
#define MEMUTILS_H
19
20
#include "nodes/memnodes.h"
21
22
23
/*
24
 * MaxAllocSize, MaxAllocHugeSize
25
 *    Quasi-arbitrary limits on size of allocations.
26
 *
27
 * Note:
28
 *    There is no guarantee that smaller allocations will succeed, but
29
 *    larger requests will be summarily denied.
30
 *
31
 * palloc() enforces MaxAllocSize, chosen to correspond to the limiting size
32
 * of varlena objects under TOAST.  See VARSIZE_4B() and related macros in
33
 * varatt.h.  Many datatypes assume that any allocatable size can be
34
 * represented in a varlena header.  This limit also permits a caller to use
35
 * an "int" variable for an index into or length of an allocation.  Callers
36
 * careful to avoid these hazards can access the higher limit with
37
 * MemoryContextAllocHuge().  Both limits permit code to assume that it may
38
 * compute twice an allocation's size without overflow.
39
 */
40
133k
#define MaxAllocSize  ((Size) 0x3fffffff) /* 1 gigabyte - 1 */
41
42
226
#define AllocSizeIsValid(size)  ((Size) (size) <= MaxAllocSize)
43
44
/* Do not make this any bigger; see add_size() and mul_size() */
45
0
#define MaxAllocHugeSize  (SIZE_MAX / 2)
46
47
#define InvalidAllocSize  SIZE_MAX
48
49
0
#define AllocHugeSizeIsValid(size)  ((Size) (size) <= MaxAllocHugeSize)
50
51
52
/*
53
 * Standard top-level memory contexts.
54
 *
55
 * Only TopMemoryContext and ErrorContext are initialized by
56
 * MemoryContextInit() itself.
57
 */
58
extern PGDLLIMPORT MemoryContext TopMemoryContext;
59
extern PGDLLIMPORT MemoryContext ErrorContext;
60
extern PGDLLIMPORT MemoryContext PostmasterContext;
61
extern PGDLLIMPORT MemoryContext CacheMemoryContext;
62
extern PGDLLIMPORT MemoryContext MessageContext;
63
extern PGDLLIMPORT MemoryContext TopTransactionContext;
64
extern PGDLLIMPORT MemoryContext CurTransactionContext;
65
66
/* This is a transient link to the active portal's memory context: */
67
extern PGDLLIMPORT MemoryContext PortalContext;
68
69
70
/*
71
 * Memory-context-type-independent functions in mcxt.c
72
 */
73
extern void MemoryContextInit(void);
74
extern void MemoryContextReset(MemoryContext context);
75
extern void MemoryContextDelete(MemoryContext context);
76
extern void MemoryContextResetOnly(MemoryContext context);
77
extern void MemoryContextResetChildren(MemoryContext context);
78
extern void MemoryContextDeleteChildren(MemoryContext context);
79
extern void MemoryContextSetIdentifier(MemoryContext context, const char *id);
80
extern void MemoryContextSetParent(MemoryContext context,
81
                   MemoryContext new_parent);
82
extern MemoryContext GetMemoryChunkContext(void *pointer);
83
extern Size GetMemoryChunkSpace(void *pointer);
84
extern MemoryContext MemoryContextGetParent(MemoryContext context);
85
extern bool MemoryContextIsEmpty(MemoryContext context);
86
extern Size MemoryContextMemAllocated(MemoryContext context, bool recurse);
87
extern void MemoryContextMemConsumed(MemoryContext context,
88
                   MemoryContextCounters *consumed);
89
extern void MemoryContextStats(MemoryContext context);
90
extern void MemoryContextStatsDetail(MemoryContext context,
91
                   int max_level, int max_children,
92
                   bool print_to_stderr);
93
extern void MemoryContextAllowInCriticalSection(MemoryContext context,
94
                        bool allow);
95
96
#ifdef MEMORY_CONTEXT_CHECKING
97
extern void MemoryContextCheck(MemoryContext context);
98
#endif
99
100
/* Handy macro for copying and assigning context ID ... but note double eval */
101
#define MemoryContextCopyAndSetIdentifier(cxt, id) \
102
0
  MemoryContextSetIdentifier(cxt, MemoryContextStrdup(cxt, id))
103
104
extern void HandleLogMemoryContextInterrupt(void);
105
extern void ProcessLogMemoryContextInterrupt(void);
106
107
/*
108
 * Memory-context-type-specific functions
109
 */
110
111
/* aset.c */
112
extern MemoryContext AllocSetContextCreateInternal(MemoryContext parent,
113
                           const char *name,
114
                           Size minContextSize,
115
                           Size initBlockSize,
116
                           Size maxBlockSize);
117
118
/*
119
 * This wrapper macro exists to check for non-constant strings used as context
120
 * names; that's no longer supported.  (Use MemoryContextSetIdentifier if you
121
 * want to provide a variable identifier.)
122
 */
123
#ifdef HAVE__BUILTIN_CONSTANT_P
124
#define AllocSetContextCreate(parent, name, ...) \
125
4.03k
  (StaticAssertExpr(__builtin_constant_p(name), \
126
4.03k
            "memory context names must be constant strings"), \
127
4.03k
   AllocSetContextCreateInternal(parent, name, __VA_ARGS__))
128
#else
129
#define AllocSetContextCreate \
130
  AllocSetContextCreateInternal
131
#endif
132
133
/* slab.c */
134
extern MemoryContext SlabContextCreate(MemoryContext parent,
135
                     const char *name,
136
                     Size blockSize,
137
                     Size chunkSize);
138
139
/* generation.c */
140
extern MemoryContext GenerationContextCreate(MemoryContext parent,
141
                       const char *name,
142
                       Size minContextSize,
143
                       Size initBlockSize,
144
                       Size maxBlockSize);
145
146
/* bump.c */
147
extern MemoryContext BumpContextCreate(MemoryContext parent,
148
                     const char *name,
149
                     Size minContextSize,
150
                     Size initBlockSize,
151
                     Size maxBlockSize);
152
153
/*
154
 * Recommended default alloc parameters, suitable for "ordinary" contexts
155
 * that might hold quite a lot of data.
156
 */
157
8.05k
#define ALLOCSET_DEFAULT_MINSIZE   0
158
2.01k
#define ALLOCSET_DEFAULT_INITSIZE  (8 * 1024)
159
0
#define ALLOCSET_DEFAULT_MAXSIZE   (8 * 1024 * 1024)
160
#define ALLOCSET_DEFAULT_SIZES \
161
0
  ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE
162
163
/*
164
 * Recommended alloc parameters for "small" contexts that are never expected
165
 * to contain much data (for example, a context to contain a query plan).
166
 */
167
4.02k
#define ALLOCSET_SMALL_MINSIZE   0
168
0
#define ALLOCSET_SMALL_INITSIZE  (1 * 1024)
169
#define ALLOCSET_SMALL_MAXSIZE   (8 * 1024)
170
#define ALLOCSET_SMALL_SIZES \
171
  ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, ALLOCSET_SMALL_MAXSIZE
172
173
/*
174
 * Recommended alloc parameters for contexts that should start out small,
175
 * but might sometimes grow big.
176
 */
177
#define ALLOCSET_START_SMALL_SIZES \
178
  ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE
179
180
181
/*
182
 * Threshold above which a request in an AllocSet context is certain to be
183
 * allocated separately (and thereby have constant allocation overhead).
184
 * Few callers should be interested in this, but tuplesort/tuplestore need
185
 * to know it.
186
 */
187
#define ALLOCSET_SEPARATE_THRESHOLD  8192
188
189
0
#define SLAB_DEFAULT_BLOCK_SIZE   (8 * 1024)
190
#define SLAB_LARGE_BLOCK_SIZE   (8 * 1024 * 1024)
191
192
/*
193
 * pg_memory_is_all_zeros
194
 *
195
 * Test if a memory region starting at "ptr" and of size "len" is full of
196
 * zeroes.
197
 *
198
 * The test is divided into multiple cases for safety reason and multiple
199
 * phases for efficiency.
200
 *
201
 * Case 1: len < sizeof(size_t) bytes, then byte-by-byte comparison.
202
 * Case 2: len < (sizeof(size_t) * 8 - 1) bytes:
203
 *       - Phase 1: byte-by-byte comparison, until the pointer is aligned.
204
 *       - Phase 2: size_t comparisons, with aligned pointers, up to the last
205
 *                  location possible.
206
 *       - Phase 3: byte-by-byte comparison, until the end location.
207
 * Case 3: len >= (sizeof(size_t) * 8) bytes, same as case 2 except that an
208
 *         additional phase is placed between Phase 1 and Phase 2, with
209
 *         (8 * sizeof(size_t)) comparisons using bitwise OR to encourage
210
 *         compilers to use SIMD instructions if available, up to the last
211
 *         aligned location possible.
212
 *
213
 * Case 1 and Case 2 are mandatory to ensure that we won't read beyond the
214
 * memory area.  This is portable for 32-bit and 64-bit architectures.
215
 *
216
 * Caller must ensure that "ptr" is not NULL.
217
 */
218
static inline bool
219
pg_memory_is_all_zeros(const void *ptr, size_t len)
220
0
{
221
0
  const unsigned char *p = (const unsigned char *) ptr;
222
0
  const unsigned char *end = &p[len];
223
0
  const unsigned char *aligned_end = (const unsigned char *)
224
0
    ((uintptr_t) end & (~(sizeof(size_t) - 1)));
225
226
0
  if (len < sizeof(size_t))
227
0
  {
228
0
    while (p < end)
229
0
    {
230
0
      if (*p++ != 0)
231
0
        return false;
232
0
    }
233
0
    return true;
234
0
  }
235
236
  /* "len" in the [sizeof(size_t), sizeof(size_t) * 8 - 1] range */
237
0
  if (len < sizeof(size_t) * 8)
238
0
  {
239
    /* Compare bytes until the pointer "p" is aligned */
240
0
    while (((uintptr_t) p & (sizeof(size_t) - 1)) != 0)
241
0
    {
242
0
      if (p == end)
243
0
        return true;
244
0
      if (*p++ != 0)
245
0
        return false;
246
0
    }
247
248
    /*
249
     * Compare remaining size_t-aligned chunks.
250
     *
251
     * There is no risk to read beyond the memory area, as "aligned_end"
252
     * cannot be higher than "end".
253
     */
254
0
    for (; p < aligned_end; p += sizeof(size_t))
255
0
    {
256
0
      if (*(const size_t *) p != 0)
257
0
        return false;
258
0
    }
259
260
    /* Compare remaining bytes until the end */
261
0
    while (p < end)
262
0
    {
263
0
      if (*p++ != 0)
264
0
        return false;
265
0
    }
266
0
    return true;
267
0
  }
268
269
  /* "len" in the [sizeof(size_t) * 8, inf) range */
270
271
  /* Compare bytes until the pointer "p" is aligned */
272
0
  while (((uintptr_t) p & (sizeof(size_t) - 1)) != 0)
273
0
  {
274
0
    if (p == end)
275
0
      return true;
276
277
0
    if (*p++ != 0)
278
0
      return false;
279
0
  }
280
281
  /*
282
   * Compare 8 * sizeof(size_t) chunks at once.
283
   *
284
   * For performance reasons, we manually unroll this loop and purposefully
285
   * use bitwise-ORs to combine each comparison.  This prevents boolean
286
   * short-circuiting and lets the compiler know that it's safe to access
287
   * all 8 elements regardless of the result of the other comparisons.  This
288
   * seems to be enough to coax a few compilers into using SIMD
289
   * instructions.
290
   */
291
0
  for (; p < aligned_end - (sizeof(size_t) * 7); p += sizeof(size_t) * 8)
292
0
  {
293
0
    if ((((const size_t *) p)[0] != 0) | (((const size_t *) p)[1] != 0) |
294
0
      (((const size_t *) p)[2] != 0) | (((const size_t *) p)[3] != 0) |
295
0
      (((const size_t *) p)[4] != 0) | (((const size_t *) p)[5] != 0) |
296
0
      (((const size_t *) p)[6] != 0) | (((const size_t *) p)[7] != 0))
297
0
      return false;
298
0
  }
299
300
  /*
301
   * Compare remaining size_t-aligned chunks.
302
   *
303
   * There is no risk to read beyond the memory area, as "aligned_end"
304
   * cannot be higher than "end".
305
   */
306
0
  for (; p < aligned_end; p += sizeof(size_t))
307
0
  {
308
0
    if (*(const size_t *) p != 0)
309
0
      return false;
310
0
  }
311
312
  /* Compare remaining bytes until the end */
313
0
  while (p < end)
314
0
  {
315
0
    if (*p++ != 0)
316
0
      return false;
317
0
  }
318
319
0
  return true;
320
0
}
Unexecuted instantiation: json_parser_fuzzer.c:pg_memory_is_all_zeros
Unexecuted instantiation: fuzzer_initialize.c:pg_memory_is_all_zeros
Unexecuted instantiation: brin.c:pg_memory_is_all_zeros
Unexecuted instantiation: brin_minmax_multi.c:pg_memory_is_all_zeros
Unexecuted instantiation: brin_tuple.c:pg_memory_is_all_zeros
Unexecuted instantiation: heaptuple.c:pg_memory_is_all_zeros
Unexecuted instantiation: printtup.c:pg_memory_is_all_zeros
Unexecuted instantiation: reloptions.c:pg_memory_is_all_zeros
Unexecuted instantiation: session.c:pg_memory_is_all_zeros
Unexecuted instantiation: tidstore.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginbtree.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginbulk.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginfast.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginget.c:pg_memory_is_all_zeros
Unexecuted instantiation: gininsert.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginvacuum.c:pg_memory_is_all_zeros
Unexecuted instantiation: ginxlog.c:pg_memory_is_all_zeros
Unexecuted instantiation: gist.c:pg_memory_is_all_zeros
Unexecuted instantiation: gistbuild.c:pg_memory_is_all_zeros
Unexecuted instantiation: gistget.c:pg_memory_is_all_zeros
Unexecuted instantiation: gistscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: gistvacuum.c:pg_memory_is_all_zeros
Unexecuted instantiation: gistxlog.c:pg_memory_is_all_zeros
Unexecuted instantiation: heapam_handler.c:pg_memory_is_all_zeros
Unexecuted instantiation: rewriteheap.c:pg_memory_is_all_zeros
Unexecuted instantiation: nbtpage.c:pg_memory_is_all_zeros
Unexecuted instantiation: nbtpreprocesskeys.c:pg_memory_is_all_zeros
Unexecuted instantiation: nbtree.c:pg_memory_is_all_zeros
Unexecuted instantiation: nbtxlog.c:pg_memory_is_all_zeros
Unexecuted instantiation: spginsert.c:pg_memory_is_all_zeros
Unexecuted instantiation: spgscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: spgxlog.c:pg_memory_is_all_zeros
Unexecuted instantiation: commit_ts.c:pg_memory_is_all_zeros
Unexecuted instantiation: multixact.c:pg_memory_is_all_zeros
Unexecuted instantiation: parallel.c:pg_memory_is_all_zeros
Unexecuted instantiation: rmgr.c:pg_memory_is_all_zeros
Unexecuted instantiation: slru.c:pg_memory_is_all_zeros
Unexecuted instantiation: twophase.c:pg_memory_is_all_zeros
Unexecuted instantiation: xact.c:pg_memory_is_all_zeros
Unexecuted instantiation: xlogfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: xloginsert.c:pg_memory_is_all_zeros
Unexecuted instantiation: xlogprefetcher.c:pg_memory_is_all_zeros
Unexecuted instantiation: bootparse.c:pg_memory_is_all_zeros
Unexecuted instantiation: bootstrap.c:pg_memory_is_all_zeros
Unexecuted instantiation: dependency.c:pg_memory_is_all_zeros
Unexecuted instantiation: index.c:pg_memory_is_all_zeros
Unexecuted instantiation: indexing.c:pg_memory_is_all_zeros
Unexecuted instantiation: namespace.c:pg_memory_is_all_zeros
Unexecuted instantiation: objectaddress.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_enum.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_proc.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_publication.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_shdepend.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_subscription.c:pg_memory_is_all_zeros
Unexecuted instantiation: storage.c:pg_memory_is_all_zeros
Unexecuted instantiation: parse_func.c:pg_memory_is_all_zeros
Unexecuted instantiation: parse_param.c:pg_memory_is_all_zeros
Unexecuted instantiation: parse_relation.c:pg_memory_is_all_zeros
Unexecuted instantiation: parse_target.c:pg_memory_is_all_zeros
Unexecuted instantiation: analyze.c:pg_memory_is_all_zeros
Unexecuted instantiation: async.c:pg_memory_is_all_zeros
Unexecuted instantiation: constraint.c:pg_memory_is_all_zeros
Unexecuted instantiation: copy.c:pg_memory_is_all_zeros
Unexecuted instantiation: copyfrom.c:pg_memory_is_all_zeros
Unexecuted instantiation: copyfromparse.c:pg_memory_is_all_zeros
Unexecuted instantiation: copyto.c:pg_memory_is_all_zeros
Unexecuted instantiation: createas.c:pg_memory_is_all_zeros
Unexecuted instantiation: event_trigger.c:pg_memory_is_all_zeros
Unexecuted instantiation: explain.c:pg_memory_is_all_zeros
Unexecuted instantiation: explain_dr.c:pg_memory_is_all_zeros
Unexecuted instantiation: explain_format.c:pg_memory_is_all_zeros
Unexecuted instantiation: explain_state.c:pg_memory_is_all_zeros
Unexecuted instantiation: extension.c:pg_memory_is_all_zeros
Unexecuted instantiation: functioncmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: indexcmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: matview.c:pg_memory_is_all_zeros
Unexecuted instantiation: policy.c:pg_memory_is_all_zeros
Unexecuted instantiation: portalcmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: prepare.c:pg_memory_is_all_zeros
Unexecuted instantiation: repack.c:pg_memory_is_all_zeros
Unexecuted instantiation: repack_worker.c:pg_memory_is_all_zeros
Unexecuted instantiation: seclabel.c:pg_memory_is_all_zeros
Unexecuted instantiation: sequence.c:pg_memory_is_all_zeros
Unexecuted instantiation: subscriptioncmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: tablecmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: tablespace.c:pg_memory_is_all_zeros
Unexecuted instantiation: trigger.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsearchcmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: typecmds.c:pg_memory_is_all_zeros
Unexecuted instantiation: vacuum.c:pg_memory_is_all_zeros
Unexecuted instantiation: wait.c:pg_memory_is_all_zeros
Unexecuted instantiation: execAmi.c:pg_memory_is_all_zeros
Unexecuted instantiation: execAsync.c:pg_memory_is_all_zeros
Unexecuted instantiation: execCurrent.c:pg_memory_is_all_zeros
Unexecuted instantiation: execExpr.c:pg_memory_is_all_zeros
Unexecuted instantiation: execExprInterp.c:pg_memory_is_all_zeros
Unexecuted instantiation: execGrouping.c:pg_memory_is_all_zeros
Unexecuted instantiation: execIndexing.c:pg_memory_is_all_zeros
Unexecuted instantiation: execJunk.c:pg_memory_is_all_zeros
Unexecuted instantiation: execMain.c:pg_memory_is_all_zeros
Unexecuted instantiation: execParallel.c:pg_memory_is_all_zeros
Unexecuted instantiation: execPartition.c:pg_memory_is_all_zeros
Unexecuted instantiation: execProcnode.c:pg_memory_is_all_zeros
Unexecuted instantiation: execReplication.c:pg_memory_is_all_zeros
Unexecuted instantiation: execSRF.c:pg_memory_is_all_zeros
Unexecuted instantiation: execScan.c:pg_memory_is_all_zeros
Unexecuted instantiation: execTuples.c:pg_memory_is_all_zeros
Unexecuted instantiation: execUtils.c:pg_memory_is_all_zeros
Unexecuted instantiation: functions.c:pg_memory_is_all_zeros
Unexecuted instantiation: instrument.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeAgg.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeAppend.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeBitmapAnd.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeBitmapHeapscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeBitmapIndexscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeBitmapOr.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeCtescan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeCustom.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeForeignscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeFunctionscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeGather.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeGatherMerge.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeGroup.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeHash.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeHashjoin.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeIncrementalSort.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeIndexonlyscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeIndexscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeLimit.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeLockRows.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeMaterial.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeMemoize.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeMergeAppend.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeMergejoin.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeModifyTable.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeNamedtuplestorescan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeNestloop.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeProjectSet.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeRecursiveunion.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeResult.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeSamplescan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeSeqscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeSetOp.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeSort.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeSubplan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeSubqueryscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeTableFuncscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeTidrangescan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeTidscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeUnique.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeValuesscan.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeWindowAgg.c:pg_memory_is_all_zeros
Unexecuted instantiation: nodeWorktablescan.c:pg_memory_is_all_zeros
Unexecuted instantiation: spi.c:pg_memory_is_all_zeros
Unexecuted instantiation: foreign.c:pg_memory_is_all_zeros
Unexecuted instantiation: integerset.c:pg_memory_is_all_zeros
Unexecuted instantiation: knapsack.c:pg_memory_is_all_zeros
Unexecuted instantiation: auth.c:pg_memory_is_all_zeros
Unexecuted instantiation: be-fsstubs.c:pg_memory_is_all_zeros
Unexecuted instantiation: crypt.c:pg_memory_is_all_zeros
Unexecuted instantiation: hba.c:pg_memory_is_all_zeros
Unexecuted instantiation: pqcomm.c:pg_memory_is_all_zeros
Unexecuted instantiation: list.c:pg_memory_is_all_zeros
Unexecuted instantiation: params.c:pg_memory_is_all_zeros
Unexecuted instantiation: tidbitmap.c:pg_memory_is_all_zeros
Unexecuted instantiation: geqo_eval.c:pg_memory_is_all_zeros
Unexecuted instantiation: costsize.c:pg_memory_is_all_zeros
Unexecuted instantiation: equivclass.c:pg_memory_is_all_zeros
Unexecuted instantiation: joinpath.c:pg_memory_is_all_zeros
Unexecuted instantiation: joinrels.c:pg_memory_is_all_zeros
Unexecuted instantiation: planner.c:pg_memory_is_all_zeros
Unexecuted instantiation: subselect.c:pg_memory_is_all_zeros
Unexecuted instantiation: prepagg.c:pg_memory_is_all_zeros
Unexecuted instantiation: prepjointree.c:pg_memory_is_all_zeros
Unexecuted instantiation: clauses.c:pg_memory_is_all_zeros
Unexecuted instantiation: extendplan.c:pg_memory_is_all_zeros
Unexecuted instantiation: pathnode.c:pg_memory_is_all_zeros
Unexecuted instantiation: predtest.c:pg_memory_is_all_zeros
Unexecuted instantiation: partbounds.c:pg_memory_is_all_zeros
Unexecuted instantiation: partdesc.c:pg_memory_is_all_zeros
Unexecuted instantiation: partprune.c:pg_memory_is_all_zeros
Unexecuted instantiation: autovacuum.c:pg_memory_is_all_zeros
Unexecuted instantiation: auxprocess.c:pg_memory_is_all_zeros
Unexecuted instantiation: bgworker.c:pg_memory_is_all_zeros
Unexecuted instantiation: bgwriter.c:pg_memory_is_all_zeros
Unexecuted instantiation: checkpointer.c:pg_memory_is_all_zeros
Unexecuted instantiation: interrupt.c:pg_memory_is_all_zeros
Unexecuted instantiation: launch_backend.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgarch.c:pg_memory_is_all_zeros
Unexecuted instantiation: postmaster.c:pg_memory_is_all_zeros
Unexecuted instantiation: startup.c:pg_memory_is_all_zeros
Unexecuted instantiation: syslogger.c:pg_memory_is_all_zeros
Unexecuted instantiation: walsummarizer.c:pg_memory_is_all_zeros
Unexecuted instantiation: walwriter.c:pg_memory_is_all_zeros
Unexecuted instantiation: applyparallelworker.c:pg_memory_is_all_zeros
Unexecuted instantiation: conflict.c:pg_memory_is_all_zeros
Unexecuted instantiation: launcher.c:pg_memory_is_all_zeros
Unexecuted instantiation: logical.c:pg_memory_is_all_zeros
Unexecuted instantiation: logicalfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: origin.c:pg_memory_is_all_zeros
Unexecuted instantiation: relation.c:pg_memory_is_all_zeros
Unexecuted instantiation: reorderbuffer.c:pg_memory_is_all_zeros
Unexecuted instantiation: sequencesync.c:pg_memory_is_all_zeros
Unexecuted instantiation: slotsync.c:pg_memory_is_all_zeros
Unexecuted instantiation: snapbuild.c:pg_memory_is_all_zeros
Unexecuted instantiation: syncutils.c:pg_memory_is_all_zeros
Unexecuted instantiation: worker.c:pg_memory_is_all_zeros
Unexecuted instantiation: slotfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: walreceiver.c:pg_memory_is_all_zeros
Unexecuted instantiation: walsender.c:pg_memory_is_all_zeros
Unexecuted instantiation: rewriteHandler.c:pg_memory_is_all_zeros
Unexecuted instantiation: basebackup_copy.c:pg_memory_is_all_zeros
Unexecuted instantiation: basebackup_incremental.c:pg_memory_is_all_zeros
Unexecuted instantiation: basebackup_target.c:pg_memory_is_all_zeros
Unexecuted instantiation: walsummaryfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: dependencies.c:pg_memory_is_all_zeros
Unexecuted instantiation: extended_stats.c:pg_memory_is_all_zeros
Unexecuted instantiation: mcv.c:pg_memory_is_all_zeros
Unexecuted instantiation: stat_utils.c:pg_memory_is_all_zeros
Unexecuted instantiation: aio_funcs.c:pg_memory_is_all_zeros
Unexecuted instantiation: bufmgr.c:pg_memory_is_all_zeros
Unexecuted instantiation: localbuf.c:pg_memory_is_all_zeros
Unexecuted instantiation: reinit.c:pg_memory_is_all_zeros
Unexecuted instantiation: dsm.c:pg_memory_is_all_zeros
Unexecuted instantiation: dsm_impl.c:pg_memory_is_all_zeros
Unexecuted instantiation: dsm_registry.c:pg_memory_is_all_zeros
Unexecuted instantiation: pmsignal.c:pg_memory_is_all_zeros
Unexecuted instantiation: procsignal.c:pg_memory_is_all_zeros
Unexecuted instantiation: shm_mq.c:pg_memory_is_all_zeros
Unexecuted instantiation: shmem.c:pg_memory_is_all_zeros
Unexecuted instantiation: shmem_hash.c:pg_memory_is_all_zeros
Unexecuted instantiation: waiteventset.c:pg_memory_is_all_zeros
Unexecuted instantiation: deadlock.c:pg_memory_is_all_zeros
Unexecuted instantiation: lock.c:pg_memory_is_all_zeros
Unexecuted instantiation: lwlock.c:pg_memory_is_all_zeros
Unexecuted instantiation: bufpage.c:pg_memory_is_all_zeros
Unexecuted instantiation: md.c:pg_memory_is_all_zeros
Unexecuted instantiation: sync.c:pg_memory_is_all_zeros
Unexecuted instantiation: backend_startup.c:pg_memory_is_all_zeros
Unexecuted instantiation: postgres.c:pg_memory_is_all_zeros
Unexecuted instantiation: pquery.c:pg_memory_is_all_zeros
Unexecuted instantiation: utility.c:pg_memory_is_all_zeros
Unexecuted instantiation: dict.c:pg_memory_is_all_zeros
Unexecuted instantiation: dict_ispell.c:pg_memory_is_all_zeros
Unexecuted instantiation: dict_simple.c:pg_memory_is_all_zeros
Unexecuted instantiation: dict_synonym.c:pg_memory_is_all_zeros
Unexecuted instantiation: dict_thesaurus.c:pg_memory_is_all_zeros
Unexecuted instantiation: spell.c:pg_memory_is_all_zeros
Unexecuted instantiation: to_tsany.c:pg_memory_is_all_zeros
Unexecuted instantiation: ts_parse.c:pg_memory_is_all_zeros
Unexecuted instantiation: ts_selfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: ts_typanalyze.c:pg_memory_is_all_zeros
Unexecuted instantiation: ts_utils.c:pg_memory_is_all_zeros
Unexecuted instantiation: wparser.c:pg_memory_is_all_zeros
Unexecuted instantiation: wparser_def.c:pg_memory_is_all_zeros
Unexecuted instantiation: backend_status.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_backend.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_bgwriter.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_checkpointer.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_index.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_kind.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_relation.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_shmem.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstat_xact.c:pg_memory_is_all_zeros
Unexecuted instantiation: wait_event_funcs.c:pg_memory_is_all_zeros
Unexecuted instantiation: acl.c:pg_memory_is_all_zeros
Unexecuted instantiation: array_expanded.c:pg_memory_is_all_zeros
Unexecuted instantiation: array_userfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: arrayfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: arrayutils.c:pg_memory_is_all_zeros
Unexecuted instantiation: bytea.c:pg_memory_is_all_zeros
Unexecuted instantiation: datetime.c:pg_memory_is_all_zeros
Unexecuted instantiation: ddlutils.c:pg_memory_is_all_zeros
Unexecuted instantiation: domains.c:pg_memory_is_all_zeros
Unexecuted instantiation: encode.c:pg_memory_is_all_zeros
Unexecuted instantiation: expandeddatum.c:pg_memory_is_all_zeros
Unexecuted instantiation: expandedrecord.c:pg_memory_is_all_zeros
Unexecuted instantiation: formatting.c:pg_memory_is_all_zeros
Unexecuted instantiation: genfile.c:pg_memory_is_all_zeros
Unexecuted instantiation: hbafuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: int.c:pg_memory_is_all_zeros
Unexecuted instantiation: int8.c:pg_memory_is_all_zeros
Unexecuted instantiation: json.c:pg_memory_is_all_zeros
Unexecuted instantiation: jsonb.c:pg_memory_is_all_zeros
Unexecuted instantiation: jsonb_util.c:pg_memory_is_all_zeros
Unexecuted instantiation: jsonfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: jsonpath_exec.c:pg_memory_is_all_zeros
Unexecuted instantiation: lockfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: mcxtfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: misc.c:pg_memory_is_all_zeros
Unexecuted instantiation: multirangetypes.c:pg_memory_is_all_zeros
Unexecuted instantiation: multixactfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: numeric.c:pg_memory_is_all_zeros
Unexecuted instantiation: oracle_compat.c:pg_memory_is_all_zeros
Unexecuted instantiation: orderedsetaggs.c:pg_memory_is_all_zeros
Unexecuted instantiation: partitionfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_locale.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_locale_builtin.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_locale_icu.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_locale_libc.c:pg_memory_is_all_zeros
Unexecuted instantiation: pgstatfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: rangetypes.c:pg_memory_is_all_zeros
Unexecuted instantiation: regexp.c:pg_memory_is_all_zeros
Unexecuted instantiation: ri_triggers.c:pg_memory_is_all_zeros
Unexecuted instantiation: rowtypes.c:pg_memory_is_all_zeros
Unexecuted instantiation: ruleutils.c:pg_memory_is_all_zeros
Unexecuted instantiation: selfuncs.c:pg_memory_is_all_zeros
Unexecuted instantiation: timestamp.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsginidx.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsgistidx.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsquery.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsquery_cleanup.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsquery_gist.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsquery_op.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsquery_rewrite.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsquery_util.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsrank.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsvector.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsvector_op.c:pg_memory_is_all_zeros
Unexecuted instantiation: tsvector_parser.c:pg_memory_is_all_zeros
Unexecuted instantiation: varlena.c:pg_memory_is_all_zeros
Unexecuted instantiation: xid8funcs.c:pg_memory_is_all_zeros
Unexecuted instantiation: catcache.c:pg_memory_is_all_zeros
Unexecuted instantiation: evtcache.c:pg_memory_is_all_zeros
Unexecuted instantiation: funccache.c:pg_memory_is_all_zeros
Unexecuted instantiation: inval.c:pg_memory_is_all_zeros
Unexecuted instantiation: partcache.c:pg_memory_is_all_zeros
Unexecuted instantiation: plancache.c:pg_memory_is_all_zeros
Unexecuted instantiation: relcache.c:pg_memory_is_all_zeros
Unexecuted instantiation: ts_cache.c:pg_memory_is_all_zeros
Unexecuted instantiation: typcache.c:pg_memory_is_all_zeros
Unexecuted instantiation: elog.c:pg_memory_is_all_zeros
Unexecuted instantiation: funcapi.c:pg_memory_is_all_zeros
Unexecuted instantiation: dynahash.c:pg_memory_is_all_zeros
Unexecuted instantiation: miscinit.c:pg_memory_is_all_zeros
Unexecuted instantiation: postinit.c:pg_memory_is_all_zeros
Unexecuted instantiation: mbutils.c:pg_memory_is_all_zeros
Unexecuted instantiation: guc.c:pg_memory_is_all_zeros
Unexecuted instantiation: guc-file.c:pg_memory_is_all_zeros
Unexecuted instantiation: guc_funcs.c:pg_memory_is_all_zeros
Unexecuted instantiation: guc_tables.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_config.c:pg_memory_is_all_zeros
Unexecuted instantiation: pg_controldata.c:pg_memory_is_all_zeros
Unexecuted instantiation: tzparser.c:pg_memory_is_all_zeros
Unexecuted instantiation: alignedalloc.c:pg_memory_is_all_zeros
Unexecuted instantiation: aset.c:pg_memory_is_all_zeros
Unexecuted instantiation: bump.c:pg_memory_is_all_zeros
Unexecuted instantiation: dsa.c:pg_memory_is_all_zeros
Unexecuted instantiation: generation.c:pg_memory_is_all_zeros
Unexecuted instantiation: mcxt.c:pg_memory_is_all_zeros
Unexecuted instantiation: portalmem.c:pg_memory_is_all_zeros
Unexecuted instantiation: slab.c:pg_memory_is_all_zeros
Unexecuted instantiation: resowner.c:pg_memory_is_all_zeros
Unexecuted instantiation: logtape.c:pg_memory_is_all_zeros
Unexecuted instantiation: tuplesort.c:pg_memory_is_all_zeros
Unexecuted instantiation: tuplesortvariants.c:pg_memory_is_all_zeros
Unexecuted instantiation: tuplestore.c:pg_memory_is_all_zeros
Unexecuted instantiation: combocid.c:pg_memory_is_all_zeros
Unexecuted instantiation: snapmgr.c:pg_memory_is_all_zeros
Unexecuted instantiation: blkreftable.c:pg_memory_is_all_zeros
Unexecuted instantiation: psprintf.c:pg_memory_is_all_zeros
Unexecuted instantiation: saslprep.c:pg_memory_is_all_zeros
Unexecuted instantiation: stringinfo.c:pg_memory_is_all_zeros
Unexecuted instantiation: unicode_norm.c:pg_memory_is_all_zeros
Unexecuted instantiation: simple_query_fuzzer.c:pg_memory_is_all_zeros
321
322
#endif              /* MEMUTILS_H */