PostgreSQL Source Code  git master
mcxt.c File Reference
#include "postgres.h"
#include "mb/pg_wchar.h"
#include "miscadmin.h"
#include "utils/memdebug.h"
#include "utils/memutils.h"
#include "utils/memutils_internal.h"
#include "utils/memutils_memorychunk.h"
Include dependency graph for mcxt.c:

Go to the source code of this file.

Macros

#define AssertNotInCriticalSection(context)    Assert(CritSectionCount == 0 || (context)->allowInCritSection)
 
#define MCXT_METHOD(pointer, method)    mcxt_methods[GetMemoryChunkMethodID(pointer)].method
 

Functions

static void BogusFree (void *pointer)
 
static void * BogusRealloc (void *pointer, Size size, int flags)
 
static MemoryContext BogusGetChunkContext (void *pointer)
 
static Size BogusGetChunkSpace (void *pointer)
 
static void MemoryContextDeleteOnly (MemoryContext context)
 
static void MemoryContextCallResetCallbacks (MemoryContext context)
 
static void MemoryContextStatsInternal (MemoryContext context, int level, int max_level, int max_children, MemoryContextCounters *totals, bool print_to_stderr)
 
static void MemoryContextStatsPrint (MemoryContext context, void *passthru, const char *stats_string, bool print_to_stderr)
 
static MemoryContextMethodID GetMemoryChunkMethodID (const void *pointer)
 
static uint64 GetMemoryChunkHeader (const void *pointer)
 
static MemoryContext MemoryContextTraverseNext (MemoryContext curr, MemoryContext top)
 
void MemoryContextInit (void)
 
void MemoryContextReset (MemoryContext context)
 
void MemoryContextResetOnly (MemoryContext context)
 
void MemoryContextResetChildren (MemoryContext context)
 
void MemoryContextDelete (MemoryContext context)
 
void MemoryContextDeleteChildren (MemoryContext context)
 
void MemoryContextRegisterResetCallback (MemoryContext context, MemoryContextCallback *cb)
 
void MemoryContextSetIdentifier (MemoryContext context, const char *id)
 
void MemoryContextSetParent (MemoryContext context, MemoryContext new_parent)
 
void MemoryContextAllowInCriticalSection (MemoryContext context, bool allow)
 
MemoryContext GetMemoryChunkContext (void *pointer)
 
Size GetMemoryChunkSpace (void *pointer)
 
MemoryContext MemoryContextGetParent (MemoryContext context)
 
bool MemoryContextIsEmpty (MemoryContext context)
 
Size MemoryContextMemAllocated (MemoryContext context, bool recurse)
 
void MemoryContextMemConsumed (MemoryContext context, MemoryContextCounters *consumed)
 
void MemoryContextStats (MemoryContext context)
 
void MemoryContextStatsDetail (MemoryContext context, int max_level, int max_children, bool print_to_stderr)
 
void MemoryContextCreate (MemoryContext node, NodeTag tag, MemoryContextMethodID method_id, MemoryContext parent, const char *name)
 
void * MemoryContextAllocationFailure (MemoryContext context, Size size, int flags)
 
void MemoryContextSizeFailure (MemoryContext context, Size size, int flags)
 
void * MemoryContextAlloc (MemoryContext context, Size size)
 
void * MemoryContextAllocZero (MemoryContext context, Size size)
 
void * MemoryContextAllocExtended (MemoryContext context, Size size, int flags)
 
void HandleLogMemoryContextInterrupt (void)
 
void ProcessLogMemoryContextInterrupt (void)
 
void * palloc (Size size)
 
void * palloc0 (Size size)
 
void * palloc_extended (Size size, int flags)
 
void * MemoryContextAllocAligned (MemoryContext context, Size size, Size alignto, int flags)
 
void * palloc_aligned (Size size, Size alignto, int flags)
 
void pfree (void *pointer)
 
void * repalloc (void *pointer, Size size)
 
void * repalloc_extended (void *pointer, Size size, int flags)
 
void * repalloc0 (void *pointer, Size oldsize, Size size)
 
void * MemoryContextAllocHuge (MemoryContext context, Size size)
 
void * repalloc_huge (void *pointer, Size size)
 
char * MemoryContextStrdup (MemoryContext context, const char *string)
 
char * pstrdup (const char *in)
 
char * pnstrdup (const char *in, Size len)
 
char * pchomp (const char *in)
 

Variables

static const MemoryContextMethods mcxt_methods []
 
MemoryContext CurrentMemoryContext = NULL
 
MemoryContext TopMemoryContext = NULL
 
MemoryContext ErrorContext = NULL
 
MemoryContext PostmasterContext = NULL
 
MemoryContext CacheMemoryContext = NULL
 
MemoryContext MessageContext = NULL
 
MemoryContext TopTransactionContext = NULL
 
MemoryContext CurTransactionContext = NULL
 
MemoryContext PortalContext = NULL
 

Macro Definition Documentation

◆ AssertNotInCriticalSection

#define AssertNotInCriticalSection (   context)     Assert(CritSectionCount == 0 || (context)->allowInCritSection)

Definition at line 163 of file mcxt.c.

◆ MCXT_METHOD

#define MCXT_METHOD (   pointer,
  method 
)     mcxt_methods[GetMemoryChunkMethodID(pointer)].method

Definition at line 170 of file mcxt.c.

Function Documentation

◆ BogusFree()

static void BogusFree ( void *  pointer)
static

Definition at line 274 of file mcxt.c.

275 {
276  elog(ERROR, "pfree called with invalid pointer %p (header 0x%016llx)",
277  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
278 }
#define ERROR
Definition: elog.h:39
#define elog(elevel,...)
Definition: elog.h:224
static uint64 GetMemoryChunkHeader(const void *pointer)
Definition: mcxt.c:208

References elog, ERROR, and GetMemoryChunkHeader().

◆ BogusGetChunkContext()

static MemoryContext BogusGetChunkContext ( void *  pointer)
static

Definition at line 289 of file mcxt.c.

290 {
291  elog(ERROR, "GetMemoryChunkContext called with invalid pointer %p (header 0x%016llx)",
292  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
293  return NULL; /* keep compiler quiet */
294 }

References elog, ERROR, and GetMemoryChunkHeader().

◆ BogusGetChunkSpace()

static Size BogusGetChunkSpace ( void *  pointer)
static

Definition at line 297 of file mcxt.c.

298 {
299  elog(ERROR, "GetMemoryChunkSpace called with invalid pointer %p (header 0x%016llx)",
300  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
301  return 0; /* keep compiler quiet */
302 }

References elog, ERROR, and GetMemoryChunkHeader().

◆ BogusRealloc()

static void * BogusRealloc ( void *  pointer,
Size  size,
int  flags 
)
static

Definition at line 281 of file mcxt.c.

282 {
283  elog(ERROR, "repalloc called with invalid pointer %p (header 0x%016llx)",
284  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
285  return NULL; /* keep compiler quiet */
286 }

References elog, ERROR, and GetMemoryChunkHeader().

◆ GetMemoryChunkContext()

MemoryContext GetMemoryChunkContext ( void *  pointer)

Definition at line 695 of file mcxt.c.

696 {
697  return MCXT_METHOD(pointer, get_chunk_context) (pointer);
698 }
#define MCXT_METHOD(pointer, method)
Definition: mcxt.c:170

References MCXT_METHOD.

Referenced by AlignedAllocFree(), AlignedAllocGetChunkContext(), AlignedAllocRealloc(), create_unique_path(), enlarge_list(), guc_free(), guc_realloc(), list_delete_first_n(), list_delete_nth_cell(), mark_dummy_rel(), pfree(), repalloc(), repalloc_extended(), and reparameterize_path_by_child().

◆ GetMemoryChunkHeader()

static uint64 GetMemoryChunkHeader ( const void *  pointer)
inlinestatic

Definition at line 208 of file mcxt.c.

209 {
210  uint64 header;
211 
212  /* Allow access to the uint64 header */
213  VALGRIND_MAKE_MEM_DEFINED((char *) pointer - sizeof(uint64), sizeof(uint64));
214 
215  header = *((const uint64 *) ((const char *) pointer - sizeof(uint64)));
216 
217  /* Disallow access to the uint64 header */
218  VALGRIND_MAKE_MEM_NOACCESS((char *) pointer - sizeof(uint64), sizeof(uint64));
219 
220  return header;
221 }
#define VALGRIND_MAKE_MEM_DEFINED(addr, size)
Definition: memdebug.h:26
#define VALGRIND_MAKE_MEM_NOACCESS(addr, size)
Definition: memdebug.h:27

References VALGRIND_MAKE_MEM_DEFINED, and VALGRIND_MAKE_MEM_NOACCESS.

Referenced by BogusFree(), BogusGetChunkContext(), BogusGetChunkSpace(), and BogusRealloc().

◆ GetMemoryChunkMethodID()

static MemoryContextMethodID GetMemoryChunkMethodID ( const void *  pointer)
inlinestatic

Definition at line 179 of file mcxt.c.

180 {
181  uint64 header;
182 
183  /*
184  * Try to detect bogus pointers handed to us, poorly though we can.
185  * Presumably, a pointer that isn't MAXALIGNED isn't pointing at an
186  * allocated chunk.
187  */
188  Assert(pointer == (const void *) MAXALIGN(pointer));
189 
190  /* Allow access to the uint64 header */
191  VALGRIND_MAKE_MEM_DEFINED((char *) pointer - sizeof(uint64), sizeof(uint64));
192 
193  header = *((const uint64 *) ((const char *) pointer - sizeof(uint64)));
194 
195  /* Disallow access to the uint64 header */
196  VALGRIND_MAKE_MEM_NOACCESS((char *) pointer - sizeof(uint64), sizeof(uint64));
197 
199 }
#define MAXALIGN(LEN)
Definition: c.h:798
Assert(fmt[strlen(fmt) - 1] !='\n')
#define MEMORY_CONTEXT_METHODID_MASK
MemoryContextMethodID

References Assert(), MAXALIGN, MEMORY_CONTEXT_METHODID_MASK, VALGRIND_MAKE_MEM_DEFINED, and VALGRIND_MAKE_MEM_NOACCESS.

Referenced by pfree(), and repalloc().

◆ GetMemoryChunkSpace()

◆ HandleLogMemoryContextInterrupt()

void HandleLogMemoryContextInterrupt ( void  )

Definition at line 1259 of file mcxt.c.

1260 {
1261  InterruptPending = true;
1262  LogMemoryContextPending = true;
1263  /* latch will be set by procsignal_sigusr1_handler */
1264 }
volatile sig_atomic_t LogMemoryContextPending
Definition: globals.c:39
volatile sig_atomic_t InterruptPending
Definition: globals.c:30

References InterruptPending, and LogMemoryContextPending.

Referenced by procsignal_sigusr1_handler().

◆ MemoryContextAlloc()

void* MemoryContextAlloc ( MemoryContext  context,
Size  size 
)

Definition at line 1168 of file mcxt.c.

1169 {
1170  void *ret;
1171 
1172  Assert(MemoryContextIsValid(context));
1173  AssertNotInCriticalSection(context);
1174 
1175  context->isReset = false;
1176 
1177  /*
1178  * For efficiency reasons, we purposefully offload the handling of
1179  * allocation failures to the MemoryContextMethods implementation as this
1180  * allows these checks to be performed only when an actual malloc needs to
1181  * be done to request more memory from the OS. Additionally, not having
1182  * to execute any instructions after this call allows the compiler to use
1183  * the sibling call optimization. If you're considering adding code after
1184  * this call, consider making it the responsibility of the 'alloc'
1185  * function instead.
1186  */
1187  ret = context->methods->alloc(context, size, 0);
1188 
1189  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1190 
1191  return ret;
1192 }
#define AssertNotInCriticalSection(context)
Definition: mcxt.c:163
#define VALGRIND_MEMPOOL_ALLOC(context, addr, size)
Definition: memdebug.h:29
#define MemoryContextIsValid(context)
Definition: memnodes.h:145
static pg_noinline void Size size
Definition: slab.c:607
const MemoryContextMethods * methods
Definition: memnodes.h:126
void *(* alloc)(MemoryContext context, Size size, int flags)
Definition: memnodes.h:66

References MemoryContextMethods::alloc, Assert(), AssertNotInCriticalSection, MemoryContextData::isReset, MemoryContextIsValid, MemoryContextData::methods, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by _bt_getroot(), _bt_getrootheight(), _bt_metaversion(), _fdvec_resize(), _hash_getcachedmetap(), AddInvalidationMessage(), afterTriggerAddEvent(), AfterTriggerBeginSubXact(), AfterTriggerEnlargeQueryState(), allocate_record_info(), array_agg_deserialize(), array_agg_serialize(), array_fill_internal(), array_in(), array_out(), array_position_common(), array_positions(), array_recv(), array_send(), array_to_text_internal(), Async_Notify(), AtSubCommit_childXids(), BackgroundWorkerMain(), be_tls_open_server(), bt_check_level_from_leftmost(), build_concat_foutcache(), build_dummy_expanded_header(), check_foreign_key(), check_primary_key(), compute_array_stats(), copy_byval_expanded_array(), CopySnapshot(), create_drop_transactional_internal(), dblink_connect(), dblink_init(), deconstruct_expanded_record(), dense_alloc(), domain_state_setup(), dsm_create_descriptor(), dsm_impl_sysv(), enlarge_list(), EventTriggerBeginCompleteQuery(), ExecHashBuildSkewHash(), ExecHashSkewTableInsert(), ExecParallelRetrieveJitInstrumentation(), ExecSetSlotDescriptor(), expand_array(), fetch_array_arg_replace_nulls(), get_attribute_options(), get_multirange_io_data(), get_range_io_data(), get_tablespace(), GetComboCommandId(), GetFdwRoutineForRelation(), GetLocalBufferStorage(), GetLockConflicts(), gtrgm_consistent(), gtrgm_distance(), gtrgm_penalty(), hash_record(), hash_record_extended(), hstore_from_record(), hstore_populate_record(), initArrayResultAny(), initArrayResultWithSize(), initBloomState(), initialize_hash_entry(), initialize_reloptions(), InitializeClientEncoding(), InitializeParallelDSM(), InitIndexAmRoutine(), InitXLogInsert(), insertStatEntry(), intset_new_internal_node(), intset_new_leaf_node(), inv_open(), list_delete_first_n(), list_delete_nth_cell(), llvm_compile_module(), load_domaintype_info(), load_relcache_init_file(), LockAcquireExtended(), logical_rewrite_log_mapping(), lookup_ts_config_cache(), make_expanded_record_from_exprecord(), make_expanded_record_from_tupdesc(), make_expanded_record_from_typeid(), makeBoolAggState(), MemoryContextStrdup(), mergeruns(), mXactCachePut(), on_dsm_detach(), packGraph(), pg_column_compression(), pg_column_size(), pg_column_toast_chunk_id(), pg_input_is_valid_common(), pg_newlocale_from_collation(), pg_snapshot_xip(), pg_stat_get_backend_idset(), pgstat_build_snapshot(), pgstat_fetch_entry(), pgstat_get_entry_ref_cached(), pgstat_get_xact_stack_level(), pgstat_read_current_status(), plpgsql_create_econtext(), plpgsql_start_datums(), PLy_push_execution_context(), PLy_subtransaction_enter(), PortalSetResultFormat(), pq_init(), PrepareClientEncoding(), PrepareSortSupportComparisonShim(), PrepareTempTablespaces(), PushActiveSnapshotWithLevel(), px_find_digest(), queue_listen(), record_cmp(), record_eq(), record_image_cmp(), record_image_eq(), record_in(), record_out(), record_recv(), record_send(), RegisterExprContextCallback(), RegisterResourceReleaseCallback(), RegisterSubXactCallback(), RegisterXactCallback(), RelationBuildRuleLock(), RelationCacheInitialize(), RelationCreateStorage(), RelationDropStorage(), RelationParseRelOptions(), ReorderBufferAllocate(), ReorderBufferGetChange(), ReorderBufferGetRelids(), ReorderBufferGetTupleBuf(), ReorderBufferGetTXN(), ReorderBufferRestoreChange(), ReorderBufferSerializeReserve(), RequestNamedLWLockTranche(), RestoreSnapshot(), setop_fill_hash_table(), setup_background_workers(), shm_mq_receive(), SnapBuildPurgeOlderTxn(), SPI_connect_ext(), SPI_palloc(), sts_read_tuple(), tbm_begin_iterate(), test_enc_conversion(), tstoreStartupReceiver(), tts_virtual_materialize(), tuplesort_readtup_alloc(), and xactGetCommittedInvalidationMessages().

◆ MemoryContextAllocAligned()

void* MemoryContextAllocAligned ( MemoryContext  context,
Size  size,
Size  alignto,
int  flags 
)

Definition at line 1396 of file mcxt.c.

1398 {
1399  MemoryChunk *alignedchunk;
1400  Size alloc_size;
1401  void *unaligned;
1402  void *aligned;
1403 
1404  /* wouldn't make much sense to waste that much space */
1405  Assert(alignto < (128 * 1024 * 1024));
1406 
1407  /* ensure alignto is a power of 2 */
1408  Assert((alignto & (alignto - 1)) == 0);
1409 
1410  /*
1411  * If the alignment requirements are less than what we already guarantee
1412  * then just use the standard allocation function.
1413  */
1414  if (unlikely(alignto <= MAXIMUM_ALIGNOF))
1415  return MemoryContextAllocExtended(context, size, flags);
1416 
1417  /*
1418  * We implement aligned pointers by simply allocating enough memory for
1419  * the requested size plus the alignment and an additional "redirection"
1420  * MemoryChunk. This additional MemoryChunk is required for operations
1421  * such as pfree when used on the pointer returned by this function. We
1422  * use this redirection MemoryChunk in order to find the pointer to the
1423  * memory that was returned by the MemoryContextAllocExtended call below.
1424  * We do that by "borrowing" the block offset field and instead of using
1425  * that to find the offset into the owning block, we use it to find the
1426  * original allocated address.
1427  *
1428  * Here we must allocate enough extra memory so that we can still align
1429  * the pointer returned by MemoryContextAllocExtended and also have enough
1430  * space for the redirection MemoryChunk. Since allocations will already
1431  * be at least aligned by MAXIMUM_ALIGNOF, we can subtract that amount
1432  * from the allocation size to save a little memory.
1433  */
1434  alloc_size = size + PallocAlignedExtraBytes(alignto);
1435 
1436 #ifdef MEMORY_CONTEXT_CHECKING
1437  /* ensure there's space for a sentinel byte */
1438  alloc_size += 1;
1439 #endif
1440 
1441  /* perform the actual allocation */
1442  unaligned = MemoryContextAllocExtended(context, alloc_size, flags);
1443 
1444  /* set the aligned pointer */
1445  aligned = (void *) TYPEALIGN(alignto, (char *) unaligned +
1446  sizeof(MemoryChunk));
1447 
1448  alignedchunk = PointerGetMemoryChunk(aligned);
1449 
1450  /*
1451  * We set the redirect MemoryChunk so that the block offset calculation is
1452  * used to point back to the 'unaligned' allocated chunk. This allows us
1453  * to use MemoryChunkGetBlock() to find the unaligned chunk when we need
1454  * to perform operations such as pfree() and repalloc().
1455  *
1456  * We store 'alignto' in the MemoryChunk's 'value' so that we know what
1457  * the alignment was set to should we ever be asked to realloc this
1458  * pointer.
1459  */
1460  MemoryChunkSetHdrMask(alignedchunk, unaligned, alignto,
1462 
1463  /* double check we produced a correctly aligned pointer */
1464  Assert((void *) TYPEALIGN(alignto, aligned) == aligned);
1465 
1466 #ifdef MEMORY_CONTEXT_CHECKING
1467  alignedchunk->requested_size = size;
1468  /* set mark to catch clobber of "unused" space */
1469  set_sentinel(aligned, size);
1470 #endif
1471 
1472  /* Mark the bytes before the redirection header as noaccess */
1473  VALGRIND_MAKE_MEM_NOACCESS(unaligned,
1474  (char *) alignedchunk - (char *) unaligned);
1475 
1476  /* Disallow access to the redirection chunk header. */
1477  VALGRIND_MAKE_MEM_NOACCESS(alignedchunk, sizeof(MemoryChunk));
1478 
1479  return aligned;
1480 }
#define TYPEALIGN(ALIGNVAL, LEN)
Definition: c.h:791
#define unlikely(x)
Definition: c.h:298
size_t Size
Definition: c.h:592
void * MemoryContextAllocExtended(MemoryContext context, Size size, int flags)
Definition: mcxt.c:1225
#define PallocAlignedExtraBytes(alignto)
@ MCTX_ALIGNED_REDIRECT_ID
struct MemoryChunk MemoryChunk
#define PointerGetMemoryChunk(p)
static void MemoryChunkSetHdrMask(MemoryChunk *chunk, void *block, Size value, MemoryContextMethodID methodid)

References Assert(), MCTX_ALIGNED_REDIRECT_ID, MemoryChunkSetHdrMask(), MemoryContextAllocExtended(), PallocAlignedExtraBytes, PointerGetMemoryChunk, size, TYPEALIGN, unlikely, and VALGRIND_MAKE_MEM_NOACCESS.

Referenced by AlignedAllocRealloc(), PageSetChecksumCopy(), palloc_aligned(), and smgr_bulk_get_buf().

◆ MemoryContextAllocationFailure()

void* MemoryContextAllocationFailure ( MemoryContext  context,
Size  size,
int  flags 
)

Definition at line 1135 of file mcxt.c.

1136 {
1137  if ((flags & MCXT_ALLOC_NO_OOM) == 0)
1138  {
1140  ereport(ERROR,
1141  (errcode(ERRCODE_OUT_OF_MEMORY),
1142  errmsg("out of memory"),
1143  errdetail("Failed on request of size %zu in memory context \"%s\".",
1144  size, context->name)));
1145  }
1146  return NULL;
1147 }
int errdetail(const char *fmt,...)
Definition: elog.c:1205
int errcode(int sqlerrcode)
Definition: elog.c:859
int errmsg(const char *fmt,...)
Definition: elog.c:1072
#define ereport(elevel,...)
Definition: elog.h:149
#define MCXT_ALLOC_NO_OOM
Definition: fe_memutils.h:17
MemoryContext TopMemoryContext
Definition: mcxt.c:137
void MemoryContextStats(MemoryContext context)
Definition: mcxt.c:802
const char * name
Definition: memnodes.h:131

References ereport, errcode(), errdetail(), errmsg(), ERROR, MCXT_ALLOC_NO_OOM, MemoryContextStats(), MemoryContextData::name, size, and TopMemoryContext.

Referenced by AllocSetAllocFromNewBlock(), AllocSetAllocLarge(), AllocSetRealloc(), GenerationAllocFromNewBlock(), GenerationAllocLarge(), GenerationRealloc(), and SlabAllocFromNewBlock().

◆ MemoryContextAllocExtended()

void* MemoryContextAllocExtended ( MemoryContext  context,
Size  size,
int  flags 
)

Definition at line 1225 of file mcxt.c.

1226 {
1227  void *ret;
1228 
1229  Assert(MemoryContextIsValid(context));
1230  AssertNotInCriticalSection(context);
1231 
1232  if (!((flags & MCXT_ALLOC_HUGE) != 0 ? AllocHugeSizeIsValid(size) :
1234  elog(ERROR, "invalid memory alloc request size %zu", size);
1235 
1236  context->isReset = false;
1237 
1238  ret = context->methods->alloc(context, size, flags);
1239  if (unlikely(ret == NULL))
1240  return NULL;
1241 
1242  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1243 
1244  if ((flags & MCXT_ALLOC_ZERO) != 0)
1245  MemSetAligned(ret, 0, size);
1246 
1247  return ret;
1248 }
#define MemSetAligned(start, val, len)
Definition: c.h:1037
#define MCXT_ALLOC_ZERO
Definition: fe_memutils.h:18
#define MCXT_ALLOC_HUGE
Definition: fe_memutils.h:16
#define AllocHugeSizeIsValid(size)
Definition: memutils.h:49
#define AllocSizeIsValid(size)
Definition: memutils.h:42

References MemoryContextMethods::alloc, AllocHugeSizeIsValid, AllocSizeIsValid, Assert(), AssertNotInCriticalSection, elog, ERROR, MemoryContextData::isReset, MCXT_ALLOC_HUGE, MCXT_ALLOC_ZERO, MemoryContextIsValid, MemSetAligned, MemoryContextData::methods, size, unlikely, and VALGRIND_MEMPOOL_ALLOC.

Referenced by BackgroundWorkerStateChange(), DynaHashAlloc(), guc_malloc(), guc_realloc(), MemoryContextAllocAligned(), pagetable_allocate(), and RegisterBackgroundWorker().

◆ MemoryContextAllocHuge()

void* MemoryContextAllocHuge ( MemoryContext  context,
Size  size 
)

Definition at line 1627 of file mcxt.c.

1628 {
1629  void *ret;
1630 
1631  Assert(MemoryContextIsValid(context));
1632  AssertNotInCriticalSection(context);
1633 
1634  context->isReset = false;
1635 
1636  /*
1637  * For efficiency reasons, we purposefully offload the handling of
1638  * allocation failures to the MemoryContextMethods implementation as this
1639  * allows these checks to be performed only when an actual malloc needs to
1640  * be done to request more memory from the OS. Additionally, not having
1641  * to execute any instructions after this call allows the compiler to use
1642  * the sibling call optimization. If you're considering adding code after
1643  * this call, consider making it the responsibility of the 'alloc'
1644  * function instead.
1645  */
1646  ret = context->methods->alloc(context, size, MCXT_ALLOC_HUGE);
1647 
1648  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1649 
1650  return ret;
1651 }

References MemoryContextMethods::alloc, Assert(), AssertNotInCriticalSection, MemoryContextData::isReset, MCXT_ALLOC_HUGE, MemoryContextIsValid, MemoryContextData::methods, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by perform_default_encoding_conversion(), pg_buffercache_pages(), pg_do_encoding_conversion(), and pgstat_read_current_status().

◆ MemoryContextAllocZero()

void* MemoryContextAllocZero ( MemoryContext  context,
Size  size 
)

Definition at line 1202 of file mcxt.c.

1203 {
1204  void *ret;
1205 
1206  Assert(MemoryContextIsValid(context));
1207  AssertNotInCriticalSection(context);
1208 
1209  context->isReset = false;
1210 
1211  ret = context->methods->alloc(context, size, 0);
1212 
1213  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1214 
1215  MemSetAligned(ret, 0, size);
1216 
1217  return ret;
1218 }

References MemoryContextMethods::alloc, Assert(), AssertNotInCriticalSection, MemoryContextData::isReset, MemoryContextIsValid, MemSetAligned, MemoryContextData::methods, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by add_tabstat_xact_level(), AllocateAttribute(), array_set_element_expanded(), AttrDefaultFetch(), basic_archive_startup(), CheckConstraintFetch(), ClientAuthentication(), CreatePortal(), CreateWaitEventSet(), DCH_cache_getnew(), do_compile(), ensure_record_cache_typmod_slot_exists(), ExecHashBuildSkewHash(), ExecParallelRetrieveJitInstrumentation(), expandColorTrigrams(), fmgr_security_definer(), gistAllocateNewPageBuffer(), index_form_tuple_context(), init_MultiFuncCall(), initArrayResultArr(), InitializeSession(), InitXLogInsert(), llvm_create_context(), load_relcache_init_file(), LookupOpclassInfo(), LWLockRegisterTranche(), make_expanded_record_from_datum(), newLOfd(), NUM_cache_getnew(), pg_decode_begin_prepare_txn(), pg_decode_begin_txn(), pg_decode_stream_start(), pgoutput_begin_txn(), pgstat_prep_pending_entry(), PLy_exec_function(), PLy_function_save_args(), PLy_input_setup_func(), PLy_input_setup_tuple(), PLy_output_setup_func(), PLy_output_setup_tuple(), PMSignalShmemInit(), populate_record_worker(), populate_recordset_worker(), prepare_column_cache(), PrepareInvalidationState(), push_old_value(), PushTransaction(), px_find_cipher(), RehashCatCache(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), RelationBuildRowSecurity(), RelationBuildTupleDesc(), RelationInitIndexAccessInfo(), ReorderBufferCopySnap(), ReorderBufferIterTXNInit(), ReorderBufferRestoreChange(), ResourceOwnerCreate(), ResourceOwnerEnlarge(), satisfies_hash_partition(), secure_open_gssapi(), SetConstraintStateCreate(), SnapBuildBuildSnapshot(), SnapBuildRestore(), spgGetCache(), sts_puttuple(), ts_accum(), ts_stat_sql(), and WinGetPartitionLocalMemory().

◆ MemoryContextAllowInCriticalSection()

void MemoryContextAllowInCriticalSection ( MemoryContext  context,
bool  allow 
)

Definition at line 682 of file mcxt.c.

683 {
684  Assert(MemoryContextIsValid(context));
685 
686  context->allowInCritSection = allow;
687 }
bool allowInCritSection
Definition: memnodes.h:124

References MemoryContextData::allowInCritSection, Assert(), and MemoryContextIsValid.

Referenced by InitSync(), MemoryContextInit(), and XLOGShmemInit().

◆ MemoryContextCallResetCallbacks()

static void MemoryContextCallResetCallbacks ( MemoryContext  context)
static

Definition at line 573 of file mcxt.c.

574 {
576 
577  /*
578  * We pop each callback from the list before calling. That way, if an
579  * error occurs inside the callback, we won't try to call it a second time
580  * in the likely event that we reset or delete the context later.
581  */
582  while ((cb = context->reset_cbs) != NULL)
583  {
584  context->reset_cbs = cb->next;
585  cb->func(cb->arg);
586  }
587 }
struct MemoryContextCallback * next
Definition: palloc.h:51
MemoryContextCallbackFunction func
Definition: palloc.h:49
MemoryContextCallback * reset_cbs
Definition: memnodes.h:133

References MemoryContextCallback::arg, MemoryContextCallback::func, MemoryContextCallback::next, and MemoryContextData::reset_cbs.

Referenced by MemoryContextDeleteOnly(), and MemoryContextResetOnly().

◆ MemoryContextCreate()

void MemoryContextCreate ( MemoryContext  node,
NodeTag  tag,
MemoryContextMethodID  method_id,
MemoryContext  parent,
const char *  name 
)

Definition at line 1088 of file mcxt.c.

1093 {
1094  /* Creating new memory contexts is not allowed in a critical section */
1095  Assert(CritSectionCount == 0);
1096 
1097  /* Initialize all standard fields of memory context header */
1098  node->type = tag;
1099  node->isReset = true;
1100  node->methods = &mcxt_methods[method_id];
1101  node->parent = parent;
1102  node->firstchild = NULL;
1103  node->mem_allocated = 0;
1104  node->prevchild = NULL;
1105  node->name = name;
1106  node->ident = NULL;
1107  node->reset_cbs = NULL;
1108 
1109  /* OK to link node into context tree */
1110  if (parent)
1111  {
1112  node->nextchild = parent->firstchild;
1113  if (parent->firstchild != NULL)
1114  parent->firstchild->prevchild = node;
1115  parent->firstchild = node;
1116  /* inherit allowInCritSection flag from parent */
1117  node->allowInCritSection = parent->allowInCritSection;
1118  }
1119  else
1120  {
1121  node->nextchild = NULL;
1122  node->allowInCritSection = false;
1123  }
1124 
1125  VALGRIND_CREATE_MEMPOOL(node, 0, false);
1126 }
volatile uint32 CritSectionCount
Definition: globals.c:43
static const MemoryContextMethods mcxt_methods[]
Definition: mcxt.c:41
#define VALGRIND_CREATE_MEMPOOL(context, redzones, zeroed)
Definition: memdebug.h:24
MemoryContext prevchild
Definition: memnodes.h:129
MemoryContext firstchild
Definition: memnodes.h:128
const char * ident
Definition: memnodes.h:132
MemoryContext parent
Definition: memnodes.h:127
MemoryContext nextchild
Definition: memnodes.h:130
const char * name

References MemoryContextData::allowInCritSection, Assert(), CritSectionCount, MemoryContextData::firstchild, MemoryContextData::ident, MemoryContextData::isReset, mcxt_methods, MemoryContextData::mem_allocated, MemoryContextData::methods, name, MemoryContextData::name, MemoryContextData::nextchild, MemoryContextData::parent, MemoryContextData::prevchild, MemoryContextData::reset_cbs, and VALGRIND_CREATE_MEMPOOL.

Referenced by AllocSetContextCreateInternal(), GenerationContextCreate(), and SlabContextCreate().

◆ MemoryContextDelete()

void MemoryContextDelete ( MemoryContext  context)

Definition at line 442 of file mcxt.c.

443 {
444  MemoryContext curr;
445 
446  Assert(MemoryContextIsValid(context));
447 
448  /*
449  * Delete subcontexts from the bottom up.
450  *
451  * Note: Do not use recursion here. A "stack depth limit exceeded" error
452  * would be unpleasant if we're already in the process of cleaning up from
453  * transaction abort. We also cannot use MemoryContextTraverseNext() here
454  * because we modify the tree as we go.
455  */
456  curr = context;
457  for (;;)
458  {
459  MemoryContext parent;
460 
461  /* Descend down until we find a leaf context with no children */
462  while (curr->firstchild != NULL)
463  curr = curr->firstchild;
464 
465  /*
466  * We're now at a leaf with no children. Free it and continue from the
467  * parent. Or if this was the original node, we're all done.
468  */
469  parent = curr->parent;
471 
472  if (curr == context)
473  break;
474  curr = parent;
475  }
476 }
static void MemoryContextDeleteOnly(MemoryContext context)
Definition: mcxt.c:484

References Assert(), MemoryContextData::firstchild, MemoryContextDeleteOnly(), MemoryContextIsValid, and MemoryContextData::parent.

Referenced by _brin_end_parallel(), AfterTriggerEndXact(), afterTriggerInvokeEvents(), ApplyLauncherMain(), AtCleanup_Memory(), AtCommit_Memory(), AtEOSubXact_SPI(), AtEOXact_LargeObject(), AtSubCleanup_Memory(), AtSubCommit_Memory(), AttachPartitionEnsureIndexes(), autovacuum_do_vac_analyze(), AutoVacWorkerMain(), AuxiliaryProcessMainCommon(), BackgroundWorkerMain(), basic_archive_shutdown(), blbuild(), blinsert(), brin_free_desc(), brin_minmax_multi_union(), bringetbitmap(), brininsert(), bt_check_every_level(), btendscan(), btree_xlog_cleanup(), btvacuumscan(), BuildParamLogString(), BuildRelationExtStatistics(), CloneRowTriggersToPartition(), cluster(), compactify_ranges(), compile_plperl_function(), compile_pltcl_function(), compute_expr_stats(), compute_index_stats(), ComputeExtStatisticsRows(), createTrgmNFA(), CreateTriggerFiringOn(), daitch_mokotoff(), decr_dcc_refcount(), DeleteExpandedObject(), DiscreteKnapsack(), do_analyze_rel(), do_start_worker(), DoCopyTo(), DropCachedPlan(), each_worker(), each_worker_jsonb(), elements_worker(), elements_worker_jsonb(), end_heap_rewrite(), EndCopy(), EndCopyFrom(), ensure_free_space_in_buffer(), EventTriggerEndCompleteQuery(), EventTriggerInvoke(), exec_replication_command(), exec_simple_query(), ExecEndAgg(), ExecEndMemoize(), ExecEndRecursiveUnion(), ExecEndSetOp(), ExecEndWindowAgg(), ExecHashTableDestroy(), execute_sql_string(), ExecVacuum(), file_acquire_sample_rows(), fill_hba_view(), fill_ident_view(), fmgr_sql(), free_auth_file(), free_plperl_function(), FreeCachedExpression(), FreeDecodingContext(), FreeExecutorState(), FreeExprContext(), freeGISTstate(), FreeSnapshotBuilder(), geqo_eval(), get_actual_variable_range(), get_rel_sync_entry(), GetWALRecordsInfo(), GetXLogSummaryStats(), gin_xlog_cleanup(), ginbuild(), ginbulkdelete(), ginendscan(), gininsert(), ginInsertCleanup(), ginPlaceToPage(), gist_xlog_cleanup(), gistbuild(), gistvacuumscan(), hash_destroy(), inline_function(), inline_set_returning_function(), libpqrcv_processTuples(), load_hba(), load_ident(), load_tzoffsets(), makeArrayResultArr(), makeMdArrayResult(), MemoryContextDeleteChildren(), NIFinishBuild(), pg_backup_stop(), pg_decode_shutdown(), pg_get_wal_block_info(), pgstat_clear_backend_activity_snapshot(), pgstat_clear_snapshot(), plperl_spi_freeplan(), plperl_spi_prepare(), plpgsql_free_function_memory(), pltcl_handler(), pltcl_SPI_prepare(), PLy_cursor_dealloc(), PLy_plan_dealloc(), PLy_pop_execution_context(), PLy_procedure_delete(), PLy_spi_execute_fetch_result(), PortalDrop(), PostgresMain(), printtup_shutdown(), publicationListToArray(), RE_compile_and_cache(), rebuild_database_list(), ReindexMultipleTables(), ReindexPartitions(), ReindexRelationConcurrently(), RelationBuildDesc(), RelationBuildRuleLock(), RelationDestroyRelation(), ReleaseCachedPlan(), ReorderBufferFree(), ResetUnloggedRelations(), RevalidateCachedQuery(), shdepReassignOwned(), shutdown_MultiFuncCall(), spg_xlog_cleanup(), spgbuild(), spgendscan(), spginsert(), SPI_finish(), SPI_freeplan(), SPI_freetuptable(), statext_dependencies_build(), strlist_to_textarray(), SysLoggerMain(), test_pattern(), tokenize_auth_file(), tuplesort_end(), union_tuples(), UploadManifest(), and validateForeignKeyConstraint().

◆ MemoryContextDeleteChildren()

void MemoryContextDeleteChildren ( MemoryContext  context)

Definition at line 527 of file mcxt.c.

528 {
529  Assert(MemoryContextIsValid(context));
530 
531  /*
532  * MemoryContextDelete will delink the child from me, so just iterate as
533  * long as there is a child.
534  */
535  while (context->firstchild != NULL)
537 }
void MemoryContextDelete(MemoryContext context)
Definition: mcxt.c:442

References Assert(), MemoryContextData::firstchild, MemoryContextDelete(), and MemoryContextIsValid.

Referenced by AtAbort_Portals(), AtSubAbort_Portals(), exec_stmt_block(), MemoryContextReset(), PersistHoldablePortal(), PortalRunMulti(), and RelationCloseCleanup().

◆ MemoryContextDeleteOnly()

static void MemoryContextDeleteOnly ( MemoryContext  context)
static

Definition at line 484 of file mcxt.c.

485 {
486  Assert(MemoryContextIsValid(context));
487  /* We had better not be deleting TopMemoryContext ... */
488  Assert(context != TopMemoryContext);
489  /* And not CurrentMemoryContext, either */
490  Assert(context != CurrentMemoryContext);
491  /* All the children should've been deleted already */
492  Assert(context->firstchild == NULL);
493 
494  /*
495  * It's not entirely clear whether 'tis better to do this before or after
496  * delinking the context; but an error in a callback will likely result in
497  * leaking the whole context (if it's not a root context) if we do it
498  * after, so let's do it before.
499  */
501 
502  /*
503  * We delink the context from its parent before deleting it, so that if
504  * there's an error we won't have deleted/busted contexts still attached
505  * to the context tree. Better a leak than a crash.
506  */
507  MemoryContextSetParent(context, NULL);
508 
509  /*
510  * Also reset the context's ident pointer, in case it points into the
511  * context. This would only matter if someone tries to get stats on the
512  * (already unlinked) context, which is unlikely, but let's be safe.
513  */
514  context->ident = NULL;
515 
516  context->methods->delete_context(context);
517 
518  VALGRIND_DESTROY_MEMPOOL(context);
519 }
static void MemoryContextCallResetCallbacks(MemoryContext context)
Definition: mcxt.c:573
void MemoryContextSetParent(MemoryContext context, MemoryContext new_parent)
Definition: mcxt.c:625
MemoryContext CurrentMemoryContext
Definition: mcxt.c:131
#define VALGRIND_DESTROY_MEMPOOL(context)
Definition: memdebug.h:25
void(* delete_context)(MemoryContext context)
Definition: memnodes.h:86

References Assert(), CurrentMemoryContext, MemoryContextMethods::delete_context, MemoryContextData::firstchild, MemoryContextData::ident, MemoryContextCallResetCallbacks(), MemoryContextIsValid, MemoryContextSetParent(), MemoryContextData::methods, TopMemoryContext, and VALGRIND_DESTROY_MEMPOOL.

Referenced by MemoryContextDelete().

◆ MemoryContextGetParent()

MemoryContext MemoryContextGetParent ( MemoryContext  context)

◆ MemoryContextInit()

void MemoryContextInit ( void  )

Definition at line 327 of file mcxt.c.

328 {
329  Assert(TopMemoryContext == NULL);
330 
331  /*
332  * First, initialize TopMemoryContext, which is the parent of all others.
333  */
335  "TopMemoryContext",
337 
338  /*
339  * Not having any other place to point CurrentMemoryContext, make it point
340  * to TopMemoryContext. Caller should change this soon!
341  */
343 
344  /*
345  * Initialize ErrorContext as an AllocSetContext with slow growth rate ---
346  * we don't really expect much to be allocated in it. More to the point,
347  * require it to contain at least 8K at all times. This is the only case
348  * where retained memory in a context is *essential* --- we want to be
349  * sure ErrorContext still has some memory even if we've run out
350  * elsewhere! Also, allow allocations in ErrorContext within a critical
351  * section. Otherwise a PANIC will cause an assertion failure in the error
352  * reporting code, before printing out the real cause of the failure.
353  *
354  * This should be the last step in this function, as elog.c assumes memory
355  * management works once ErrorContext is non-null.
356  */
358  "ErrorContext",
359  8 * 1024,
360  8 * 1024,
361  8 * 1024);
363 }
MemoryContext ErrorContext
Definition: mcxt.c:138
void MemoryContextAllowInCriticalSection(MemoryContext context, bool allow)
Definition: mcxt.c:682
#define AllocSetContextCreate
Definition: memutils.h:129
#define ALLOCSET_DEFAULT_SIZES
Definition: memutils.h:153

References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, Assert(), CurrentMemoryContext, ErrorContext, MemoryContextAllowInCriticalSection(), and TopMemoryContext.

Referenced by main().

◆ MemoryContextIsEmpty()

bool MemoryContextIsEmpty ( MemoryContext  context)

Definition at line 731 of file mcxt.c.

732 {
733  Assert(MemoryContextIsValid(context));
734 
735  /*
736  * For now, we consider a memory context nonempty if it has any children;
737  * perhaps this should be changed later.
738  */
739  if (context->firstchild != NULL)
740  return false;
741  /* Otherwise use the type-specific inquiry */
742  return context->methods->is_empty(context);
743 }
bool(* is_empty)(MemoryContext context)
Definition: memnodes.h:101

References Assert(), MemoryContextData::firstchild, MemoryContextMethods::is_empty, MemoryContextIsValid, and MemoryContextData::methods.

Referenced by AtSubCommit_Memory().

◆ MemoryContextMemAllocated()

Size MemoryContextMemAllocated ( MemoryContext  context,
bool  recurse 
)

Definition at line 750 of file mcxt.c.

751 {
752  Size total = context->mem_allocated;
753 
754  Assert(MemoryContextIsValid(context));
755 
756  if (recurse)
757  {
758  for (MemoryContext curr = context->firstchild;
759  curr != NULL;
760  curr = MemoryContextTraverseNext(curr, context))
761  {
762  total += curr->mem_allocated;
763  }
764  }
765 
766  return total;
767 }
static MemoryContext MemoryContextTraverseNext(MemoryContext curr, MemoryContext top)
Definition: mcxt.c:245

References Assert(), MemoryContextData::firstchild, MemoryContextData::mem_allocated, MemoryContextIsValid, and MemoryContextTraverseNext().

Referenced by hash_agg_check_limits(), and hash_agg_update_metrics().

◆ MemoryContextMemConsumed()

void MemoryContextMemConsumed ( MemoryContext  context,
MemoryContextCounters consumed 
)

Definition at line 774 of file mcxt.c.

776 {
777  Assert(MemoryContextIsValid(context));
778 
779  memset(consumed, 0, sizeof(*consumed));
780 
781  /* Examine the context itself */
782  context->methods->stats(context, NULL, NULL, consumed, false);
783 
784  /* Examine children, using iteration not recursion */
785  for (MemoryContext curr = context->firstchild;
786  curr != NULL;
787  curr = MemoryContextTraverseNext(curr, context))
788  {
789  curr->methods->stats(curr, NULL, NULL, consumed, false);
790  }
791 }
void(* stats)(MemoryContext context, MemoryStatsPrintFunc printfunc, void *passthru, MemoryContextCounters *totals, bool print_to_stderr)
Definition: memnodes.h:102

References Assert(), MemoryContextData::firstchild, MemoryContextIsValid, MemoryContextTraverseNext(), MemoryContextData::methods, and MemoryContextMethods::stats.

Referenced by ExplainExecuteQuery(), and standard_ExplainOneQuery().

◆ MemoryContextRegisterResetCallback()

void MemoryContextRegisterResetCallback ( MemoryContext  context,
MemoryContextCallback cb 
)

Definition at line 556 of file mcxt.c.

558 {
559  Assert(MemoryContextIsValid(context));
560 
561  /* Push onto head so this will be called before older registrants. */
562  cb->next = context->reset_cbs;
563  context->reset_cbs = cb;
564  /* Mark the context as non-reset (it probably is already). */
565  context->isReset = false;
566 }

References Assert(), MemoryContextData::isReset, MemoryContextIsValid, MemoryContextCallback::next, and MemoryContextData::reset_cbs.

Referenced by expanded_record_fetch_tupdesc(), InitDomainConstraintRef(), make_expanded_record_from_exprecord(), make_expanded_record_from_tupdesc(), make_expanded_record_from_typeid(), and PLy_exec_function().

◆ MemoryContextReset()

void MemoryContextReset ( MemoryContext  context)

Definition at line 371 of file mcxt.c.

372 {
373  Assert(MemoryContextIsValid(context));
374 
375  /* save a function call in common case where there are no children */
376  if (context->firstchild != NULL)
378 
379  /* save a function call if no pallocs since startup or last reset */
380  if (!context->isReset)
381  MemoryContextResetOnly(context);
382 }
void MemoryContextDeleteChildren(MemoryContext context)
Definition: mcxt.c:527
void MemoryContextResetOnly(MemoryContext context)
Definition: mcxt.c:390

References Assert(), MemoryContextData::firstchild, MemoryContextData::isReset, MemoryContextDeleteChildren(), MemoryContextIsValid, and MemoryContextResetOnly().

Referenced by _brin_end_parallel(), _bt_preprocess_array_keys(), _SPI_end_call(), AfterTriggerExecute(), apply_spooled_messages(), AtCleanup_Memory(), AtEOSubXact_SPI(), AtSubCleanup_Memory(), BackgroundWriterMain(), basic_archive_file(), bloomBuildCallback(), brin_memtuple_initialize(), bringetbitmap(), brininsert(), bt_check_level_from_leftmost(), btree_redo(), btvacuumpage(), BuildEventTriggerCache(), BuildRelationExtStatistics(), buildSubPlanHash(), cache_purge_all(), check_domain_for_new_field(), check_domain_for_new_tuple(), CheckpointerMain(), CloneRowTriggersToPartition(), compute_expr_stats(), compute_index_stats(), CopyOneRowTo(), CreateTriggerFiringOn(), do_analyze_rel(), do_autovacuum(), dumptuples(), each_object_field_end(), each_worker_jsonb(), elements_array_element_end(), elements_worker_jsonb(), errstart(), eval_windowaggregates(), EventTriggerInvoke(), exec_dynquery_with_params(), exec_stmt_block(), exec_stmt_dynexecute(), exec_stmt_forc(), exec_stmt_foreach_a(), exec_stmt_open(), exec_stmt_raise(), exec_stmt_return_query(), ExecFindMatchingSubPlans(), ExecHashTableReset(), ExecMakeTableFunctionResult(), ExecProjectSet(), ExecQualAndReset(), ExecRecursiveUnion(), ExecReScanRecursiveUnion(), ExecReScanSetOp(), execTuplesUnequal(), execute_foreign_modify(), expanded_record_set_field_internal(), expanded_record_set_tuple(), fetch_more_data(), file_acquire_sample_rows(), FlushErrorState(), get_short_term_cxt(), GetWALRecordsInfo(), GetXLogSummaryStats(), gin_redo(), ginBuildCallback(), ginFreeScanKeys(), ginHeapTupleBulkInsert(), ginInsertCleanup(), ginVacuumPostingTreeLeaves(), gist_indexsortbuild(), gist_redo(), gistBuildCallback(), gistgetbitmap(), gistgettuple(), gistinsert(), gistProcessEmptyingQueue(), gistrescan(), gistScanPage(), gistSortedBuildCallback(), HandleParallelApplyMessages(), HandleParallelMessages(), heapam_index_build_range_scan(), heapam_index_validate_scan(), IndexCheckExclusion(), initialize_windowaggregate(), InvalidateEventCacheCallback(), keyGetItem(), libpqrcv_processTuples(), LogicalParallelApplyLoop(), LogicalRepApplyLoop(), lookup_ts_dictionary_cache(), make_tuple_from_result_row(), perform_work_item(), pg_backup_start(), pg_decode_change(), pg_decode_truncate(), pg_get_wal_block_info(), pgoutput_change(), pgoutput_truncate(), plperl_return_next_internal(), PLy_input_convert(), PLy_input_from_tuple(), PostgresMain(), printtup(), process_ordered_aggregate_single(), release_partition(), ReScanExprContext(), resetSpGistScanOpaque(), scanPendingInsert(), sepgsql_avc_reset(), spcache_init(), spg_redo(), spginsert(), spgistBuildCallback(), spgWalk(), startScanKey(), statext_dependencies_build(), storeRow(), stream_stop_internal(), tfuncFetchRows(), tfuncLoadRows(), tuplesort_free(), validateForeignKeyConstraint(), WalSummarizerMain(), and WalWriterMain().

◆ MemoryContextResetChildren()

void MemoryContextResetChildren ( MemoryContext  context)

Definition at line 421 of file mcxt.c.

422 {
423  Assert(MemoryContextIsValid(context));
424 
425  for (MemoryContext curr = context->firstchild;
426  curr != NULL;
427  curr = MemoryContextTraverseNext(curr, context))
428  {
430  }
431 }

References Assert(), MemoryContextData::firstchild, MemoryContextIsValid, MemoryContextResetOnly(), and MemoryContextTraverseNext().

◆ MemoryContextResetOnly()

void MemoryContextResetOnly ( MemoryContext  context)

Definition at line 390 of file mcxt.c.

391 {
392  Assert(MemoryContextIsValid(context));
393 
394  /* Nothing to do if no pallocs since startup or last reset */
395  if (!context->isReset)
396  {
398 
399  /*
400  * If context->ident points into the context's memory, it will become
401  * a dangling pointer. We could prevent that by setting it to NULL
402  * here, but that would break valid coding patterns that keep the
403  * ident elsewhere, e.g. in a parent context. So for now we assume
404  * the programmer got it right.
405  */
406 
407  context->methods->reset(context);
408  context->isReset = true;
409  VALGRIND_DESTROY_MEMPOOL(context);
410  VALGRIND_CREATE_MEMPOOL(context, 0, false);
411  }
412 }
void(* reset)(MemoryContext context)
Definition: memnodes.h:83

References Assert(), MemoryContextData::isReset, MemoryContextCallResetCallbacks(), MemoryContextIsValid, MemoryContextData::methods, MemoryContextMethods::reset, VALGRIND_CREATE_MEMPOOL, and VALGRIND_DESTROY_MEMPOOL.

Referenced by AllocSetDelete(), MemoryContextReset(), MemoryContextResetChildren(), and mergeruns().

◆ MemoryContextSetIdentifier()

◆ MemoryContextSetParent()

void MemoryContextSetParent ( MemoryContext  context,
MemoryContext  new_parent 
)

Definition at line 625 of file mcxt.c.

626 {
627  Assert(MemoryContextIsValid(context));
628  Assert(context != new_parent);
629 
630  /* Fast path if it's got correct parent already */
631  if (new_parent == context->parent)
632  return;
633 
634  /* Delink from existing parent, if any */
635  if (context->parent)
636  {
637  MemoryContext parent = context->parent;
638 
639  if (context->prevchild != NULL)
640  context->prevchild->nextchild = context->nextchild;
641  else
642  {
643  Assert(parent->firstchild == context);
644  parent->firstchild = context->nextchild;
645  }
646 
647  if (context->nextchild != NULL)
648  context->nextchild->prevchild = context->prevchild;
649  }
650 
651  /* And relink */
652  if (new_parent)
653  {
654  Assert(MemoryContextIsValid(new_parent));
655  context->parent = new_parent;
656  context->prevchild = NULL;
657  context->nextchild = new_parent->firstchild;
658  if (new_parent->firstchild != NULL)
659  new_parent->firstchild->prevchild = context;
660  new_parent->firstchild = context;
661  }
662  else
663  {
664  context->parent = NULL;
665  context->prevchild = NULL;
666  context->nextchild = NULL;
667  }
668 }

References Assert(), MemoryContextData::firstchild, MemoryContextIsValid, MemoryContextData::nextchild, MemoryContextData::parent, and MemoryContextData::prevchild.

Referenced by _SPI_save_plan(), CachedPlanSetParentContext(), CompleteCachedPlan(), exec_parse_message(), GetCachedExpression(), GetCachedPlan(), load_domaintype_info(), MemoryContextDeleteOnly(), RE_compile_and_cache(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), RelationBuildRowSecurity(), RelationClearRelation(), RevalidateCachedQuery(), SaveCachedPlan(), SPI_keepplan(), TransferExpandedObject(), and UploadManifest().

◆ MemoryContextSizeFailure()

void MemoryContextSizeFailure ( MemoryContext  context,
Size  size,
int  flags 
)

Definition at line 1155 of file mcxt.c.

1156 {
1157  elog(ERROR, "invalid memory alloc request size %zu", size);
1158 }

References elog, ERROR, and size.

Referenced by MemoryContextCheckSize().

◆ MemoryContextStats()

void MemoryContextStats ( MemoryContext  context)

Definition at line 802 of file mcxt.c.

803 {
804  /* Hard-wired limits are usually good enough */
805  MemoryContextStatsDetail(context, 100, 100, true);
806 }
void MemoryContextStatsDetail(MemoryContext context, int max_level, int max_children, bool print_to_stderr)
Definition: mcxt.c:817

References MemoryContextStatsDetail().

Referenced by AllocSetContextCreateInternal(), finish_xact_command(), GenerationContextCreate(), MemoryContextAllocationFailure(), SlabContextCreate(), and test_pattern().

◆ MemoryContextStatsDetail()

void MemoryContextStatsDetail ( MemoryContext  context,
int  max_level,
int  max_children,
bool  print_to_stderr 
)

Definition at line 817 of file mcxt.c.

820 {
821  MemoryContextCounters grand_totals;
822 
823  memset(&grand_totals, 0, sizeof(grand_totals));
824 
825  MemoryContextStatsInternal(context, 0, max_level, max_children,
826  &grand_totals, print_to_stderr);
827 
828  if (print_to_stderr)
829  fprintf(stderr,
830  "Grand total: %zu bytes in %zu blocks; %zu free (%zu chunks); %zu used\n",
831  grand_totals.totalspace, grand_totals.nblocks,
832  grand_totals.freespace, grand_totals.freechunks,
833  grand_totals.totalspace - grand_totals.freespace);
834  else
835  {
836  /*
837  * Use LOG_SERVER_ONLY to prevent the memory contexts from being sent
838  * to the connected client.
839  *
840  * We don't buffer the information about all memory contexts in a
841  * backend into StringInfo and log it as one message. That would
842  * require the buffer to be enlarged, risking an OOM as there could be
843  * a large number of memory contexts in a backend. Instead, we log
844  * one message per memory context.
845  */
847  (errhidestmt(true),
848  errhidecontext(true),
849  errmsg_internal("Grand total: %zu bytes in %zu blocks; %zu free (%zu chunks); %zu used",
850  grand_totals.totalspace, grand_totals.nblocks,
851  grand_totals.freespace, grand_totals.freechunks,
852  grand_totals.totalspace - grand_totals.freespace)));
853  }
854 }
int errmsg_internal(const char *fmt,...)
Definition: elog.c:1159
int errhidestmt(bool hide_stmt)
Definition: elog.c:1413
int errhidecontext(bool hide_ctx)
Definition: elog.c:1432
#define LOG_SERVER_ONLY
Definition: elog.h:32
static void MemoryContextStatsInternal(MemoryContext context, int level, int max_level, int max_children, MemoryContextCounters *totals, bool print_to_stderr)
Definition: mcxt.c:864
#define fprintf
Definition: port.h:242

References ereport, errhidecontext(), errhidestmt(), errmsg_internal(), fprintf, MemoryContextCounters::freechunks, MemoryContextCounters::freespace, LOG_SERVER_ONLY, MemoryContextStatsInternal(), MemoryContextCounters::nblocks, and MemoryContextCounters::totalspace.

Referenced by MemoryContextStats(), and ProcessLogMemoryContextInterrupt().

◆ MemoryContextStatsInternal()

static void MemoryContextStatsInternal ( MemoryContext  context,
int  level,
int  max_level,
int  max_children,
MemoryContextCounters totals,
bool  print_to_stderr 
)
static

Definition at line 864 of file mcxt.c.

868 {
869  MemoryContext child;
870  int ichild;
871 
872  Assert(MemoryContextIsValid(context));
873 
874  /* Examine the context itself */
875  context->methods->stats(context,
877  (void *) &level,
878  totals, print_to_stderr);
879 
880  /*
881  * Examine children.
882  *
883  * If we are past the recursion depth limit or already running low on
884  * stack, do not print them explicitly but just summarize them. Similarly,
885  * if there are more than max_children of them, we do not print the rest
886  * explicitly, but just summarize them.
887  */
888  child = context->firstchild;
889  ichild = 0;
890  if (level < max_level && !stack_is_too_deep())
891  {
892  for (; child != NULL && ichild < max_children;
893  child = child->nextchild, ichild++)
894  {
895  MemoryContextStatsInternal(child, level + 1,
896  max_level, max_children,
897  totals,
898  print_to_stderr);
899  }
900  }
901 
902  if (child != NULL)
903  {
904  /* Summarize the rest of the children, avoiding recursion. */
905  MemoryContextCounters local_totals;
906 
907  memset(&local_totals, 0, sizeof(local_totals));
908 
909  ichild = 0;
910  while (child != NULL)
911  {
912  child->methods->stats(child, NULL, NULL, &local_totals, false);
913  ichild++;
914  child = MemoryContextTraverseNext(child, context);
915  }
916 
917  if (print_to_stderr)
918  {
919  for (int i = 0; i <= level; i++)
920  fprintf(stderr, " ");
921  fprintf(stderr,
922  "%d more child contexts containing %zu total in %zu blocks; %zu free (%zu chunks); %zu used\n",
923  ichild,
924  local_totals.totalspace,
925  local_totals.nblocks,
926  local_totals.freespace,
927  local_totals.freechunks,
928  local_totals.totalspace - local_totals.freespace);
929  }
930  else
932  (errhidestmt(true),
933  errhidecontext(true),
934  errmsg_internal("level: %d; %d more child contexts containing %zu total in %zu blocks; %zu free (%zu chunks); %zu used",
935  level,
936  ichild,
937  local_totals.totalspace,
938  local_totals.nblocks,
939  local_totals.freespace,
940  local_totals.freechunks,
941  local_totals.totalspace - local_totals.freespace)));
942 
943  if (totals)
944  {
945  totals->nblocks += local_totals.nblocks;
946  totals->freechunks += local_totals.freechunks;
947  totals->totalspace += local_totals.totalspace;
948  totals->freespace += local_totals.freespace;
949  }
950  }
951 }
int i
Definition: isn.c:73
static void MemoryContextStatsPrint(MemoryContext context, void *passthru, const char *stats_string, bool print_to_stderr)
Definition: mcxt.c:961
bool stack_is_too_deep(void)
Definition: postgres.c:3545

References Assert(), ereport, errhidecontext(), errhidestmt(), errmsg_internal(), MemoryContextData::firstchild, fprintf, MemoryContextCounters::freechunks, MemoryContextCounters::freespace, i, LOG_SERVER_ONLY, MemoryContextIsValid, MemoryContextStatsPrint(), MemoryContextTraverseNext(), MemoryContextData::methods, MemoryContextCounters::nblocks, MemoryContextData::nextchild, stack_is_too_deep(), MemoryContextMethods::stats, and MemoryContextCounters::totalspace.

Referenced by MemoryContextStatsDetail().

◆ MemoryContextStatsPrint()

static void MemoryContextStatsPrint ( MemoryContext  context,
void *  passthru,
const char *  stats_string,
bool  print_to_stderr 
)
static

Definition at line 961 of file mcxt.c.

964 {
965  int level = *(int *) passthru;
966  const char *name = context->name;
967  const char *ident = context->ident;
968  char truncated_ident[110];
969  int i;
970 
971  /*
972  * It seems preferable to label dynahash contexts with just the hash table
973  * name. Those are already unique enough, so the "dynahash" part isn't
974  * very helpful, and this way is more consistent with pre-v11 practice.
975  */
976  if (ident && strcmp(name, "dynahash") == 0)
977  {
978  name = ident;
979  ident = NULL;
980  }
981 
982  truncated_ident[0] = '\0';
983 
984  if (ident)
985  {
986  /*
987  * Some contexts may have very long identifiers (e.g., SQL queries).
988  * Arbitrarily truncate at 100 bytes, but be careful not to break
989  * multibyte characters. Also, replace ASCII control characters, such
990  * as newlines, with spaces.
991  */
992  int idlen = strlen(ident);
993  bool truncated = false;
994 
995  strcpy(truncated_ident, ": ");
996  i = strlen(truncated_ident);
997 
998  if (idlen > 100)
999  {
1000  idlen = pg_mbcliplen(ident, idlen, 100);
1001  truncated = true;
1002  }
1003 
1004  while (idlen-- > 0)
1005  {
1006  unsigned char c = *ident++;
1007 
1008  if (c < ' ')
1009  c = ' ';
1010  truncated_ident[i++] = c;
1011  }
1012  truncated_ident[i] = '\0';
1013 
1014  if (truncated)
1015  strcat(truncated_ident, "...");
1016  }
1017 
1018  if (print_to_stderr)
1019  {
1020  for (i = 0; i < level; i++)
1021  fprintf(stderr, " ");
1022  fprintf(stderr, "%s: %s%s\n", name, stats_string, truncated_ident);
1023  }
1024  else
1026  (errhidestmt(true),
1027  errhidecontext(true),
1028  errmsg_internal("level: %d; %s: %s%s",
1029  level, name, stats_string, truncated_ident)));
1030 }
#define ident
Definition: indent_codes.h:47
int pg_mbcliplen(const char *mbstr, int len, int limit)
Definition: mbutils.c:1083
char * c

References ereport, errhidecontext(), errhidestmt(), errmsg_internal(), fprintf, i, MemoryContextData::ident, ident, LOG_SERVER_ONLY, name, MemoryContextData::name, and pg_mbcliplen().

Referenced by MemoryContextStatsInternal().

◆ MemoryContextStrdup()

◆ MemoryContextTraverseNext()

static MemoryContext MemoryContextTraverseNext ( MemoryContext  curr,
MemoryContext  top 
)
static

Definition at line 245 of file mcxt.c.

246 {
247  /* After processing a node, traverse to its first child if any */
248  if (curr->firstchild != NULL)
249  return curr->firstchild;
250 
251  /*
252  * After processing a childless node, traverse to its next sibling if
253  * there is one. If there isn't, traverse back up to the parent (which
254  * has already been visited, and now so have all its descendants). We're
255  * done if that is "top", otherwise traverse to its next sibling if any,
256  * otherwise repeat moving up.
257  */
258  while (curr->nextchild == NULL)
259  {
260  curr = curr->parent;
261  if (curr == top)
262  return NULL;
263  }
264  return curr->nextchild;
265 }

References MemoryContextData::firstchild, MemoryContextData::nextchild, and MemoryContextData::parent.

Referenced by MemoryContextMemAllocated(), MemoryContextMemConsumed(), MemoryContextResetChildren(), and MemoryContextStatsInternal().

◆ palloc()

void* palloc ( Size  size)

Definition at line 1304 of file mcxt.c.

1305 {
1306  /* duplicates MemoryContextAlloc to avoid increased overhead */
1307  void *ret;
1309 
1310  Assert(MemoryContextIsValid(context));
1311  AssertNotInCriticalSection(context);
1312 
1313  context->isReset = false;
1314 
1315  /*
1316  * For efficiency reasons, we purposefully offload the handling of
1317  * allocation failures to the MemoryContextMethods implementation as this
1318  * allows these checks to be performed only when an actual malloc needs to
1319  * be done to request more memory from the OS. Additionally, not having
1320  * to execute any instructions after this call allows the compiler to use
1321  * the sibling call optimization. If you're considering adding code after
1322  * this call, consider making it the responsibility of the 'alloc'
1323  * function instead.
1324  */
1325  ret = context->methods->alloc(context, size, 0);
1326  /* We expect OOM to be handled by the alloc function */
1327  Assert(ret != NULL);
1328  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1329 
1330  return ret;
1331 }

References MemoryContextMethods::alloc, Assert(), AssertNotInCriticalSection, CurrentMemoryContext, MemoryContextData::isReset, MemoryContextIsValid, MemoryContextData::methods, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by _bt_bottomupdel_pass(), _bt_deadblocks(), _bt_dedup_pass(), _bt_delitems_delete_check(), _bt_delitems_update(), _bt_findsplitloc(), _bt_load(), _bt_mkscankey(), _bt_newlevel(), _bt_pendingfsm_init(), _bt_preprocess_array_keys(), _bt_search(), _bt_simpledel_pass(), _intbig_alloc(), _lca(), _ltree_compress(), _ltree_picksplit(), _metaphone(), _SPI_make_plan_non_temp(), _SPI_save_plan(), AbsorbSyncRequests(), accum_sum_copy(), accumArrayResultArr(), aclexplode(), aclitemin(), aclitemout(), aclmembers(), acquire_inherited_sample_rows(), add_exact_object_address_extra(), add_gin_entry(), add_local_reloption(), add_reloption(), add_rte_to_flat_rtable(), add_to_tsvector(), add_unique_group_var(), addArc(), addArcs(), addCompiledLexeme(), AddEnumLabel(), addFkRecurseReferenced(), addItemsToLeaf(), addKey(), addKeyToQueue(), addNode(), addNorm(), addRangeClause(), addRangeTableEntryForFunction(), addRangeTableEntryForJoin(), AddRelationNewConstraints(), AddRoleMems(), addWrd(), alloc_chromo(), alloc_edge_table(), alloc_pool(), allocate_recordbuf(), allocate_reloption(), AllocateRelationDesc(), AlterPolicy(), AlterPublicationTables(), AlterSubscription_refresh(), anybit_typmodout(), anychar_typmodout(), append_nonpartial_cost(), appendJSONKeyValueFmt(), AppendStringCommandOption(), apply_spooled_messages(), apw_dump_now(), array_agg_array_combine(), array_agg_array_deserialize(), array_cat(), array_create_iterator(), array_exec_setup(), array_map(), array_out(), array_recv(), array_replace_internal(), array_set_element(), array_typanalyze(), array_unnest(), arrayconst_startup_fn(), arrayexpr_startup_fn(), ArrayGetIntegerTypmods(), AssignTransactionId(), Async_Notify(), ATExecAddColumn(), ATExecColumnDefault(), ATExecSetExpression(), attach_internal(), AttachPartitionEnsureIndexes(), autoinc(), BaseBackupAddTarget(), BaseBackupGetTargetHandle(), bbsink_copystream_begin_backup(), be_loread(), be_tls_get_certificate_hash(), begin_tup_output_tupdesc(), BeginCopyFrom(), binary_decode(), binary_encode(), binaryheap_allocate(), BipartiteMatch(), bit_and(), bit_catenate(), bit_or(), bit_out(), bit_recv(), bitfromint4(), bitfromint8(), bitnot(), bits_to_text(), bitsetbit(), bitshiftleft(), bitshiftright(), bitsubstring(), bitxor(), blbeginscan(), blbuild(), BlockRefTableEntryMarkBlockModified(), BlockRefTableReaderNextRelation(), bms_copy(), boolout(), BootStrapXLOG(), bottomup_sort_and_shrink(), box_add(), box_center(), box_circle(), box_copy(), box_diagonal(), box_div(), box_in(), box_intersect(), box_mul(), box_poly(), box_recv(), box_sub(), boxes_bound_box(), bpchar(), bpchar_input(), bqarr_in(), bqarr_out(), brin_build_desc(), brin_copy_tuple(), brin_form_tuple(), brin_minmax_multi_distance_inet(), brin_new_memtuple(), brin_page_items(), brin_range_deserialize(), brin_revmap_data(), bringetbitmap(), brinRevmapInitialize(), bt_multi_page_stats(), bt_page_items_bytea(), bt_page_items_internal(), bt_page_print_tuples(), btbeginscan(), btbuild(), btgettuple(), btree_xlog_dedup(), btree_xlog_updates(), btreevacuumposting(), btrescan(), BufferSync(), BufFileCreateFileSet(), BufFileOpenFileSet(), build_attnums_array(), build_column_frequencies(), build_datatype(), build_distinct_groups(), build_EvalXFuncInt(), build_function_result_tupdesc_d(), build_local_reloptions(), build_merged_partition_bounds(), build_minmax_path(), build_pertrans_for_aggref(), build_row_from_vars(), build_server_final_message(), build_server_first_message(), build_sorted_items(), build_subplan(), build_tlist_index(), build_tlist_index_other_vars(), build_tuplestore_recursively(), BuildCachedPlan(), buildNSItemFromLists(), buildNSItemFromTupleDesc(), BuildSpeculativeIndexInfo(), BuildTupleFromCStrings(), BuildTupleHashTableExt(), bytea_catenate(), bytea_string_agg_finalfn(), byteain(), byteaout(), bytearecv(), cache_lookup(), cache_store_tuple(), cached_scansel(), calc_distr(), calc_hist(), calc_hist_selectivity(), calc_word_similarity(), CatalogCacheCreateEntry(), catenate_stringinfo_string(), char_bpchar(), char_text(), charout(), check_foreign_key(), check_primary_key(), check_temp_tablespaces(), CheckAffix(), checkAllTheSame(), checkclass_str(), checkcondition_HL(), checkcondition_str(), checkSharedDependencies(), choose_bitmap_and(), chr(), cidout(), circle_add_pt(), circle_box(), circle_center(), circle_div_pt(), circle_in(), circle_mul_pt(), circle_recv(), circle_sub_pt(), classify_index_clause_usage(), clauselist_apply_dependencies(), cleanup_tsquery_stopwords(), clone_parse_state(), close_ls(), close_lseg(), close_pb(), close_pl(), close_ps(), close_sb(), collect_corrupt_items(), collectTSQueryValues(), combinebackup_per_wal_range_cb(), compileTheLexeme(), compileTheSubstitute(), CompleteCachedPlan(), complex_add(), complex_in(), complex_recv(), compute_array_stats(), compute_distinct_stats(), compute_expr_stats(), compute_index_stats(), compute_range_stats(), compute_scalar_stats(), compute_tsvector_stats(), computeLeafRecompressWALData(), concat_text(), connect_pg_server(), consider_groupingsets_paths(), construct_point(), convert_prep_stmt_params(), convert_requires_to_datum(), convert_string_datum(), convert_tuples_by_name_attrmap(), convert_tuples_by_position(), copy_file(), copy_pathtarget(), copy_plpgsql_datums(), CopyCachedPlan(), CopyErrorData(), CopyIndexAttOptions(), CopyIndexTuple(), copyJsonbValue(), CopyMultiInsertBufferInit(), CopySearchPathMatcher(), copyTemplateDependencies(), copytext(), CopyTriggerDesc(), copyTSLexeme(), CopyVar(), copyVar(), count_usable_fds(), cr_circle(), create_hash_bounds(), create_internal(), create_limit_plan(), create_list_bounds(), create_memoize_plan(), create_mergejoin_plan(), create_range_bounds(), create_secmsg(), create_unique_plan(), create_windowagg_plan(), CreateConstraintEntry(), CreateCopyDestReceiver(), CreateEmptyBlockRefTable(), CreateFunction(), CreatePartitionDirectory(), CreatePartitionPruneState(), createPostingTree(), CreateQueryDesc(), CreateTemplateTupleDesc(), CreateTriggerFiringOn(), CreateTupleDescCopyConstr(), cstring_to_text_with_len(), cube_recv(), current_database(), current_schemas(), currtid_internal(), dataBeginPlaceToPageLeaf(), dataPrepareDownlink(), datetime_to_char_body(), datumCopy(), datumRestore(), datumSerialize(), dead_items_alloc(), debackslash(), decodePageSplitRecord(), deconstruct_array(), DefineRelation(), DefineTSConfiguration(), deparse_lquery(), deparse_ltree(), dependencies_clauselist_selectivity(), dependency_degree(), DependencyGenerator_init(), deserialize_deflist(), detoast_attr(), detoast_attr_slice(), detoast_external_attr(), dibuild(), disassembleLeaf(), DiscreteKnapsack(), do_analyze_rel(), do_compile(), do_pg_backup_start(), do_to_timestamp(), dobyteatrim(), DoCopyTo(), doPickSplit(), dotrim(), double_to_shortest_decimal(), downcase_convert(), downcase_identifier(), DropRelationFiles(), DropRelationsAllBuffers(), dshash_attach(), dshash_create(), dsynonym_init(), dumpFunc(), duplicate_numeric(), dxsyn_lexize(), encrypt_password(), entry_dealloc(), entryPrepareDownlink(), enum_range_internal(), EnumValuesCreate(), EventTriggerAlterTableStart(), EventTriggerCollectAlterOpFam(), EventTriggerCollectAlterTableSubcmd(), EventTriggerCollectAlterTSConfig(), EventTriggerCollectGrant(), EventTriggerCollectSimpleCommand(), ExecAggRetrieveInstrumentation(), ExecComputeStoredGenerated(), ExecEvalArrayExpr(), ExecGather(), ExecGatherMerge(), ExecHashJoinGetSavedTuple(), ExecHashRetrieveInstrumentation(), ExecIncrementalSortRetrieveInstrumentation(), ExecIndexBuildScanKeys(), ExecInitAgg(), ExecInitAppend(), ExecInitCoerceToDomain(), ExecInitExprRec(), ExecInitFunctionScan(), ExecInitIndexScan(), ExecInitJunkFilter(), ExecInitMemoize(), ExecInitMergeAppend(), ExecInitModifyTable(), ExecInitPartitionDispatchInfo(), ExecInitProjectSet(), ExecInitRoutingInfo(), ExecInitSubPlan(), ExecInitTableFuncScan(), ExecInitValuesScan(), ExecInsert(), ExecMakeTableFunctionResult(), ExecMemoizeRetrieveInstrumentation(), ExecOpenIndices(), ExecParallelCreateReaders(), ExecParallelRetrieveInstrumentation(), ExecParallelSetupTupleQueues(), ExecRelCheck(), ExecSortRetrieveInstrumentation(), execTuplesHashPrepare(), execTuplesMatchPrepare(), executeBinaryArithmExpr(), executeDateTimeMethod(), executeItemOptUnwrapTarget(), executeNumericItemMethod(), ExecuteTruncateGuts(), ExplainCreateWorkersState(), ExportSnapshot(), ExprEvalPushStep(), extract_autovac_opts(), extract_grouping_collations(), extract_grouping_cols(), extract_grouping_ops(), extract_rollup_sets(), fallbackSplit(), FetchTableStates(), file_acquire_sample_rows(), fileBeginForeignScan(), fileGetForeignRelSize(), filter_list_to_array(), find_appinfos_by_relids(), find_hash_columns(), find_in_dynamic_libpath(), find_inheritance_children_extended(), find_partition_scheme(), find_plan(), find_tabstat_entry(), find_window_functions(), findDependentObjects(), findJsonbValueFromContainer(), FinishWalRecovery(), fix_merged_indexes(), flagInhTables(), float4_to_char(), float4out(), float8_to_char(), Float8GetDatum(), float8out_internal(), float_to_shortest_decimal(), FlushRelationsAllBuffers(), format_operator_extended(), format_procedure_extended(), formTextDatum(), FreezeMultiXactId(), FuncnameGetCandidates(), g_cube_decompress(), g_cube_picksplit(), g_int_compress(), g_int_decompress(), g_int_picksplit(), g_intbig_compress(), g_intbig_picksplit(), gbt_bit_xfrm(), gbt_bool_union(), gbt_cash_union(), gbt_date_union(), gbt_enum_union(), gbt_float4_union(), gbt_float8_union(), gbt_inet_compress(), gbt_inet_union(), gbt_int2_union(), gbt_int4_union(), gbt_int8_union(), gbt_intv_compress(), gbt_intv_decompress(), gbt_intv_union(), gbt_num_compress(), gbt_num_fetch(), gbt_num_picksplit(), gbt_oid_union(), gbt_time_union(), gbt_timetz_compress(), gbt_ts_union(), gbt_tstz_compress(), gbt_uuid_compress(), gbt_uuid_union(), gbt_var_compress(), gbt_var_decompress(), gbt_var_fetch(), gbt_var_key_from_datum(), gbt_var_picksplit(), gen_random_uuid(), generate_append_tlist(), generate_matching_part_pairs(), generate_normalized_query(), generate_series_step_int4(), generate_series_step_int8(), generate_series_step_numeric(), generate_series_timestamp(), generate_series_timestamptz_internal(), generate_subscripts(), generate_trgm(), generate_trgm_only(), generate_wildcard_trgm(), generateHeadline(), generator_init(), genericPickSplit(), get_attribute_options(), get_database_list(), get_docrep(), get_explain_guc_options(), get_ext_ver_info(), get_extension_aux_control_filename(), get_extension_control_directory(), get_extension_control_filename(), get_extension_script_directory(), get_extension_script_filename(), get_func_arg_info(), get_func_input_arg_names(), get_func_signature(), get_func_trftypes(), get_guc_variables(), get_op_btree_interpretation(), get_page_from_raw(), get_path_all(), get_raw_page_internal(), get_relation_info(), get_rels_with_domain(), get_str_from_var(), get_str_from_var_sci(), get_tables_to_cluster(), get_tables_to_cluster_partitioned(), get_tsearch_config_filename(), get_val(), get_worker(), GetBlockerStatusData(), GetBulkInsertState(), GetCachedExpression(), getColorInfo(), GetConfFilesInDir(), GetCurrentVirtualXIDs(), GetFdwRoutineForRelation(), GetForeignDataWrapperExtended(), GetForeignServerExtended(), GetForeignTable(), getIthJsonbValueFromContainer(), getJsonEncodingConst(), getKeyJsonValueFromContainer(), GetLockStatusData(), GetMultiXactIdMembers(), GetPermutation(), GetPredicateLockStatusData(), GetPreparedTransactionList(), GetPublication(), getQuadrantArea(), getRangeBox(), GetRunningTransactionLocks(), GetSQLCurrentTime(), GetSubscription(), GetSubscriptionRelations(), gettoken_tsvector(), GetUserMapping(), GetVirtualXIDsDelayingChkpt(), GetWaitEventExtensionNames(), GetWALBlockInfo(), GetWalSummaries(), ghstore_alloc(), ghstore_compress(), ghstore_picksplit(), gimme_tree(), gin_bool_consistent(), gin_btree_extract_query(), gin_btree_extract_value(), gin_extract_hstore(), gin_extract_hstore_query(), gin_extract_jsonb_path(), gin_extract_jsonb_query(), gin_extract_query_trgm(), gin_extract_tsquery(), gin_extract_tsvector(), gin_extract_value_trgm(), gin_leafpage_items(), gin_trgm_triconsistent(), ginAllocEntryAccumulator(), ginbeginscan(), ginbuild(), ginCompressPostingList(), GinDataLeafPageGetItems(), ginExtractEntries(), ginFillScanEntry(), ginFillScanKey(), ginFindLeafPage(), ginFindParents(), GinFormInteriorTuple(), ginHeapTupleFastInsert(), gininsert(), ginInsertBAEntry(), ginint4_queryextract(), ginMergeItemPointers(), ginPostingListDecodeAllSegments(), ginReadTuple(), ginRedoRecompress(), ginVacuumItemPointers(), ginVacuumPostingTreeLeaf(), gist_box_picksplit(), gist_box_union(), gist_circle_compress(), gist_indexsortbuild(), gist_indexsortbuild_levelstate_flush(), gist_page_items_bytea(), gist_point_compress(), gist_point_fetch(), gist_poly_compress(), gistbeginscan(), gistbufferinginserttuples(), gistbuild(), gistextractpage(), gistfillitupvec(), gistfixsplit(), gistGetItupFromPage(), gistgettuple(), gistInitBuildBuffers(), gistMakeUnionItVec(), gistplacetopage(), gistRelocateBuildBuffersOnSplit(), gistrescan(), gistScanPage(), gistSplit(), gistSplitByKey(), gistSplitHalf(), gistunionsubkeyvec(), gseg_picksplit(), gtrgm_alloc(), gtrgm_compress(), gtrgm_consistent(), gtrgm_decompress(), gtrgm_picksplit(), gtsquery_compress(), gtsquery_picksplit(), gtsvector_alloc(), gtsvector_compress(), gtsvector_decompress(), gtsvector_penalty(), gtsvector_picksplit(), gtsvectorout(), hash_agg_enter_spill_mode(), hash_object_field_end(), hash_page_items(), hash_record(), hash_record_extended(), hashagg_batch_read(), hashbeginscan(), hashbpchar(), hashbpcharextended(), hashbuild(), hashgettuple(), hashtext(), hashtextextended(), heap_beginscan(), heap_copy_minimal_tuple(), heap_copy_tuple_as_datum(), heap_copytuple(), heap_copytuple_with_tuple(), heap_modify_tuple(), heap_modify_tuple_by_cols(), heap_multi_insert(), heap_page_items(), heap_tuple_from_minimal_tuple(), heap_vacuum_rel(), heapam_relation_copy_for_cluster(), hladdword(), hmac_finish(), hstore_akeys(), hstore_avals(), hstore_concat(), hstore_delete(), hstore_delete_array(), hstore_delete_hstore(), hstore_from_array(), hstore_from_arrays(), hstore_from_record(), hstore_out(), hstore_populate_record(), hstore_recv(), hstore_slice_to_array(), hstore_slice_to_hstore(), hstore_subscript_assign(), hstore_to_array_internal(), hstoreArrayToPairs(), hstorePairs(), icu_language_tag(), identify_opfamily_groups(), ImportSnapshot(), index_compute_xid_horizon_for_tuples(), index_register(), index_truncate_tuple(), inet_gist_compress(), inet_gist_fetch(), inet_gist_picksplit(), inet_set_masklen(), inet_spg_inner_consistent(), inet_spg_picksplit(), infix(), init_execution_state(), init_gin_entries(), init_partition_map(), init_sexpr(), init_slab_allocator(), init_tsvector_parser(), InitCatCache(), InitDeadLockChecking(), initGISTstate(), initialize_revoke_actions(), InitPlan(), initRectBox(), initStringInfo(), initTrie(), InitWalRecovery(), InsertPgAttributeTuples(), int2out(), int2vectorout(), int44in(), int44out(), int4_to_char(), int4out(), Int64GetDatum(), int8_to_char(), int8out(), int_to_roman(), interpret_AS_clause(), interpret_function_parameter_list(), interval_avg(), interval_div(), interval_in(), interval_justify_days(), interval_justify_hours(), interval_justify_interval(), interval_mi(), interval_mul(), interval_pl(), interval_recv(), interval_scale(), interval_sum(), interval_trunc(), interval_um(), intervaltypmodout(), intset_create(), irbt_alloc(), iterate_word_similarity(), json_agg_transfn_worker(), json_manifest_finalize_file(), json_object_agg_transfn_worker(), json_object_keys(), json_unique_object_start(), jsonb_agg_transfn_worker(), jsonb_object_agg_transfn_worker(), jsonb_object_keys(), jsonb_ops__add_path_item(), JsonbDeepContains(), JsonbValueToJsonb(), JsonEncodeDateTime(), JumbleQuery(), lca(), leafRepackItems(), leftmostvalue_interval(), leftmostvalue_timetz(), LexizeAddLemm(), libpqrcv_readtimelinehistoryfile(), like_fixed_prefix(), limit_printout_length(), line_construct_pp(), line_in(), line_interpt(), line_recv(), llvm_copy_attributes_at_index(), lo_get_fragment_internal(), load_categories_hash(), load_domaintype_info(), load_enum_cache_data(), load_relcache_init_file(), load_tzoffsets(), LocalProcessControlFile(), logfile_getname(), logical_heap_rewrite_flush_mappings(), logicalrep_partition_open(), logicalrep_read_attrs(), logicalrep_read_rel(), logicalrep_read_tuple(), logicalrep_relmap_update(), LogicalRepSyncTableStart(), LogicalTapeFreeze(), LogicalTapeSetCreate(), LogicalTapeWrite(), lookup_var_attr_stats(), lowerstr_with_len(), lpad(), lrq_alloc(), lseg_center(), lseg_construct(), lseg_in(), lseg_interpt(), lseg_recv(), ltree2text(), ltree_compress(), ltree_decompress(), ltree_gist_alloc(), ltree_picksplit(), ltsCreateTape(), ltsGetPreallocBlock(), ltsInitReadBuffer(), ltxtq_out(), ltxtq_send(), lz4_compress_datum(), lz4_decompress_datum(), lz4_decompress_datum_slice(), macaddr8_out(), macaddr_and(), macaddr_in(), macaddr_not(), macaddr_or(), macaddr_out(), macaddr_recv(), macaddr_sortsupport(), macaddr_trunc(), make_build_data(), make_callstmt_target(), make_colname_unique(), make_greater_string(), make_interval(), make_jsp_entry_node(), make_jsp_expr_node(), make_partitionedrel_pruneinfo(), make_pathtarget_from_tlist(), make_positional_trgm(), make_recursive_union(), make_result_opt_error(), make_row_comparison_op(), make_setop(), make_sort_from_groupcols(), make_sort_from_sortclauses(), make_text_key(), make_tuple_from_result_row(), make_tuple_indirect(), make_unique_from_pathkeys(), make_unique_from_sortclauses(), makeaclitem(), makeBufFile(), makeBufFileCommon(), MakeConfigurationMapping(), makeitem(), makeObjectName(), makeParamList(), makepoint(), makeStringInfo(), MakeTidOpExpr(), maketree(), manifest_process_wal_range(), map_variable_attnos_mutator(), mark_hl_fragments(), match_clause_to_partition_key(), MatchNamedCall(), mbuf_create(), mbuf_create_from_data(), mcelem_array_contained_selec(), mcelem_tsquery_selec(), mcv_get_match_bitmap(), mdunlinkfork(), MergeAttributes(), minimal_tuple_from_heap_tuple(), mock_scram_secret(), moveLeafs(), multirange_deserialize(), multirange_gist_compress(), multirange_in(), multirange_recv(), multirange_unnest(), MultiXactIdExpand(), mXactCacheGetById(), ndistinct_for_combination(), network_sortsupport(), new_list(), new_object_addresses(), newLexeme(), newTParserPosition(), nextRectBox(), NIAddAffix(), NISortAffixes(), nodeRead(), normal_rand(), NormalizeSubWord(), NUM_cache(), numeric_sortsupport(), numeric_to_char(), numeric_to_number(), numerictypmodout(), offset_to_interval(), oidout(), oidvectorout(), oidvectortypes(), OpenTableList(), OpernameGetCandidates(), optionListToArray(), order_qual_clauses(), ordered_set_startup(), packGraph(), pad_eme_pkcs1_v15(), PageGetTempPage(), PageGetTempPageCopy(), PageGetTempPageCopySpecial(), pairingheap_allocate(), palloc_btree_page(), parse_compress_specification(), parse_datetime(), parse_fcall_arguments(), parse_hstore(), parse_key_value_arrays(), parse_ltree(), parse_one_reloption(), parse_scalar(), parse_scram_secret(), parse_tsquery(), parseLocalRelOptions(), ParseLongOption(), parseRelOptions(), partition_bounds_copy(), partition_bounds_create(), path_add(), path_in(), path_poly(), path_recv(), percentile_cont_multi_final_common(), percentile_disc_multi_final(), perform_pruning_base_step(), PerformRadiusTransaction(), pg_armor(), pg_blocking_pids(), pg_buffercache_pages(), pg_convert(), pg_current_snapshot(), pg_dearmor(), pg_decrypt(), pg_decrypt_iv(), pg_detoast_datum_copy(), pg_digest(), pg_encrypt(), pg_encrypt_iv(), pg_get_catalog_foreign_keys(), pg_get_constraintdef_worker(), pg_get_multixact_members(), pg_get_publication_tables(), pg_get_userbyid(), pg_hmac(), pg_import_system_collations(), pg_lock_status(), pg_prepared_xact(), pg_random_bytes(), pg_safe_snapshot_blocking_pids(), pg_snapshot_recv(), pg_strncoll_libc(), pg_strnxfrm_libc(), pg_timezone_abbrevs(), PgArchiverMain(), pgfnames(), pglz_compress_datum(), pglz_decompress_datum(), pglz_decompress_datum_slice(), pgp_armor_headers(), pgp_create_pkt_reader(), pgp_extract_armor_headers(), pgp_key_id_w(), pgp_mpi_alloc(), pgrowlocks(), pgss_shmem_startup(), pgstat_fetch_entry(), pgstat_get_transactional_drops(), pkt_stream_init(), placeChar(), plaintree(), plperl_build_tuple_result(), plperl_ref_from_pg_array(), plperl_spi_exec_prepared(), plperl_spi_prepare(), plperl_spi_query_prepared(), plperl_to_hstore(), plpgsql_add_initdatums(), plpgsql_finish_datums(), plpgsql_fulfill_promise(), plpgsql_ns_additem(), plpgsql_parse_err_condition(), plpython_to_hstore(), pltcl_quote(), pltcl_SPI_execute_plan(), pltcl_SPI_prepare(), PLy_cursor_plan(), PLy_procedure_munge_source(), PLy_spi_execute_plan(), PLyGenericObject_ToComposite(), PLyMapping_ToComposite(), PLyObject_ToBytea(), PLyObject_ToJsonbValue(), PLySequence_ToComposite(), pnstrdup(), point_add(), point_box(), point_div(), point_in(), point_mul(), point_recv(), point_sub(), points_box(), policy_role_list_to_array(), poly_box(), poly_center(), poly_circle(), poly_path(), populate_array(), populate_array_assign_ndims(), populate_record(), populate_recordset_object_field_end(), populate_scalar(), populate_typ_list(), postmaster_child_launch(), PostmasterMain(), pq_getmsgtext(), prepare_sort_from_pathkeys(), prepare_sql_fn_parse_info(), preparePresortedCols(), preprocess_grouping_sets(), PrescanPreparedTransactions(), ProcArrayApplyRecoveryInfo(), process_pipe_input(), process_startup_options(), ProcessStartupPacket(), prs_setup_firstcall(), prsd_lextype(), psprintf(), publication_translate_columns(), publicationListToArray(), pull_up_sublinks_jointree_recurse(), pullf_create(), pushf_create(), pushJsonbValueScalar(), pushquery(), pushState(), pushval_morph(), px_find_cipher(), px_find_digest(), px_find_hmac(), QTNCopy(), queryin(), queue_listen(), quote_identifier(), quote_literal(), quote_literal_cstr(), range_gist_double_sorting_split(), range_gist_picksplit(), range_gist_single_sorting_split(), rbt_create(), RE_compile(), RE_compile_and_cache(), RE_execute(), read_binary_file(), read_client_final_message(), read_dictionary(), read_extension_aux_control_file(), read_whole_file(), readDatum(), readstoplist(), readTimeLineHistory(), readtup_heap(), ReadTwoPhaseFile(), rebuild_database_list(), record_cmp(), record_eq(), record_image_cmp(), record_image_eq(), record_in(), record_out(), record_recv(), record_send(), recordMultipleDependencies(), reduce_expanded_ranges(), reduce_outer_joins_pass1(), regclassout(), regcollationout(), regcomp_auth_token(), regconfigout(), regdictionaryout(), regexec_auth_token(), regexp_fixed_prefix(), regexp_match(), regexp_matches(), register_label_provider(), register_on_commit_action(), RegisterDynamicBackgroundWorker(), regnamespaceout(), regoperout(), regprocout(), regroleout(), regtypeout(), RelationBuildPartitionDesc(), RelationBuildPublicationDesc(), RelationBuildTriggers(), RelationGetExclusionInfo(), RelationGetIndexScan(), RelationGetNotNullConstraints(), RememberManyTestResources(), RememberSyncRequest(), RememberToFreeTupleDescAtEOX(), remove_dbtablespaces(), remove_self_joins_recurse(), RemoveRoleFromObjectPolicy(), ReorderBufferAddInvalidations(), ReorderBufferGetCatalogChangesXacts(), ReorderBufferQueueMessage(), reorderqueue_push(), repeat(), replace_auto_config_value(), replace_text_regexp(), report_json_context(), report_reduced_full_join(), RewriteQuery(), rmtree(), rot13_passphrase(), rpad(), save_state_data(), scanPendingInsert(), ScanSourceDatabasePgClassTuple(), scram_build_secret(), scram_verify_plain_password(), SearchCatCacheList(), searchRangeTableForCol(), seg_in(), seg_inter(), seg_out(), seg_union(), select_active_windows(), select_outer_pathkeys_for_merge(), selectColorTrigrams(), sendDir(), sepgsql_fmgr_hook(), seq_redo(), serialize_expr_stats(), SerializeTransactionState(), set_baserel_partition_key_exprs(), set_plan_references(), set_relation_column_names(), set_rtable_names(), set_var_from_str(), setup_firstcall(), setup_parse_fixed_parameters(), setup_parse_variable_parameters(), setup_pct_info(), setup_regexp_matches(), setup_test_matches(), shm_mq_attach(), show_trgm(), SignalBackends(), similar_escape_internal(), slot_compile_deform(), slot_fill_defaults(), smgr_bulk_start_smgr(), smgrDoPendingDeletes(), smgrDoPendingSyncs(), smgrdounlinkall(), smgrGetPendingDeletes(), SnapBuildInitialSnapshot(), SortAndUniqItems(), spg_box_quad_inner_consistent(), spg_box_quad_picksplit(), spg_kd_inner_consistent(), spg_kd_picksplit(), spg_key_orderbys_distances(), spg_poly_quad_compress(), spg_quad_inner_consistent(), spg_quad_picksplit(), spg_range_quad_inner_consistent(), spg_range_quad_picksplit(), spg_text_choose(), spg_text_inner_consistent(), spg_text_leaf_consistent(), spg_text_picksplit(), spgAddPendingTID(), spgAllocSearchItem(), spgbeginscan(), spgExtractNodeLabels(), spgInnerTest(), spgist_name_choose(), spgist_name_inner_consistent(), spgNewHeapItem(), spgRedoVacuumRedirect(), spgSplitNodeAction(), spi_dest_startup(), SPI_modifytuple(), SPI_register_trigger_data(), split_pathtarget_walker(), SplitToVariants(), ssl_extension_info(), StartPrepare(), startScanKey(), statext_mcv_build(), statext_mcv_clauselist_selectivity(), statext_mcv_deserialize(), statext_ndistinct_build(), statext_ndistinct_deserialize(), statext_ndistinct_serialize(), std_typanalyze(), store_flush_position(), storeGettuple(), StoreRelCheck(), str_initcap(), str_tolower(), str_toupper(), str_udeescape(), stream_start_internal(), string_to_bytea_const(), strlist_to_textarray(), subxact_info_add(), subxact_info_read(), SV_to_JsonbValue(), SyncRepGetCandidateStandbys(), SyncRepGetNthLatestSyncRecPtr(), systable_beginscan(), systable_beginscan_ordered(), table_recheck_autovac(), tablesample_init(), tbm_begin_iterate(), test_basic(), test_enc_conversion(), test_pattern(), test_random(), test_re_compile(), test_regex(), test_resowner_many(), test_resowner_priorities(), test_single_value_and_filler(), testdelete(), testprs_lextype(), text_catenate(), text_reverse(), text_substring(), text_to_bits(), text_to_cstring(), thesaurus_lexize(), tidin(), TidListEval(), tidrecv(), time_interval(), time_mi_time(), time_timetz(), timestamp_age(), timestamp_mi(), timestamptz_age(), timestamptz_timetz(), timetz_in(), timetz_izone(), timetz_mi_interval(), timetz_pl_interval(), timetz_recv(), timetz_scale(), timetz_zone(), to_tsvector_byid(), toast_fetch_datum(), toast_fetch_datum_slice(), toast_open_indexes(), toast_save_datum(), TParserInit(), transformFromClauseItem(), transformRangeTableFunc(), transformRelOptions(), translate(), ts_dist(), ts_headline_byid_opt(), ts_headline_json_byid_opt(), ts_headline_jsonb_byid_opt(), ts_lexize(), TS_phrase_output(), ts_process_call(), tsqueryout(), tsqueryrecv(), tsquerytree(), tstz_dist(), tsvector_setweight(), tsvector_setweight_by_filter(), tsvector_to_array(), tsvector_unnest(), tsvector_update_trigger(), tsvectorin(), tsvectorout(), tt_setup_firstcall(), ttdummy(), tuple_data_split_internal(), TupleDescGetAttInMetadata(), tuplesort_begin_batch(), tuplesort_begin_datum(), tuplesort_begin_index_btree(), tuplesort_begin_index_gist(), tuplesort_begin_index_hash(), tuplesort_putbrintuple(), tuplestore_begin_common(), typenameTypeMod(), unicode_is_normalized(), unicode_normalize_func(), uniqueWORD(), update_attstats(), UpdateLogicalMappings(), uuid_in(), uuid_out(), uuid_recv(), uuid_sortsupport(), vac_open_indexes(), varbit(), varbit_out(), varbit_recv(), varstr_levenshtein(), varstr_sortsupport(), verifybackup_per_wal_range_cb(), widget_in(), worker_spi_main(), WriteBlockRefTable(), xid8out(), xidout(), XLogInsertRecord(), XLogReadRecordAlloc(), XlogReadTwoPhaseData(), xml_recv(), xpath_string(), xpath_table(), and xslt_process().

◆ palloc0()

void* palloc0 ( Size  size)

Definition at line 1334 of file mcxt.c.

1335 {
1336  /* duplicates MemoryContextAllocZero to avoid increased overhead */
1337  void *ret;
1339 
1340  Assert(MemoryContextIsValid(context));
1341  AssertNotInCriticalSection(context);
1342 
1343  context->isReset = false;
1344 
1345  ret = context->methods->alloc(context, size, 0);
1346 
1347  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1348 
1349  MemSetAligned(ret, 0, size);
1350 
1351  return ret;
1352 }

References MemoryContextMethods::alloc, Assert(), AssertNotInCriticalSection, CurrentMemoryContext, MemoryContextData::isReset, MemoryContextIsValid, MemSetAligned, MemoryContextData::methods, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by _brin_begin_parallel(), _brin_parallel_scan_and_build(), _bt_begin_parallel(), _bt_buildadd(), _bt_form_posting(), _bt_leader_participate_as_worker(), _bt_load(), _bt_pagestate(), _bt_parallel_build_main(), _bt_parallel_scan_and_sort(), _bt_preprocess_array_keys(), _bt_spools_heapscan(), _bt_truncate(), _bt_update_posting(), _h_spoolinit(), _ltq_extract_regex(), _ltree_extract_isparent(), _ltree_extract_risparent(), _ltxtq_extract_exec(), _SPI_make_plan_non_temp(), _SPI_save_plan(), accum_sum_rescale(), add_column_to_pathtarget(), add_dummy_return(), add_foreign_final_paths(), add_foreign_ordered_paths(), add_sp_item_to_pathtarget(), addFkRecurseReferencing(), allocacl(), AllocateRelationDesc(), allocateReloptStruct(), AllocateSnapshotBuilder(), AlterObjectNamespace_internal(), AlterObjectOwner_internal(), AlterObjectRename_internal(), AlterOpFamilyAdd(), AlterOpFamilyDrop(), array_cat(), array_create_iterator(), array_get_slice(), array_in(), array_map(), array_recv(), array_replace_internal(), array_set_element(), array_set_slice(), array_to_tsvector(), ATAddCheckNNConstraint(), ATExecAddColumn(), ATExecSetExpression(), ATExecValidateConstraint(), ATGetQueueEntry(), ATPrepAlterColumnType(), bbsink_copystream_new(), bbsink_gzip_new(), bbsink_lz4_new(), bbsink_progress_new(), bbsink_server_new(), bbsink_throttle_new(), bbsink_zstd_new(), bbstreamer_extractor_new(), bbstreamer_gzip_decompressor_new(), bbstreamer_gzip_writer_new(), bbstreamer_lz4_compressor_new(), bbstreamer_lz4_decompressor_new(), bbstreamer_plain_writer_new(), bbstreamer_recovery_injector_new(), bbstreamer_tar_archiver_new(), bbstreamer_tar_parser_new(), bbstreamer_tar_terminator_new(), bbstreamer_zstd_compressor_new(), bbstreamer_zstd_decompressor_new(), begin_heap_rewrite(), BeginCopyFrom(), BeginCopyTo(), bernoulli_initsamplescan(), BipartiteMatch(), bit(), bit_in(), blbulkdelete(), blgetbitmap(), BlockRefTableEntryMarkBlockModified(), bloom_create(), bloom_init(), BloomFormTuple(), blvacuumcleanup(), bms_add_range(), bms_make_singleton(), bpchar_name(), brin_bloom_opcinfo(), brin_form_placeholder_tuple(), brin_form_tuple(), brin_inclusion_opcinfo(), brin_minmax_multi_opcinfo(), brin_minmax_multi_union(), brin_minmax_opcinfo(), brin_new_memtuple(), brin_range_serialize(), brinbuild(), bt_check_every_level(), bt_page_print_tuples(), btbulkdelete(), btvacuumcleanup(), build_distances(), build_expanded_ranges(), build_expr_data(), build_inet_union_key(), build_pertrans_for_aggref(), build_row_from_vars(), build_simple_rel(), build_sorted_items(), BuildDescForRelation(), BuildEventTriggerCache(), buildint2vector(), buildNSItemFromLists(), buildNSItemFromTupleDesc(), buildoidvector(), calc_rank_and(), calc_rank_cd(), calc_word_similarity(), check_hba(), check_ident_usermap(), check_tuple_attribute(), cidr_set_masklen_internal(), circle_poly(), collect_corrupt_items(), collect_visibility_data(), combo_init(), compact_palloc0(), CompactCheckpointerRequestQueue(), compile_plperl_function(), compile_pltcl_function(), compute_partition_bounds(), construct_empty_array(), construct_md_array(), copy_ltree(), CopyCachedPlan(), create_array_envelope(), create_edata_for_relation(), create_foreign_modify(), create_groupingsets_plan(), create_hash_bounds(), create_list_bounds(), create_queryEnv(), create_range_bounds(), CreateBlockRefTableEntry(), CreateBlockRefTableReader(), CreateBlockRefTableWriter(), CreateCachedPlan(), CreateFakeRelcacheEntry(), CreateIncrementalBackupInfo(), CreateIntoRelDestReceiver(), CreateOneShotCachedPlan(), CreateParallelContext(), CreateSQLFunctionDestReceiver(), CreateTransientRelDestReceiver(), CreateTupleDescCopyConstr(), CreateTupleQueueDestReceiver(), CreateTupleQueueReader(), CreateTuplestoreDestReceiver(), crosstab(), cryptohash_internal(), cube_a_f8(), cube_a_f8_f8(), cube_c_f8(), cube_c_f8_f8(), cube_enlarge(), cube_f8(), cube_f8_f8(), cube_inter(), cube_subset(), cube_union_v0(), deconstruct_array(), DefineOpClass(), deparse_context_for(), deparse_context_for_plan_tree(), DependencyGenerator_init(), dintdict_init(), dintdict_lexize(), disassembleLeaf(), dispell_init(), div_var(), div_var_fast(), do_analyze_rel(), doPickSplit(), dsimple_init(), dsimple_lexize(), dsm_impl_mmap(), dsnowball_init(), dsnowball_lexize(), dsynonym_init(), dsynonym_lexize(), dxsyn_init(), each_worker(), elements_worker(), encrypt_init(), EnumValuesCreate(), eqjoinsel_inner(), eqjoinsel_semi(), EvalPlanQualInit(), EvalPlanQualStart(), EventTriggerCollectAlterDefPrivs(), EventTriggerCollectAlterTSConfig(), EventTriggerCollectCreateOpClass(), EventTriggerSQLDropAddObject(), examine_attribute(), examine_expression(), ExecBuildAuxRowMark(), ExecBuildGroupingEqual(), ExecBuildParamSetEqual(), ExecEvalArrayExpr(), ExecEvalHashedScalarArrayOp(), ExecGrant_Relation(), ExecIndexBuildScanKeys(), ExecInitAgg(), ExecInitAppend(), ExecInitBitmapAnd(), ExecInitBitmapOr(), ExecInitExprRec(), ExecInitFunc(), ExecInitGatherMerge(), ExecInitIndexScan(), ExecInitJunkFilterConversion(), ExecInitMergeAppend(), ExecInitParallelPlan(), ExecInitRangeTable(), ExecInitResultRelation(), ExecInitSetOp(), ExecInitStoredGenerated(), ExecInitSubscriptingRef(), ExecInitValuesScan(), ExecInitWindowAgg(), ExecReScanHashJoin(), ExecSetupPartitionTupleRouting(), expand_partitioned_rtentry(), expand_tuple(), ExplainCreateWorkersState(), extract_jsp_query(), extract_rollup_sets(), extract_variadic_args(), fetch_more_data(), fetch_remote_table_info(), fetch_statentries_for_relation(), fillFakeState(), find_partition_scheme(), find_window_functions(), findeq(), formrdesc(), g_intbig_consistent(), gather_merge_setup(), gbt_macad8_union(), gbt_macad_union(), gbt_num_bin_union(), gbt_num_compress(), gbt_var_key_copy(), gbt_var_node_truncate(), generate_base_implied_equalities_no_const(), generate_combinations(), generate_dependencies(), get_crosstab_tuplestore(), get_json_object_as_hash(), get_matching_hash_bounds(), get_matching_list_bounds(), get_matching_partitions(), get_matching_range_bounds(), get_relation_info(), get_subscription_list(), get_worker(), GetAccessStrategyWithSize(), GetAfterTriggersTableData(), getColorInfo(), GetLockConflicts(), GetSearchPathMatcher(), getTokenTypes(), GetWALBlockInfo(), gin_extract_tsquery(), ginbulkdelete(), ginExtractEntries(), ginFillScanKey(), ginScanToDelete(), ginvacuumcleanup(), gist_box_picksplit(), gist_indexsortbuild(), gist_indexsortbuild_levelstate_add(), gist_indexsortbuild_levelstate_flush(), gistbeginscan(), gistbulkdelete(), gistdoinsert(), gistFindPath(), gistUserPicksplit(), gistvacuumcleanup(), hash_array(), hashagg_batch_new(), hashagg_spill_init(), hashbulkdelete(), heap_form_minimal_tuple(), heap_form_tuple(), heap_toast_insert_or_update(), heap_tuple_infomask_flags(), heap_vacuum_rel(), heapam_index_fetch_begin(), hmac_init(), identify_join_columns(), index_concurrently_create_copy(), inet_gist_compress(), inet_gist_fetch(), inetand(), inetnot(), inetor(), init_returning_filter(), init_sql_fcache(), InitCatCache(), initHyperLogLog(), initialize_brin_insertstate(), InitializeParallelDSM(), InitPartitionPruneContext(), InitPlan(), InitResultRelInfo(), initSpGistState(), inittapes(), InitWalRecovery(), InitXLogReaderState(), inline_function(), inner_subltree(), InstrAlloc(), int2vectorin(), internal_inetpl(), interpret_AS_clause(), interpret_function_parameter_list(), interval_avg_deserialize(), iterate_json_values(), iteratorFromContainer(), join_tsqueries(), json_array_length(), json_object_keys(), json_strip_nulls(), jsonb_agg_transfn_worker(), jsonb_exec_setup(), jsonb_object_agg_transfn_worker(), jsonb_set_element(), LaunchParallelWorkers(), lca_inner(), leader_takeover_tapes(), leftmostvalue_macaddr(), leftmostvalue_macaddr8(), leftmostvalue_name(), leftmostvalue_uuid(), libpqrcv_connect(), libpqrcv_exec(), load_relcache_init_file(), LoadArchiveLibrary(), logicalrep_read_tuple(), ltree_concat(), ltree_picksplit(), ltree_union(), macaddr8_and(), macaddr8_in(), macaddr8_not(), macaddr8_or(), macaddr8_recv(), macaddr8_set7bit(), macaddr8_trunc(), macaddr8tomacaddr(), macaddrtomacaddr8(), make_attrmap(), make_auth_token(), make_callstmt_target(), make_inh_translation_list(), make_multirange(), make_one_partition_rbound(), make_parsestate(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_setop_translation_list(), make_sort_input_target(), make_tsvector(), make_tuple_from_result_row(), make_tuple_indirect(), makeArrayResultArr(), makeDefaultBloomOptions(), makeIntervalAggState(), makeJsonLexContextCstringLen(), makeNumericAggState(), makeNumericAggStateCurrentContext(), MakeTransitionCaptureState(), MakeTupleTableSlot(), mcv_clause_selectivity_or(), mdcbuf_init(), mergeruns(), minmax_multi_init(), MJExamineQuals(), mkVoidAffix(), mul_var(), multi_sort_init(), multirange_constructor2(), multirange_get_range(), multirange_intersect_internal(), multirange_minus_internal(), multirange_union(), nameconcatoid(), namein(), namerecv(), ndistinct_for_combination(), network_broadcast(), network_hostmask(), network_in(), network_netmask(), network_network(), network_recv(), new_intArrayType(), NewExplainState(), newNode(), newRegisNode(), NIImportOOAffixes(), NISortDictionary(), oidvectorin(), ordered_set_startup(), pa_launch_parallel_worker(), parallel_vacuum_end(), parallel_vacuum_init(), ParallelSlotsSetup(), parse_hba_line(), parse_ident_line(), parse_lquery(), parse_ltree(), parse_tsquery(), PartitionPruneFixSubPlanMap(), perform_base_backup(), perform_pruning_combine_step(), pg_backup_start(), pg_crypt(), pg_decode_startup(), pg_logical_slot_get_changes_guts(), pg_stat_get_wal_receiver(), pg_tzenumerate_start(), pgoutput_startup(), pgoutput_truncate(), pgp_cfb_create(), pgp_init(), pgp_key_alloc(), placeChar(), plperl_build_tuple_result(), plperl_modify_tuple(), plperl_ref_from_pg_array(), plperl_spi_prepare(), plpgsql_build_recfield(), plpgsql_build_record(), plpgsql_build_variable(), plpgsql_compile_inline(), plsample_func_handler(), pltcl_build_tuple_result(), pltcl_SPI_prepare(), PLy_modify_tuple(), PLy_procedure_create(), PLy_spi_prepare(), poly_in(), poly_recv(), populate_array_assign_ndims(), populate_recordset_worker(), postgresBeginDirectModify(), postgresBeginForeignScan(), postgresGetForeignJoinPaths(), postgresGetForeignRelSize(), postgresGetForeignUpperPaths(), pq_init(), prepare_query_params(), prepare_sql_fn_parse_info(), PrepareForIncrementalBackup(), preparePresortedCols(), preprocess_grouping_sets(), printtup_create_DR(), printtup_prepare_info(), ProcessCopyOptions(), prune_append_rel_partitions(), pull_up_constant_function(), pull_up_simple_subquery(), pull_up_simple_values(), pullf_create(), push_path(), pushf_create(), pushOperator(), pushStop(), pushValue_internal(), px_find_combo(), QT2QTN(), QTN2QT(), QTNBinary(), queryin(), range_agg_finalfn(), range_serialize(), read_extension_control_file(), read_tablespace_map(), refresh_by_match_merge(), regcomp_auth_token(), RelationBuildLocalRelation(), RelationBuildPartitionKey(), RelationBuildTriggers(), RelationFindReplTupleByIndex(), RelationFindReplTupleSeq(), RelationGetIndexAttOptions(), remap_groupColIdx(), remove_useless_groupby_columns(), ReorderBufferProcessTXN(), ReorderBufferToastReplace(), reverse_name(), rewriteTargetListIU(), rewriteValuesRTE(), save_state_data(), scram_init(), selectColorTrigrams(), sepgsql_avc_compute(), sepgsql_set_client_label(), set_append_rel_size(), set_baserel_partition_key_exprs(), set_deparse_for_query(), set_join_column_names(), set_joinrel_partition_key_exprs(), set_plan_references(), set_simple_column_names(), set_subquery_pathlist(), setup_regexp_matches(), setup_simple_rel_arrays(), setup_test_matches(), shell_get_sink(), SnapBuildSerialize(), spg_quad_picksplit(), spgbeginscan(), spgbuild(), spgbulkdelete(), spgFormInnerTuple(), spgFormLeafTuple(), spgFormNodeTuple(), spgist_name_leaf_consistent(), spgvacuumcleanup(), spi_dest_startup(), standard_ExecutorStart(), standard_join_search(), StartPrepare(), StartupDecodingContext(), statext_dependencies_build(), statext_dependencies_deserialize(), statext_dependencies_serialize(), statext_mcv_build(), statext_mcv_deserialize(), statext_mcv_serialize(), statext_ndistinct_deserialize(), sts_attach(), sts_initialize(), SummarizeWAL(), synchronize_slots(), system_initsamplescan(), system_rows_initsamplescan(), system_time_initsamplescan(), tbm_attach_shared_iterate(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), testdelete(), testprs_start(), text_name(), thesaurus_init(), TidExprListCreate(), toast_flatten_tuple_to_datum(), tokenize_auth_file(), TParserCopyInit(), TParserInit(), transform_json_string_values(), transformFromClauseItem(), transformSetOperationStmt(), transformValuesClause(), transformWithClause(), trgm_presence_map(), ts_headline_json_byid_opt(), ts_headline_jsonb_byid_opt(), ts_setup_firstcall(), tsquery_not(), tsqueryrecv(), tsvector_concat(), tsvector_delete_arr(), tsvector_delete_by_indices(), tsvector_filter(), tsvector_strip(), tsvectorin(), tsvectorrecv(), TupleDescGetAttInMetadata(), tuplesort_begin_cluster(), tuplesort_begin_common(), tuplesort_begin_datum(), tuplesort_begin_heap(), tuplesort_begin_index_btree(), tuplesort_begin_index_gist(), tuplestore_begin_common(), unaccent_lexize(), varbit_in(), XLogPrefetcherAllocate(), and XmlTableInitOpaque().

◆ palloc_aligned()

void* palloc_aligned ( Size  size,
Size  alignto,
int  flags 
)

Definition at line 1498 of file mcxt.c.

1499 {
1500  return MemoryContextAllocAligned(CurrentMemoryContext, size, alignto, flags);
1501 }
void * MemoryContextAllocAligned(MemoryContext context, Size size, Size alignto, int flags)
Definition: mcxt.c:1396

References CurrentMemoryContext, MemoryContextAllocAligned(), and size.

Referenced by _mdfd_getseg(), GenericXLogStart(), and InitCatCache().

◆ palloc_extended()

void* palloc_extended ( Size  size,
int  flags 
)

Definition at line 1355 of file mcxt.c.

1356 {
1357  /* duplicates MemoryContextAllocExtended to avoid increased overhead */
1358  void *ret;
1360 
1361  Assert(MemoryContextIsValid(context));
1362  AssertNotInCriticalSection(context);
1363 
1364  context->isReset = false;
1365 
1366  ret = context->methods->alloc(context, size, flags);
1367  if (unlikely(ret == NULL))
1368  {
1369  return NULL;
1370  }
1371 
1372  VALGRIND_MEMPOOL_ALLOC(context, ret, size);
1373 
1374  if ((flags & MCXT_ALLOC_ZERO) != 0)
1375  MemSetAligned(ret, 0, size);
1376 
1377  return ret;
1378 }

References MemoryContextMethods::alloc, Assert(), AssertNotInCriticalSection, CurrentMemoryContext, MemoryContextData::isReset, MCXT_ALLOC_ZERO, MemoryContextIsValid, MemSetAligned, MemoryContextData::methods, size, unlikely, and VALGRIND_MEMPOOL_ALLOC.

Referenced by assign_backendlist_entry(), BackendStartup(), pg_clean_ascii(), StartAutovacuumWorker(), and XLogReaderAllocate().

◆ pchomp()

char* pchomp ( const char *  in)

◆ pfree()

void pfree ( void *  pointer)

Definition at line 1508 of file mcxt.c.

1509 {
1510 #ifdef USE_VALGRIND
1512  MemoryContext context = GetMemoryChunkContext(pointer);
1513 #endif
1514 
1515  MCXT_METHOD(pointer, free_p) (pointer);
1516 
1517 #ifdef USE_VALGRIND
1518  if (method != MCTX_ALIGNED_REDIRECT_ID)
1519  VALGRIND_MEMPOOL_FREE(context, pointer);
1520 #endif
1521 }
static MemoryContextMethodID GetMemoryChunkMethodID(const void *pointer)
Definition: mcxt.c:179
MemoryContext GetMemoryChunkContext(void *pointer)
Definition: mcxt.c:695
#define VALGRIND_MEMPOOL_FREE(context, addr)
Definition: memdebug.h:30

References GetMemoryChunkContext(), GetMemoryChunkMethodID(), MCTX_ALIGNED_REDIRECT_ID, MCXT_METHOD, and VALGRIND_MEMPOOL_FREE.

Referenced by _brin_end_parallel(), _bt_bottomupdel_pass(), _bt_buildadd(), _bt_dedup_finish_pending(), _bt_dedup_pass(), _bt_delitems_delete(), _bt_delitems_delete_check(), _bt_delitems_vacuum(), _bt_doinsert(), _bt_findsplitloc(), _bt_freestack(), _bt_getroot(), _bt_gettrueroot(), _bt_insert_parent(), _bt_insertonpg(), _bt_load(), _bt_newlevel(), _bt_pendingfsm_finalize(), _bt_simpledel_pass(), _bt_sort_dedup_finish_pending(), _bt_split(), _bt_spooldestroy(), _bt_truncate(), _bt_uppershutdown(), _fdvec_resize(), _h_spooldestroy(), _hash_splitbucket(), _hash_squeezebucket(), _int_contains(), _int_inter(), _int_overlap(), _int_same(), _int_union(), _lca(), _mdfd_getseg(), _mdfd_openseg(), _mdfd_segpath(), AbortBufferIO(), AbsorbSyncRequests(), accum_sum_rescale(), accumArrayResultArr(), aclmerge(), add_partial_path(), add_path(), addArcs(), AddEnumLabel(), AddFileToBackupManifest(), addFkRecurseReferenced(), addHLParsedLex(), addItemPointersToLeafTuple(), addKey(), adjust_appendrel_attrs_multilevel(), adjust_child_relids_multilevel(), advance_windowaggregate(), advance_windowaggregate_base(), afterTriggerDeleteHeadEventChunk(), AfterTriggerEndSubXact(), afterTriggerFreeEventList(), afterTriggerRestoreEventList(), agg_refill_hash_table(), AlignedAllocFree(), AlignedAllocRealloc(), allocate_recordbuf(), AlterObjectNamespace_internal(), AlterObjectOwner_internal(), AlterObjectRename_internal(), amvalidate(), appendJSONKeyValueFmt(), AppendStringCommandOption(), appendStringInfoStringQuoted(), apply_scanjoin_target_to_paths(), apw_dump_now(), array_free_iterator(), array_in(), array_map(), array_out(), array_recv(), array_replace_internal(), array_send(), array_set_element_expanded(), array_shuffle_n(), array_to_json_internal(), array_to_jsonb_internal(), array_to_text_internal(), arrayconst_cleanup_fn(), arrayexpr_cleanup_fn(), ArrayGetIntegerTypmods(), ASN1_STRING_to_text(), assign_simple_var(), AssignTransactionId(), Async_Notify(), AtEOSubXact_Inval(), AtEOSubXact_on_commit_actions(), AtEOSubXact_PgStat(), AtEOSubXact_PgStat_DroppedStats(), AtEOSubXact_PgStat_Relations(), AtEOXact_GUC(), AtEOXact_on_commit_actions(), AtEOXact_PgStat_DroppedStats(), AtEOXact_RelationCache(), ATPrepAlterColumnType(), AtSubAbort_childXids(), AtSubAbort_Notify(), AtSubAbort_Snapshot(), AtSubCommit_childXids(), AtSubCommit_Notify(), AttrDefaultFetch(), autoinc(), BackendInitialize(), BackendStartup(), basic_archive_shutdown(), bbsink_server_begin_archive(), bbsink_server_begin_manifest(), bbsink_server_end_manifest(), bbstreamer_extractor_free(), bbstreamer_plain_writer_free(), bbstreamer_recovery_injector_free(), bbstreamer_tar_archiver_free(), bbstreamer_tar_parser_free(), bbstreamer_tar_terminator_free(), be_tls_close(), be_tls_open_server(), binaryheap_free(), bind_param_error_callback(), BipartiteMatchFree(), blendscan(), blgetbitmap(), BlockRefTableEntryMarkBlockModified(), BlockRefTableFreeEntry(), BlockRefTableReaderNextRelation(), bloom_free(), blrescan(), bms_add_members(), bms_del_member(), bms_del_members(), bms_free(), bms_int_members(), bms_intersect(), bms_join(), bms_replace_members(), boolop(), BootstrapModeMain(), BootStrapXLOG(), bottomup_sort_and_shrink(), bpcharfastcmp_c(), bpcharrecv(), bqarr_in(), brin_build_desc(), brin_form_tuple(), brin_free_tuple(), brin_inclusion_add_value(), brin_inclusion_union(), brin_minmax_add_value(), brin_minmax_multi_distance_inet(), brin_minmax_multi_union(), brin_minmax_union(), brin_page_items(), brinendscan(), brinRevmapTerminate(), brinsummarize(), bt_check_level_from_leftmost(), bt_child_check(), bt_child_highkey_check(), bt_downlink_missing_check(), bt_leftmost_ignoring_half_dead(), bt_normalize_tuple(), bt_page_print_tuples(), bt_right_page_check_scankey(), bt_rootdescend(), bt_target_page_check(), bt_tuple_present_callback(), btendscan(), btinsert(), btree_xlog_updates(), btvacuumpage(), buf_finalize(), BufferSync(), BufFileClose(), BufFileOpenFileSet(), build_backup_content(), build_child_join_rel(), build_child_join_sjinfo(), build_EvalXFuncInt(), build_index_paths(), build_local_reloptions(), build_pertrans_for_aggref(), build_reloptions(), build_sorted_items(), buildFreshLeafTuple(), BuildRestoreCommand(), BuildTupleFromCStrings(), cache_locale_time(), cache_single_string(), calc_arraycontsel(), calc_distr(), calc_rank_and(), calc_rank_cd(), calc_rank_or(), calc_word_similarity(), cancel_on_dsm_detach(), CatalogCloseIndexes(), CatCacheFreeKeys(), CatCacheRemoveCList(), CatCacheRemoveCTup(), char2wchar(), check_application_name(), check_circularity(), check_cluster_name(), check_control_files(), check_createrole_self_grant(), check_datestyle(), check_db_file_conflict(), check_debug_io_direct(), check_default_text_search_config(), check_ident_usermap(), check_locale(), check_log_destination(), check_publications_origin(), check_relation_privileges(), check_schema_perms(), check_search_path(), check_standby_slot_names(), check_temp_tablespaces(), check_timezone(), check_wal_consistency_checking(), CheckAffix(), checkclass_str(), checkcondition_str(), CheckConstraintFetch(), CheckForBufferLeaks(), CheckForLocalBufferLeaks(), CheckIndexCompatible(), CheckMD5Auth(), CheckPasswordAuth(), CheckPointTwoPhase(), CheckPWChallengeAuth(), CheckRADIUSAuth(), CheckSASLAuth(), checkSharedDependencies(), ChooseConstraintName(), ChooseExtendedStatisticName(), ChooseRelationName(), citext_eq(), citext_hash(), citext_hash_extended(), citext_ne(), citextcmp(), clauselist_apply_dependencies(), clauselist_selectivity_ext(), clean_NOT_intree(), clean_stopword_intree(), cleanup_directories_atexit(), cleanup_subxact_info(), CleanupBackend(), CleanupBackgroundWorker(), clear_and_pfree(), close_tsvector_parser(), ClosePostmasterPorts(), collectMatchBitmap(), combo_free(), combo_init(), CompactCheckpointerRequestQueue(), compareJsonbContainers(), compareStrings(), compile_plperl_function(), compile_pltcl_function(), compileTheLexeme(), compileTheSubstitute(), compute_array_stats(), compute_tsvector_stats(), concat_internal(), connect_pg_server(), construct_empty_expanded_array(), ConstructTupleDescriptor(), convert_any_priv_string(), convert_charset(), convert_column_name(), convert_string_datum(), convert_to_scalar(), convertPgWchar(), copy_dest_destroy(), copy_file(), copy_table(), CopyArrayEls(), CopyFromErrorCallback(), CopyMultiInsertBufferCleanup(), copyTemplateDependencies(), count_usable_fds(), create_cursor(), create_hash_bounds(), create_list_bounds(), create_partitionwise_grouping_paths(), create_range_bounds(), create_script_for_old_cluster_deletion(), create_secmsg(), create_tablespace_directories(), CreateCheckPoint(), CreateDatabaseUsingFileCopy(), CreateDatabaseUsingWalLog(), createdb(), createNewConnection(), createPostingTree(), CreateStatistics(), CreateTableSpace(), CreateTriggerFiringOn(), croak_cstr(), crosstab(), cstr2sv(), datasegpath(), datetime_to_char_body(), datum_image_eq(), datum_image_hash(), datum_to_json_internal(), datum_to_jsonb_internal(), datumSerialize(), db_encoding_convert(), dbase_redo(), dblink_connect(), dblink_disconnect(), dblink_security_check(), DCH_to_char(), deallocate_query(), DebugPrintBufferRefcount(), DecodeTextArrayToBitmapset(), DeconstructFkConstraintRow(), DefineDomain(), DefineEnum(), DefineIndex(), DefineRange(), DefineType(), deparseConst(), dependencies_clauselist_selectivity(), DependencyGenerator_free(), deserialize_deflist(), destroy_tablespace_directories(), DestroyBlockRefTableReader(), DestroyBlockRefTableWriter(), DestroyParallelContext(), destroyStringInfo(), DestroyTupleQueueReader(), detoast_attr(), detoast_attr_slice(), digest_free(), dintdict_lexize(), dir_realloc(), dispell_lexize(), div_var(), div_var_fast(), do_analyze_rel(), do_autovacuum(), do_compile(), Do_MultiXactIdWait(), do_pg_backup_start(), do_pg_backup_stop(), do_start_bgworker(), do_text_output_multiline(), do_to_timestamp(), DoesMultiXactIdConflict(), dofindsubquery(), dotrim(), DropRelationFiles(), DropRelationsAllBuffers(), dsa_detach(), dshash_destroy(), dshash_detach(), dsimple_lexize(), dsm_create(), dsm_detach(), dsm_impl_sysv(), dsnowball_lexize(), dsynonym_init(), dsynonym_lexize(), dxsyn_lexize(), ecpg_filter_source(), ecpg_filter_stderr(), ecpg_postprocess_result(), elog_node_display(), emit_audit_message(), encrypt_free(), end_tup_output(), EndCopy(), EndCopyFrom(), enlarge_list(), entry_dealloc(), entry_purge_tuples(), entryLoadMoreItems(), enum_range_internal(), enum_recv(), EnumValuesCreate(), eqjoinsel_inner(), eqjoinsel_semi(), eval_windowaggregates(), EventTriggerAlterTableEnd(), EventTriggerSQLDropAddObject(), examine_attribute(), examine_expression(), exec_bind_message(), exec_object_restorecon(), exec_stmt_foreach_a(), Exec_UnlistenCommit(), ExecAggCopyTransValue(), ExecDropSingleTupleTableSlot(), ExecEndWindowAgg(), ExecEvalPreOrderedDistinctSingle(), ExecEvalXmlExpr(), ExecFetchSlotHeapTupleDatum(), ExecForceStoreHeapTuple(), ExecForceStoreMinimalTuple(), ExecGrant_Attribute(), ExecGrant_common(), ExecGrant_Largeobject(), ExecGrant_Parameter(), ExecGrant_Relation(), ExecHashIncreaseNumBatches(), ExecHashRemoveNextSkewBucket(), ExecHashTableDestroy(), ExecIndexBuildScanKeys(), ExecInitMemoize(), ExecParallelCleanup(), ExecParallelFinish(), ExecParallelHashCloseBatchAccessors(), ExecParallelHashRepartitionRest(), ExecReScanTidScan(), ExecResetTupleTable(), ExecSetParamPlan(), ExecSetSlotDescriptor(), ExecShutdownGatherMergeWorkers(), ExecShutdownGatherWorkers(), execute_foreign_modify(), executeDateTimeMethod(), executeItemOptUnwrapTarget(), ExecuteRecoveryCommand(), expand_dynamic_library_name(), expanded_record_set_field_internal(), expanded_record_set_fields(), expanded_record_set_tuple(), ExplainFlushWorkersState(), ExplainProperty(), ExplainPropertyFloat(), ExplainPropertyList(), ExplainQuery(), extract_autovac_opts(), extract_rollup_sets(), extractNotNullColumn(), fetch_finfo_record(), fetch_function_defaults(), fetch_remote_table_info(), fetch_statentries_for_relation(), fetch_table_list(), file_acquire_sample_rows(), filter_list_to_array(), finalize_aggregates(), FinalizeIncrementalManifest(), find_in_dynamic_libpath(), find_inheritance_children_extended(), find_other_exec(), find_provider(), findDependentObjects(), findeq(), findJsonbValueFromContainer(), finish_edata(), FinishPreparedTransaction(), fix_merged_indexes(), fixup_inherited_columns(), flush_pipe_input(), FlushRelationsAllBuffers(), fmgr_info_C_lang(), fmgr_info_cxt_security(), forget_invalid_pages(), forget_invalid_pages_db(), ForgetBackgroundWorker(), ForgetManyTestResources(), form_and_insert_tuple(), form_and_spill_tuple(), free_attrmap(), free_attstatsslot(), free_chromo(), free_conversion_map(), free_edge_table(), free_object_addresses(), free_openssl_cipher(), free_openssl_digest(), free_parsestate(), free_partition_map(), free_pool(), free_sort_tuple(), FreeAccessStrategy(), freeAndGetParent(), FreeBulkInsertState(), FreeErrorData(), FreeErrorDataContents(), FreeExprContext(), FreeFakeRelcacheEntry(), freeGinBtreeStack(), freeHyperLogLog(), freeJsonLexContext(), FreeQueryDesc(), FreeSnapshot(), FreeSubscription(), freetree(), FreeTriggerDesc(), FreeTupleDesc(), FreeWaitEventSet(), FreeWaitEventSetAfterFork(), FreezeMultiXactId(), func_get_detail(), FuncnameGetCandidates(), g_int_compress(), g_int_consistent(), g_int_decompress(), g_int_penalty(), g_int_picksplit(), g_intbig_consistent(), g_intbig_picksplit(), gather_merge_clear_tuples(), gbt_bit_l2n(), gen_ossl_free(), generate_append_tlist(), generate_base_implied_equalities_no_const(), generate_combinations(), generate_dependencies(), generate_matching_part_pairs(), generate_trgm_only(), generate_wildcard_trgm(), generateClonedExtStatsStmt(), generateHeadline(), generator_free(), GenericXLogAbort(), GenericXLogFinish(), get_attstatsslot(), get_const_expr(), get_control_dbstate(), get_docrep(), get_extension_aux_control_filename(), get_extension_script_filename(), get_flush_position(), get_from_clause(), get_relation_statistics(), get_reloptions(), get_sql_insert(), get_sql_update(), get_str_from_var_sci(), get_target_list(), get_tuple_of_interest(), get_typdefault(), GetAggInitVal(), getColorInfo(), GetConfFilesInDir(), GetIncrementalFilePath(), GetMultiXactIdHintBits(), GetNewRelFileNumber(), getNextNearest(), getObjectDescription(), getObjectIdentityParts(), getPublicationSchemaInfo(), GetTempNamespaceProcNumber(), GetWALRecordsInfo(), gin_extract_jsonb_path(), gin_leafpage_items(), gin_trgm_triconsistent(), ginCompressPostingList(), ginendscan(), ginEntryFillRoot(), ginEntryInsert(), ginExtractEntries(), ginFinishSplit(), GinFormTuple(), ginFreeScanKeys(), ginPostingListDecodeAllSegmentsToTbm(), ginVacuumEntryPage(), ginVacuumPostingTree(), ginVacuumPostingTreeLeaf(), gist_indexsortbuild(), gist_indexsortbuild_levelstate_flush(), gist_ischild(), gistgetbitmap(), gistgettuple(), gistPopItupFromNodeBuffer(), gistRelocateBuildBuffersOnSplit(), gistrescan(), gistunionsubkeyvec(), gistUnloadNodeBuffer(), gtrgm_consistent(), gtrgm_distance(), gtrgm_penalty(), gtsvector_penalty(), guc_free(), GUCArrayReset(), HandleChildCrash(), HandleParallelApplyMessages(), HandleParallelMessages(), HandlePgArchInterrupts(), hash_record(), hash_record_extended(), hashagg_finish_initial_spills(), hashagg_reset_spill_state(), hashagg_spill_finish(), hashagg_spill_tuple(), hashbpchar(), hashbpcharextended(), hashbuildCallback(), hashendscan(), hashinsert(), hashtext(), hashtextextended(), heap_create_with_catalog(), heap_endscan(), heap_force_common(), heap_free_minimal_tuple(), heap_freetuple(), heap_lock_tuple(), heap_lock_updated_tuple_rec(), heap_modify_tuple(), heap_modify_tuple_by_cols(), heap_tuple_infomask_flags(), heap_tuple_should_freeze(), heap_vacuum_rel(), heapam_index_fetch_end(), heapam_relation_copy_for_cluster(), heapam_tuple_complete_speculative(), heapam_tuple_insert(), heapam_tuple_insert_speculative(), heapam_tuple_update(), hmac_finish(), hmac_free(), hmac_init(), hstoreUniquePairs(), hv_fetch_string(), hv_store_string(), icu_language_tag(), index_compute_xid_horizon_for_tuples(), index_concurrently_create_copy(), index_form_tuple_context(), index_store_float8_orderby_distances(), index_truncate_tuple(), IndexScanEnd(), IndexSupportsBackwardScan(), infix(), initcap(), initialize_reloptions(), InitializeSystemUser(), InitIndexAmRoutine(), InitPostgres(), initTrie(), InitWalRecovery(), inner_int_inter(), insert_username(), InsertOneTuple(), InsertPgAttributeTuples(), internal_citext_pattern_cmp(), internalerrquery(), intorel_destroy(), intset_subtract(), inv_close(), inv_getsize(), inv_read(), inv_truncate(), inv_write(), InvalidateAttoptCacheCallback(), InvalidateTableSpaceCacheCallback(), irbt_free(), isAnyTempNamespace(), isolation_start_test(), isRelDataFile(), iterate_jsonb_values(), iterate_word_similarity(), jit_release_context(), json_manifest_finalize_file(), json_manifest_finalize_wal_range(), json_manifest_scalar(), json_object(), json_object_keys(), json_object_two_arg(), json_unique_object_end(), json_unique_object_field_start(), jsonb_object(), jsonb_object_two_arg(), jsonb_set_element(), JsonbDeepContains(), JsonbValue_to_SV(), jsonpath_send(), KnownAssignedXidsDisplay(), lazy_cleanup_one_index(), lazy_vacuum_one_index(), lca(), leafRepackItems(), libpq_destroy(), libpqrcv_alter_slot(), libpqrcv_connect(), libpqrcv_create_slot(), libpqrcv_disconnect(), libpqrcv_get_dbname_from_conninfo(), libpqrcv_startstreaming(), like_fixed_prefix(), list_delete_first_n(), list_delete_nth_cell(), list_free_private(), llvm_compile_module(), llvm_copy_attributes_at_index(), llvm_release_context(), llvm_resolve_symbol(), lo_manage(), load_backup_manifest(), load_enum_cache_data(), load_external_function(), load_file(), load_libraries(), load_relcache_init_file(), local_buffer_write_error_callback(), local_destroy(), log_status_format(), logfile_rotate_dest(), logical_heap_rewrite_flush_mappings(), logicalrep_relmap_free_entry(), logicalrep_write_tuple(), LogicalTapeClose(), LogicalTapeFreeze(), LogicalTapeRewindForRead(), LogicalTapeSetClose(), LogRecoveryConflict(), LogStandbySnapshot(), lookup_ts_config_cache(), lookup_var_attr_stats(), LookupGXact(), lower(), lowerstr_with_len(), lquery_recv(), lquery_send(), lrq_free(), ltree_addtext(), ltree_picksplit(), ltree_recv(), ltree_send(), ltree_strncasecmp(), ltree_textadd(), ltxtq_recv(), ltxtq_send(), lz4_compress_datum(), main(), make_greater_string(), make_partition_pruneinfo(), make_partitionedrel_pruneinfo(), make_scalar_key(), make_tsvector(), make_tuple_indirect(), makeArrayTypeName(), makeMultirangeConstructors(), map_sql_value_to_xml_value(), mark_hl_fragments(), MaybeRemoveOldWalSummaries(), mbuf_free(), mcelem_array_contained_selec(), mcelem_array_selec(), mcelem_tsquery_selec(), mcv_clause_selectivity_or(), mcv_get_match_bitmap(), mdcreate(), mdopenfork(), mdsyncfiletag(), mdunlinkfiletag(), mdunlinkfork(), merge_acl_with_grant(), merge_clump(), mergeruns(), mkANode(), moddatetime(), mode_final(), moveArrayTypeName(), movedb(), movedb_failure_callback(), mul_var(), multirange_recv(), MultiXactIdExpand(), MultiXactIdGetUpdateXid(), MultiXactIdIsRunning(), mXactCachePut(), mxid_to_string(), namerecv(), next_field_expand(), NIImportAffixes(), NIImportDictionary(), NIImportOOAffixes(), NINormalizeWord(), NormalizeSubWord(), NUM_cache(), numeric_abbrev_convert(), numeric_fast_cmp(), numeric_float4(), numeric_float8(), numeric_to_number(), numericvar_to_double_no_overflow(), object_aclmask_ext(), pa_free_worker_info(), pa_launch_parallel_worker(), pad_eme_pkcs1_v15(), PageRestoreTempPage(), pagetable_free(), pair_encode(), pairingheap_free(), parallel_vacuum_end(), parallel_vacuum_init(), parallel_vacuum_process_one_index(), ParameterAclLookup(), parse_and_validate_value(), parse_args(), parse_compress_specification(), parse_extension_control_file(), parse_fcall_arguments(), parse_hba_line(), parse_lquery(), parse_ltree(), parse_manifest_file(), parse_one_reloption(), parse_subscription_options(), parse_tsquery(), parseCommandLine(), parseNameAndArgTypes(), parseRelOptionsInternal(), parsetext(), PartitionPruneFixSubPlanMap(), patternsel_common(), pclose_check(), perform_base_backup(), perform_work_item(), PerformAuthentication(), PerformRadiusTransaction(), PerformWalRecovery(), pg_armor(), pg_attribute_aclcheck_all_ext(), pg_attribute_aclmask_ext(), pg_backup_stop(), pg_be_scram_build_secret(), pg_class_aclmask_ext(), pg_convert(), pg_crypt(), pg_dearmor(), pg_decode_commit_txn(), pg_decode_stream_abort(), pg_decode_stream_commit(), pg_encrypt(), pg_extension_update_paths(), pg_get_constraintdef_worker(), pg_get_expr_worker(), pg_get_function_arg_default(), pg_get_indexdef_worker(), pg_get_line(), pg_get_multixact_members(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_get_statisticsobjdef_expressions(), pg_get_wal_block_info(), pg_get_wal_record_info(), pg_identify_object_as_address(), pg_largeobject_aclmask_snapshot(), pg_namespace_aclmask_ext(), pg_parameter_acl_aclmask(), pg_parameter_aclmask(), pg_parse_query(), pg_plan_query(), pg_replication_origin_create(), pg_replication_origin_drop(), pg_replication_origin_oid(), pg_replication_origin_session_setup(), pg_rewrite_query(), pg_split_opts(), pg_stat_file(), pg_stat_get_activity(), pg_stat_get_backend_activity(), pg_stat_statements_internal(), pg_strncoll_libc(), pg_strnxfrm_libc(), pg_sync_replication_slots(), pg_tablespace_databases(), pg_type_aclmask_ext(), pg_tzenumerate_end(), pg_tzenumerate_next(), pgfnames_cleanup(), PGLC_localeconv(), pglz_compress_datum(), pgoutput_commit_txn(), pgp_cfb_free(), pgp_create_pkt_reader(), pgp_free(), pgp_key_free(), pgp_mpi_free(), pgss_shmem_startup(), pgss_store(), pgstat_delete_pending_entry(), pgstat_release_entry_ref(), pkt_stream_free(), plainnode(), plperl_build_tuple_result(), plperl_call_perl_func(), plperl_hash_from_tuple(), plperl_modify_tuple(), plperl_spi_exec_prepared(), plperl_spi_prepare(), plperl_spi_query_prepared(), plperl_sv_to_datum(), plperl_trigger_handler(), plperl_util_elog(), plpgsql_destroy_econtext(), plpgsql_extra_checks_check_hook(), plpgsql_subxact_cb(), pltcl_build_tuple_argument(), pltcl_func_handler(), pltcl_quote(), pltcl_set_tuple_values(), pltcl_trigger_handler(), PLy_abort_open_subtransactions(), PLy_cursor_plan(), PLy_elog_impl(), PLy_function_drop_args(), PLy_function_restore_args(), PLy_input_setup_tuple(), PLy_modify_tuple(), PLy_output(), PLy_output_setup_tuple(), PLy_pop_execution_context(), PLy_procedure_compile(), PLy_procedure_create(), PLy_quote_literal(), PLy_quote_nullable(), PLy_spi_execute_plan(), PLy_subtransaction_exit(), PLy_traceback(), PLy_trigger_build_args(), PLyGenericObject_ToComposite(), PLyMapping_ToComposite(), PLyNumber_ToJsonbValue(), PLySequence_ToComposite(), PLyUnicode_Bytes(), PLyUnicode_FromScalar(), PLyUnicode_FromStringAndSize(), PMSignalShmemInit(), PopActiveSnapshot(), PopTransaction(), populate_array(), populate_record(), populate_scalar(), PortalDrop(), postgresExecForeignTruncate(), postgresGetForeignJoinPaths(), PostmasterMain(), PostPrepare_smgr(), pprint(), pq_endmessage(), pq_puttextmessage(), pq_sendcountedtext(), pq_sendstring(), pq_sendtext(), pq_writestring(), PrepareTempTablespaces(), preprocessNamespacePath(), PrescanPreparedTransactions(), print(), print_expr(), print_function_arguments(), printtup_destroy(), printtup_prepare_info(), printtup_shutdown(), ProcArrayApplyRecoveryInfo(), process_directory_recursively(), process_ordered_aggregate_single(), process_pipe_input(), process_postgres_switches(), process_target_wal_block_change(), ProcessCommittedInvalidationMessages(), ProcessConfigFileInternal(), ProcessGUCArray(), ProcessStandbyHSFeedbackMessage(), ProcessStandbyReplyMessage(), ProcessWalSndrMessage(), ProcSleep(), prs_process_call(), prune_element_hashtable(), prune_lexemes_hashtable(), psprintf(), psql_add_command(), psql_start_test(), pullf_free(), pushf_free(), PushTransaction(), pushval_morph(), px_find_cipher(), px_find_combo(), px_find_digest(), QTNFree(), QTNTernary(), queryin(), range_recv(), rbt_populate(), RE_compile(), RE_compile_and_cache(), RE_execute(), read_client_final_message(), read_dictionary(), read_pg_version_file(), ReadArrayStr(), readfile(), readstoplist(), reconstruct_from_incremental_file(), record_cmp(), record_eq(), record_image_cmp(), record_image_eq(), record_in(), record_out(), record_recv(), record_send(), recordMultipleDependencies(), RecordTransactionAbort(), RecordTransactionCommit(), RecoverPreparedTransactions(), recursive_revoke(), recv_password_packet(), regcomp_auth_token(), regex_fixed_prefix(), regexec_auth_token(), regexp_fixed_prefix(), regression_main(), RehashCatCache(), reindex_one_database(), ReinitializeParallelDSM(), RelationBuildPartitionKey(), RelationBuildPublicationDesc(), RelationBuildRowSecurity(), RelationBuildRuleLock(), RelationBuildTriggers(), RelationBuildTupleDesc(), RelationCacheInitializePhase3(), RelationClearRelation(), RelationDestroyRelation(), RelationGetDummyIndexExpressions(), RelationGetIndexAttOptions(), RelationGetIndexExpressions(), RelationGetIndexPredicate(), RelationParseRelOptions(), RelationPreserveStorage(), RelationReloadIndexInfo(), ReleaseDummy(), ReleaseManyTestResource(), relmap_redo(), remove_cache_entry(), remove_dbtablespaces(), remove_leftjoinrel_from_query(), remove_self_join_rel(), RemoveLocalLock(), RenameTypeInternal(), ReorderBufferFreeSnap(), ReorderBufferIterTXNFinish(), ReorderBufferReturnChange(), ReorderBufferReturnRelids(), ReorderBufferReturnTupleBuf(), ReorderBufferReturnTXN(), ReorderBufferToastReplace(), ReorderBufferToastReset(), reorderqueue_pop(), replace_auto_config_value(), replace_text(), replace_text_regexp(), ReplicationSlotDropAtPubNode(), ReplicationSlotRelease(), ReplSlotSyncWorkerMain(), report_corruption_internal(), report_invalid_page(), report_triggers(), reportDependentObjects(), ReportGUCOption(), ReportSlotInvalidation(), reset_directory_cleanup_list(), reset_on_dsm_detach(), ResetDecoder(), resetSpGistScanOpaque(), resolve_aggregate_transtype(), ResourceOwnerDelete(), ResourceOwnerEnlarge(), ResourceOwnerReleaseAll(), RestoreArchivedFile(), rewriteTargetListIU(), rewriteValuesRTE(), rm_redo_error_callback(), rmtree(), RS_free(), run_ssl_passphrase_command(), scanPendingInsert(), scram_verify_plain_password(), select_active_windows(), select_outer_pathkeys_for_merge(), send_message_to_frontend(), send_message_to_server_log(), sendDir(), SendFunctionResult(), sepgsql_attribute_drop(), sepgsql_attribute_post_create(), sepgsql_attribute_relabel(), sepgsql_attribute_setattr(), sepgsql_avc_check_perms(), sepgsql_avc_compute(), sepgsql_avc_reclaim(), sepgsql_database_drop(), sepgsql_database_post_create(), sepgsql_database_relabel(), sepgsql_database_setattr(), sepgsql_proc_drop(), sepgsql_proc_execute(), sepgsql_proc_post_create(), sepgsql_proc_relabel(), sepgsql_proc_setattr(), sepgsql_relation_drop(), sepgsql_relation_post_create(), sepgsql_relation_relabel(), sepgsql_relation_setattr(), sepgsql_relation_truncate(), sepgsql_schema_drop(), sepgsql_schema_post_create(), sepgsql_schema_relabel(), sepgsql_xact_callback(), seq_redo(), seq_search_localized(), serialize_deflist(), set_append_rel_size(), set_customscan_references(), set_foreignscan_references(), set_indexonlyscan_references(), set_join_references(), set_plan_refs(), set_returning_clause_references(), set_subquery_pathlist(), set_upper_references(), set_var_from_str(), set_windowagg_runcondition_references(), SetClientEncoding(), setCorrLex(), setNewTmpRes(), setup_regexp_matches(), setup_test_matches(), shared_buffer_write_error_callback(), shdepLockAndCheckObject(), shell_archive_file(), shell_finish_command(), shm_mq_detach(), shm_mq_receive(), show_memoize_info(), show_trgm(), ShowAllGUCConfig(), ShowTransactionStateRec(), ShowUsage(), ShutdownExprContext(), SignalBackends(), similarity(), single_encode(), slotsync_reread_config(), smgr_bulk_flush(), smgr_desc(), smgrDoPendingDeletes(), smgrDoPendingSyncs(), smgrdounlinkall(), SnapBuildFreeSnapshot(), SnapBuildPurgeOlderTxn(), SnapBuildRestore(), SnapBuildSerialize(), spg_box_quad_inner_consistent(), spgClearPendingList(), spgdoinsert(), spgendscan(), spgFreeSearchItem(), spggettuple(), spgRedoVacuumRedirect(), SPI_cursor_open(), SPI_modifytuple(), SPI_pfree(), split_text(), SplitIdentifierString(), SplitToVariants(), sqlfunction_destroy(), StandbyRecoverPreparedTransactions(), StandbyTransactionIdIsPrepared(), start_table_sync(), StartAutovacuumWorker(), StartPrepare(), startScanEntry(), StartupRereadConfig(), statext_mcv_build(), statext_mcv_deserialize(), statext_mcv_serialize(), StoreAttrDefault(), storeObjectDescription(), StorePartitionKey(), StoreRelCheck(), storeRow(), str_initcap(), str_tolower(), str_toupper(), string_to_text(), stringToQualifiedNameList(), sts_end_write(), sts_read_tuple(), SummarizeWAL(), synchronize_slots(), SyncPostCheckpoint(), SyncRepGetNthLatestSyncRecPtr(), SyncRepGetSyncRecPtr(), SysLogger_Start(), SysLoggerMain(), systable_endscan(), systable_endscan_ordered(), tablesample_init(), TablespaceCreateDbspace(), tbm_end_iterate(), tbm_end_shared_iterate(), tbm_free(), terminate_brin_buildstate(), test_basic(), test_enc_conversion(), test_random(), test_re_compile(), test_shm_mq_setup(), test_singlerowmode(), testdelete(), testprs_end(), text2ltree(), text_format(), text_format_string_conversion(), text_substring(), text_to_cstring(), text_to_cstring_buffer(), textrecv(), textToQualifiedNameList(), thesaurus_lexize(), thesaurusRead(), TidListEval(), toast_build_flattened_tuple(), toast_close_indexes(), toast_compress_datum(), toast_flatten_tuple(), toast_flatten_tuple_to_datum(), toast_tuple_cleanup(), toast_tuple_externalize(), toast_tuple_try_compression(), tokenize_auth_file(), tokenize_expand_file(), tokenize_include_file(), TParserClose(), TParserCopyClose(), TParserGet(), tqueueDestroyReceiver(), tqueueReceiveSlot(), TransformGUCArray(), transformRangeTableFunc(), transientrel_destroy(), try_partitionwise_join(), ts_accum(), TS_execute_locations_recurse(), ts_headline_byid_opt(), ts_headline_json_byid_opt(), ts_headline_jsonb_byid_opt(), ts_lexize(), ts_match_tq(), ts_match_tt(), ts_process_call(), ts_stat_sql(), tsearch_readline(), tsearch_readline_end(), tsquery_rewrite_query(), tsqueryrecv(), tsquerytree(), tstoreDestroyReceiver(), tstoreReceiveSlot_detoast(), tstoreShutdownReceiver(), tsvector_delete_arr(), tsvector_to_array(), tsvector_update_trigger(), tsvectorin(), tt_process_call(), ttdummy(), tts_virtual_clear(), tuple_data_split(), tuple_data_split_internal(), tuplesort_begin_batch(), tuplesort_begin_cluster(), tuplesort_begin_index_btree(), tuplestore_advance(), tuplestore_clear(), tuplestore_end(), tuplestore_skiptuples(), tuplestore_trim(), typenameTypeMod(), unaccent_dict(), uniqueentry(), uniqueWORD(), unistr(), UnregisterExprContextCallback(), UnregisterResourceReleaseCallback(), UnregisterSubXactCallback(), UnregisterXactCallback(), updateAclDependencies(), UpdateIndexRelation(), UpdateLogicalMappings(), upper(), vac_close_indexes(), validate_remote_info(), varcharrecv(), varlenafastcmp_locale(), varstr_abbrev_convert(), varstrfastcmp_c(), verify_backup_checksums(), verify_backup_directory(), verify_cb(), verify_control_file(), wait_for_connection_state(), WaitForOlderSnapshots(), WaitForParallelWorkersToExit(), walrcv_clear_result(), WalRcvFetchTimeLineHistoryFiles(), WalReceiverMain(), worker_freeze_result_tape(), write_auto_conf_file(), write_console(), write_csvlog(), write_jsonlog(), write_reconstructed_file(), X509_NAME_field_to_text(), X509_NAME_to_cstring(), xact_desc_relations(), XLogDecodeNextRecord(), XLogDumpDisplayRecord(), XLogInsertRecord(), XLogPrefetcherFree(), XLogReaderAllocate(), XLogReaderFree(), XLogReleasePreviousRecord(), XLOGShmemInit(), xml_encode_special_chars(), xml_out_internal(), xml_recv(), xml_send(), xmlconcat(), xmlpi(), xpath_bool(), xpath_list(), xpath_nodeset(), xpath_number(), xpath_string(), and xpath_table().

◆ pnstrdup()

◆ ProcessLogMemoryContextInterrupt()

void ProcessLogMemoryContextInterrupt ( void  )

Definition at line 1276 of file mcxt.c.

1277 {
1278  LogMemoryContextPending = false;
1279 
1280  /*
1281  * Use LOG_SERVER_ONLY to prevent this message from being sent to the
1282  * connected client.
1283  */
1285  (errhidestmt(true),
1286  errhidecontext(true),
1287  errmsg("logging memory contexts of PID %d", MyProcPid)));
1288 
1289  /*
1290  * When a backend process is consuming huge memory, logging all its memory
1291  * contexts might overrun available disk space. To prevent this, we limit
1292  * the depth of the hierarchy, as well as the number of child contexts to
1293  * log per parent to 100.
1294  *
1295  * As with MemoryContextStats(), we suppose that practical cases where the
1296  * dump gets long will typically be huge numbers of siblings under the
1297  * same parent context; while the additional debugging value from seeing
1298  * details about individual siblings beyond 100 will not be large.
1299  */
1300  MemoryContextStatsDetail(TopMemoryContext, 100, 100, false);
1301 }
int MyProcPid
Definition: globals.c:45

References ereport, errhidecontext(), errhidestmt(), errmsg(), LOG_SERVER_ONLY, LogMemoryContextPending, MemoryContextStatsDetail(), MyProcPid, and TopMemoryContext.

Referenced by HandleAutoVacLauncherInterrupts(), HandleCheckpointerInterrupts(), HandleMainLoopInterrupts(), HandlePgArchInterrupts(), HandleStartupProcInterrupts(), HandleWalSummarizerInterrupts(), and ProcessInterrupts().

◆ pstrdup()

char* pstrdup ( const char *  in)

Definition at line 1683 of file mcxt.c.

1684 {
1686 }
char * MemoryContextStrdup(MemoryContext context, const char *string)
Definition: mcxt.c:1670

References CurrentMemoryContext, and MemoryContextStrdup().

Referenced by AbsoluteConfigLocation(), accesstype_arg_to_string(), add_row_identity_var(), add_with_check_options(), addCompiledLexeme(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), addRangeTableEntryForTableFunc(), addRangeTableEntryForValues(), addToResult(), allocate_reloption(), AlterRole(), analyzeCTETargetList(), anytime_typmodout(), anytimestamp_typmodout(), append_database_pattern(), append_relation_pattern_helper(), append_schema_pattern(), ApplyRetrieveRule(), array_out(), ATExecAddIndexConstraint(), ATExecAlterConstraint(), ATParseTransformCmd(), BackendInitialize(), BaseBackupAddTarget(), bbstreamer_extractor_new(), bbstreamer_gzip_writer_new(), bbstreamer_plain_writer_new(), BeginCopyFrom(), BeginCopyTo(), BootstrapModeMain(), BufFileCreateFileSet(), BufFileOpenFileSet(), build_datatype(), build_minmax_path(), build_server_first_message(), buildDefItem(), BuildOnConflictExcludedTargetlist(), buildRelationAliases(), BuildRestoreCommand(), cache_locale_time(), CatalogCacheInitializeCache(), check_createrole_self_grant(), check_datestyle(), check_debug_io_direct(), check_hostname(), check_locale(), check_log_destination(), check_search_path(), check_selective_binary_conversion(), check_standby_slot_names(), check_temp_tablespaces(), check_timezone(), check_tuple_header(), check_tuple_visibility(), check_valid_internal_signature(), check_wal_consistency_checking(), checkInsertTargets(), ChooseExtendedStatisticNameAddition(), ChooseForeignKeyConstraintNameAddition(), ChooseIndexColumnNames(), ChooseIndexNameAddition(), CloneFkReferencing(), CloneRowTriggersToPartition(), compile_database_list(), compile_plperl_function(), compile_pltcl_function(), compile_relation_list_one_db(), compileTheSubstitute(), connectby_text(), connectby_text_serial(), convert_GUC_name_for_parameter_acl(), convert_string_datum(), CopyCachedPlan(), CopyErrorData(), CopyTriggerDesc(), copyTSLexeme(), CopyVar(), create_foreign_modify(), CreateCachedPlan(), CreateLockFile(), createNewConnection(), CreateParallelContext(), CreateSchemaCommand(), CreateTableSpace(), CreateTupleDescCopyConstr(), cstring_in(), cstring_out(), date_out(), dbase_redo(), defGetString(), DefineQueryRewrite(), DefineView(), DefineViewRules(), deleteConnection(), destroy_tablespace_directories(), DetachPartitionFinalize(), determineRecursiveColTypes(), do_compile(), do_pg_backup_start(), DoCopy(), DropSubscription(), dsynonym_init(), ean13_out(), encrypt_password(), enum_out(), EventTriggerSQLDropAddObject(), exec_bind_message(), exec_execute_message(), Exec_ListenCommit(), executeItemOptUnwrapTarget(), expand_dynamic_library_name(), expand_inherited_rtentry(), expand_insert_targetlist(), expand_single_inheritance_child(), ExpandRowReference(), expandRTE(), expandTableLikeClause(), expandTupleDesc(), ExportSnapshot(), extension_file_exists(), ExtractExtensionList(), fetch_statentries_for_relation(), fill_hba_line(), filter_list_to_array(), find_plan(), float4in_internal(), float8in_internal(), fmgr_symbol(), format_operator_parts(), format_procedure_parts(), format_type_extended(), from_char_seq_search(), generate_append_tlist(), generate_setop_tlist(), generateClonedIndexStmt(), get_am_name(), get_attname(), get_collation(), get_collation_actual_version(), get_collation_name(), get_configdata(), get_connect_string(), get_constraint_name(), get_database_list(), get_database_name(), get_ext_ver_info(), get_ext_ver_list(), get_extension_name(), get_extension_script_directory(), get_file_fdw_attribute_options(), get_func_name(), get_language_name(), get_namespace_name(), get_namespace_name_or_temp(), get_opclass(), get_opname(), get_publication_name(), get_rel_name(), get_rolespec_name(), get_source_line(), get_sql_insert(), get_sql_update(), get_string_attr(), get_subscription_list(), get_subscription_name(), get_tablespace_name(), getAdditionalACLs(), GetConfFilesInDir(), GetConfigOptionValues(), getConnectionByName(), GetDatabasePath(), GetForeignDataWrapperExtended(), GetForeignServerExtended(), getNamespaces(), getObjectIdentityParts(), getOpFamilyIdentity(), GetPublication(), getRecoveryStopReason(), getRelationIdentity(), GetSubscription(), getTableAttrs(), getTokenTypes(), GetUserNameFromId(), GetWaitEventExtensionNames(), HandleParallelApplyMessage(), HandleParallelMessage(), HandlePgArchInterrupts(), heap_vacuum_rel(), hstore_out(), ImportForeignSchema(), indent_lines(), init_sql_fcache(), internal_yylex(), interpret_AS_clause(), interpret_function_parameter_list(), interval_out(), isn_out(), iterate_values_object_field_start(), lazy_cleanup_one_index(), lazy_vacuum_one_index(), libpqrcv_check_conninfo(), libpqrcv_create_slot(), libpqrcv_get_conninfo(), libpqrcv_get_dbname_from_conninfo(), libpqrcv_get_senderinfo(), libpqrcv_identify_system(), libpqrcv_readtimelinehistoryfile(), limit_printout_length(), llvm_function_reference(), llvm_set_target(), llvm_split_symbol_name(), load_domaintype_info(), load_libraries(), Lock_AF_UNIX(), logicalrep_partition_open(), logicalrep_read_attrs(), logicalrep_read_origin(), logicalrep_read_rel(), logicalrep_read_typ(), logicalrep_relmap_update(), lowerstr_with_len(), main(), make_rfile(), makeAlias(), makeColumnDef(), makeMultirangeTypeName(), map_sql_value_to_xml_value(), MarkGUCPrefixReserved(), MergeAttributes(), MergeCheckConstraint(), nameout(), network_out(), NINormalizeWord(), NormalizeSubWord(), nullable_string(), numeric_normalize(), numeric_out(), numeric_out_sci(), object_to_string(), okeys_object_field_start(), parallel_vacuum_main(), parallel_vacuum_process_one_index(), parse_compress_specification(), parse_extension_control_file(), parse_hba_auth_opt(), parse_hba_line(), parse_ident_line(), parse_object_field(), parse_scalar(), parse_scram_secret(), parse_subscription_options(), ParseLongOption(), parseNameAndArgTypes(), ParseTzFile(), perform_base_backup(), PerformCursorOpen(), pg_available_extension_versions(), pg_available_extensions(), pg_import_system_collations(), pg_lsn_out(), pg_split_opts(), pg_split_walfile_name(), pg_tzenumerate_next(), pg_tzenumerate_start(), pgfnames(), PGLC_localeconv(), pgrowlocks(), pgstatindex_impl(), plperl_init_interp(), plperl_to_hstore(), plpgsql_build_recfield(), plpgsql_build_record(), plpgsql_build_variable(), plpgsql_compile_inline(), plpgsql_extra_checks_check_hook(), plsample_func_handler(), plsample_trigger_handler(), pltcl_set_tuple_values(), PLy_output(), PLy_procedure_create(), PLyObject_AsString(), PLyUnicode_AsString(), populate_scalar(), postgresImportForeignSchema(), PostmasterMain(), pq_parse_errornotice(), prepare_foreign_modify(), prepare_sql_fn_parse_info(), PrepareTempTablespaces(), preprocess_targetlist(), preprocessNamespacePath(), print_function_sqlbody(), process_psqlrc(), ProcessConfigFileInternal(), ProcessStandbyHSFeedbackMessage(), ProcessStandbyReplyMessage(), ProcessStartupPacket(), ProcessWalSndrMessage(), prsd_headline(), prsd_lextype(), pset_value_string(), px_find_combo(), range_deparse(), read_client_final_message(), read_client_first_message(), read_dictionary(), read_extension_control_file(), read_tablespace_map(), RebuildConstraintComment(), regclassout(), regcollationout(), regconfigout(), regdictionaryout(), register_label_provider(), regnamespaceout(), regoperatorout(), regoperout(), regprocedureout(), regprocout(), REGRESS_exec_check_perms(), REGRESS_object_access_hook_str(), REGRESS_utility_command(), regroleout(), regtypeout(), ReindexPartitions(), RelationBuildTriggers(), RelationGetNotNullConstraints(), RemoveInheritance(), ReorderBufferFinishPrepared(), ReorderBufferPrepare(), ReorderBufferQueueMessage(), replace_auto_config_value(), ReplicationSlotRelease(), ReThrowError(), rewriteTargetListIU(), rewriteTargetView(), rmtree(), scram_exchange(), sendDir(), sepgsql_avc_compute(), sepgsql_compute_create(), sepgsql_get_label(), sepgsql_mcstrans_in(), sepgsql_mcstrans_out(), sepgsql_set_client_label(), set_relation_column_names(), set_stream_options(), shell_archive_file(), shell_get_sink(), show_eval_params(), show_sort_group_keys(), ShowGUCOption(), slotsync_reread_config(), SPI_fname(), SPI_getrelname(), SPI_gettype(), SplitDirectoriesString(), splitTzLine(), StartupRereadConfig(), stringToQualifiedNameList(), strip_trailing_ws(), substitute_libpath_macro(), SysLoggerMain(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), testprs_lextype(), textToQualifiedNameList(), thesaurus_init(), throw_tcl_error(), ThrowErrorData(), tidout(), time_out(), timestamp_out(), timestamptz_out(), timetz_out(), tokenize_auth_file(), tokenize_expand_file(), transformFkeyGetPrimaryKey(), transformIndexConstraint(), transformJsonArrayQueryConstructor(), transformRangeTableFunc(), transformRowExpr(), transformSetOperationStmt(), transformTableLikeClause(), tsearch_readline(), typeTypeName(), unknownin(), unknownout(), utf_e2u(), utf_u2e(), verify_backup_directory(), void_out(), wait_result_to_str(), worker_spi_main(), X509_NAME_to_cstring(), and xpstrdup().

◆ repalloc()

void* repalloc ( void *  pointer,
Size  size 
)

Definition at line 1528 of file mcxt.c.

1529 {
1530 #ifdef USE_VALGRIND
1532 #endif
1533 #if defined(USE_ASSERT_CHECKING) || defined(USE_VALGRIND)
1534  MemoryContext context = GetMemoryChunkContext(pointer);
1535 #endif
1536  void *ret;
1537 
1538  AssertNotInCriticalSection(context);
1539 
1540  /* isReset must be false already */
1541  Assert(!context->isReset);
1542 
1543  /*
1544  * For efficiency reasons, we purposefully offload the handling of
1545  * allocation failures to the MemoryContextMethods implementation as this
1546  * allows these checks to be performed only when an actual malloc needs to
1547  * be done to request more memory from the OS. Additionally, not having
1548  * to execute any instructions after this call allows the compiler to use
1549  * the sibling call optimization. If you're considering adding code after
1550  * this call, consider making it the responsibility of the 'realloc'
1551  * function instead.
1552  */
1553  ret = MCXT_METHOD(pointer, realloc) (pointer, size, 0);
1554 
1555 #ifdef USE_VALGRIND
1556  if (method != MCTX_ALIGNED_REDIRECT_ID)
1557  VALGRIND_MEMPOOL_CHANGE(context, pointer, ret, size);
1558 #endif
1559 
1560  return ret;
1561 }
#define realloc(a, b)
Definition: header.h:60
#define VALGRIND_MEMPOOL_CHANGE(context, optr, nptr, size)
Definition: memdebug.h:31

References Assert(), AssertNotInCriticalSection, GetMemoryChunkContext(), GetMemoryChunkMethodID(), MemoryContextData::isReset, MCTX_ALIGNED_REDIRECT_ID, MCXT_METHOD, realloc, size, and VALGRIND_MEMPOOL_CHANGE.

Referenced by _bt_deadblocks(), _bt_pendingfsm_add(), _fdvec_resize(), accumArrayResult(), accumArrayResultArr(), add_column_to_pathtarget(), add_exact_object_address(), add_exact_object_address_extra(), add_gin_entry(), add_object_address(), add_reloption(), addCompiledLexeme(), addCompoundAffixFlagValue(), AddInvalidationMessage(), AddStem(), addToArray(), addWrd(), AfterTriggerBeginSubXact(), AfterTriggerEnlargeQueryState(), appendElement(), appendKey(), apply_spooled_messages(), array_agg_array_combine(), array_agg_combine(), array_set_element_expanded(), AtSubCommit_childXids(), BlockRefTableEntryMarkBlockModified(), bms_add_member(), bms_add_range(), bms_replace_members(), brin_copy_tuple(), BufferSync(), BufFileAppend(), BufFileOpenFileSet(), checkcondition_str(), checkSharedDependencies(), compileTheLexeme(), compileTheSubstitute(), CopyReadAttributesCSV(), CopyReadAttributesText(), count_usable_fds(), cube_inter(), dsnowball_lexize(), dsynonym_init(), dxsyn_lexize(), enlarge_list(), enlargeStringInfo(), enum_range_internal(), ExecIndexBuildScanKeys(), ExecInitPartitionDispatchInfo(), ExecInitRoutingInfo(), ExprEvalPushStep(), extendBufFile(), find_inheritance_children_extended(), find_plan(), findDependentObjects(), generate_dependencies_recurse(), generateHeadline(), get_docrep(), GetComboCommandId(), GetConfFilesInDir(), GetLockStatusData(), GetSingleProcBlockerStatusData(), gettoken_tsvector(), ginFillScanEntry(), GinFormTuple(), ginPostingListDecodeAllSegments(), gistAddLoadedBuffer(), gistBuffersReleaseBlock(), gistGetNodeBuffer(), gistjoinvector(), gtsvector_compress(), hladdword(), hlfinditem(), icu_language_tag(), int2vectorin(), load_domaintype_info(), load_enum_cache_data(), load_relcache_init_file(), LockAcquireExtended(), ltsGetPreallocBlock(), ltsReleaseBlock(), mark_hl_fragments(), MergeAffix(), multirange_in(), newLexeme(), NIAddAffix(), NIAddSpell(), NISortAffixes(), oidvectorin(), oidvectortypes(), okeys_object_field_start(), parse_hstore(), parsetext(), perform_default_encoding_conversion(), pg_do_encoding_conversion(), pg_import_system_collations(), pgfnames(), pgss_shmem_startup(), plainnode(), plpgsql_adddatum(), prepare_room(), PrescanPreparedTransactions(), prs_setup_firstcall(), pushval_asis(), pushValue(), QTNTernary(), read_dictionary(), readstoplist(), record_corrupt_item(), RecordConstLocation(), RelationBuildDesc(), RelationBuildRuleLock(), RelationBuildTriggers(), RememberToFreeTupleDescAtEOX(), ReorderBufferAddInvalidations(), ReorderBufferSerializeReserve(), repalloc0(), RequestNamedLWLockTranche(), resize_intArrayType(), rmtree(), SetConstraintStateAddItem(), setup_regexp_matches(), setup_test_matches(), smgrDoPendingDeletes(), smgrDoPendingSyncs(), SnapBuildAddCommittedTxn(), socket_putmessage_noblock(), SPI_connect_ext(), SPI_repalloc(), statext_dependencies_build(), statext_dependencies_deserialize(), statext_mcv_deserialize(), str_udeescape(), subxact_info_add(), TidListEval(), tsqueryrecv(), tsvectorin(), tsvectorrecv(), tuplestore_alloc_read_pointer(), uniqueentry(), uniqueWORD(), varstr_abbrev_convert(), varstrfastcmp_locale(), and XLogEnsureRecordSpace().

◆ repalloc0()

void* repalloc0 ( void *  pointer,
Size  oldsize,
Size  size 
)

Definition at line 1606 of file mcxt.c.

1607 {
1608  void *ret;
1609 
1610  /* catch wrong argument order */
1611  if (unlikely(oldsize > size))
1612  elog(ERROR, "invalid repalloc0 call: oldsize %zu, new size %zu",
1613  oldsize, size);
1614 
1615  ret = repalloc(pointer, size);
1616  memset((char *) ret + oldsize, 0, (size - oldsize));
1617  return ret;
1618 }
void * repalloc(void *pointer, Size size)
Definition: mcxt.c:1528

References elog, ERROR, repalloc(), size, and unlikely.

◆ repalloc_extended()

void* repalloc_extended ( void *  pointer,
Size  size,
int  flags 
)

Definition at line 1569 of file mcxt.c.

1570 {
1571 #if defined(USE_ASSERT_CHECKING) || defined(USE_VALGRIND)
1572  MemoryContext context = GetMemoryChunkContext(pointer);
1573 #endif
1574  void *ret;
1575 
1576  AssertNotInCriticalSection(context);
1577 
1578  /* isReset must be false already */
1579  Assert(!context->isReset);
1580 
1581  /*
1582  * For efficiency reasons, we purposefully offload the handling of
1583  * allocation failures to the MemoryContextMethods implementation as this
1584  * allows these checks to be performed only when an actual malloc needs to
1585  * be done to request more memory from the OS. Additionally, not having
1586  * to execute any instructions after this call allows the compiler to use
1587  * the sibling call optimization. If you're considering adding code after
1588  * this call, consider making it the responsibility of the 'realloc'
1589  * function instead.
1590  */
1591  ret = MCXT_METHOD(pointer, realloc) (pointer, size, flags);
1592  if (unlikely(ret == NULL))
1593  return NULL;
1594 
1595  VALGRIND_MEMPOOL_CHANGE(context, pointer, ret, size);
1596 
1597  return ret;
1598 }

References Assert(), AssertNotInCriticalSection, GetMemoryChunkContext(), MemoryContextData::isReset, MCXT_METHOD, realloc, size, unlikely, and VALGRIND_MEMPOOL_CHANGE.

Referenced by guc_realloc(), and repalloc_huge().

◆ repalloc_huge()

void* repalloc_huge ( void *  pointer,
Size  size 
)

Definition at line 1659 of file mcxt.c.

1660 {
1661  /* this one seems not worth its own implementation */
1662  return repalloc_extended(pointer, size, MCXT_ALLOC_HUGE);
1663 }
void * repalloc_extended(void *pointer, Size size, int flags)
Definition: mcxt.c:1569

References MCXT_ALLOC_HUGE, repalloc_extended(), and size.

Referenced by ginCombineData(), grow_memtuples(), and spi_printtup().

Variable Documentation

◆ CacheMemoryContext

MemoryContext CacheMemoryContext = NULL

Definition at line 140 of file mcxt.c.

Referenced by _SPI_save_plan(), AllocateRelationDesc(), assign_record_type_typmod(), AttrDefaultFetch(), BuildEventTriggerCache(), BuildHardcodedDescriptor(), CatalogCacheCreateEntry(), CatalogCacheInitializeCache(), CheckConstraintFetch(), CreateCacheMemoryContext(), ensure_record_cache_typmod_slot_exists(), FetchTableStates(), generate_partition_qual(), get_attribute_options(), get_rel_sync_entry(), get_tablespace(), GetCachedExpression(), GetCachedPlan(), GetFdwRoutineForRelation(), init_ts_config_cache(), init_tuple_slot(), InitCatCache(), InitializeAttoptCache(), InitializeRelfilenumberMap(), InitializeTableSpaceCache(), load_domaintype_info(), load_enum_cache_data(), load_rangetype_info(), load_relcache_init_file(), logicalrep_partmap_init(), logicalrep_relmap_init(), lookup_ts_config_cache(), lookup_ts_dictionary_cache(), lookup_ts_parser_cache(), lookup_type_cache(), LookupOpclassInfo(), pgoutput_startup(), register_on_commit_action(), RehashCatCache(), RelationBuildLocalRelation(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), RelationBuildPublicationDesc(), RelationBuildRowSecurity(), RelationBuildRuleLock(), RelationBuildTriggers(), RelationBuildTupleDesc(), RelationCacheInitialize(), RelationCacheInitializePhase2(), RelationCacheInitializePhase3(), RelationGetFKeyList(), RelationGetIdentityKeyBitmap(), RelationGetIndexAttrBitmap(), RelationGetIndexList(), RelationGetStatExtList(), RelationInitIndexAccessInfo(), RelationParseRelOptions(), RememberToFreeTupleDescAtEOX(), SaveCachedPlan(), SearchCatCacheList(), set_schema_sent_in_streamed_txn(), SPI_keepplan(), and UploadManifest().

◆ CurrentMemoryContext

MemoryContext CurrentMemoryContext = NULL

Definition at line 131 of file mcxt.c.

Referenced by _brin_end_parallel(), _bt_load(), _bt_preprocess_array_keys(), _hash_finish_split(), _SPI_commit(), _SPI_rollback(), _SPI_save_plan(), advance_windowaggregate(), advance_windowaggregate_base(), afterTriggerInvokeEvents(), AllocateSnapshotBuilder(), array_agg_array_deserialize(), array_agg_array_finalfn(), array_agg_deserialize(), array_agg_finalfn(), array_positions(), array_to_datum_internal(), AttachPartitionEnsureIndexes(), autovacuum_do_vac_analyze(), basic_archive_shutdown(), be_lo_export(), be_lo_from_bytea(), be_lo_put(), begin_heap_rewrite(), BeginCopyFrom(), BeginCopyTo(), blbuild(), blinsert(), brin_build_desc(), brin_minmax_multi_summary_out(), brin_minmax_multi_union(), brin_new_memtuple(), bringetbitmap(), brininsert(), bt_check_every_level(), btree_xlog_startup(), btvacuumscan(), build_join_rel_hash(), BuildCachedPlan(), BuildParamLogString(), BuildRelationExtStatistics(), CheckForSessionAndXactLocks(), CloneRowTriggersToPartition(), CompactCheckpointerRequestQueue(), compactify_ranges(), CompleteCachedPlan(), compute_array_stats(), compute_expr_stats(), compute_scalar_stats(), compute_tsvector_stats(), ComputeExtStatisticsRows(), CopyCachedPlan(), CopyErrorData(), CopyFrom(), create_toast_table(), CreateCachedPlan(), CreateEmptyBlockRefTable(), CreateExecutorState(), CreateOneShotCachedPlan(), CreatePartitionPruneState(), CreateStandaloneExprContext(), createTempGistContext(), createTrgmNFA(), CreateTriggerFiringOn(), daitch_mokotoff(), daitch_mokotoff_coding(), DatumGetExpandedArray(), DatumGetExpandedArrayX(), DatumGetExpandedRecord(), datumTransfer(), dblink_get_connections(), DiscreteKnapsack(), do_analyze_rel(), do_start_worker(), DoCopyTo(), domain_check_internal(), dsnowball_init(), each_worker(), each_worker_jsonb(), elements_worker(), elements_worker_jsonb(), ensure_free_space_in_buffer(), errsave_start(), EventTriggerInvoke(), examine_expression(), exec_replication_command(), exec_stmt_block(), ExecAggCopyTransValue(), ExecEvalHashedScalarArrayOp(), ExecHashTableCreate(), ExecInitCoerceToDomain(), ExecInitFunctionScan(), ExecInitGatherMerge(), ExecInitIndexScan(), ExecInitMemoize(), ExecInitMergeAppend(), ExecInitModifyTable(), ExecInitProjectSet(), ExecInitRecursiveUnion(), ExecInitSetOp(), ExecInitSubPlan(), ExecInitTableFuncScan(), ExecInitWindowAgg(), ExecMakeTableFunctionResult(), ExecScanSubPlan(), ExecSetParamPlan(), ExecSetupPartitionTupleRouting(), execute_sql_string(), ExecuteTruncateGuts(), ExplainExecuteQuery(), fetch_array_arg_replace_nulls(), file_acquire_sample_rows(), fill_hba_view(), fill_ident_view(), find_all_inheritors(), find_or_create_child_node(), find_partition_scheme(), fmgr_info(), fmgr_info_other_lang(), geqo_eval(), get_actual_variable_range(), get_database_list(), get_json_object_as_hash(), get_subscription_list(), GetCachedExpression(), GetConnection(), GetErrorContextStack(), GetWALRecordsInfo(), GetXLogSummaryStats(), gin_extract_query_trgm(), gin_xlog_startup(), ginbeginscan(), ginbuild(), ginbulkdelete(), gininsert(), ginInsertCleanup(), ginPlaceToPage(), gistbuild(), gistInitBuildBuffers(), gistInitParentMap(), gistvacuumscan(), IdentifySystem(), index_form_tuple(), initBloomState(), initGinState(), initGISTstate(), initialize_brin_buildstate(), initialize_peragg(), InitPartitionPruneContext(), initTrie(), inline_function(), inline_set_returning_function(), intset_create(), json_unique_builder_init(), json_unique_check_init(), libpqrcv_processTuples(), lo_get_fragment_internal(), lo_import_internal(), load_domaintype_info(), load_tzoffsets(), LogicalParallelApplyLoop(), makeIndexInfo(), makeNumericAggStateCurrentContext(), MakeTupleTableSlot(), MemoryContextDeleteOnly(), MemoryContextInit(), MemoryContextSwitchTo(), MJExamineQuals(), multi_sort_add_dimension(), NextCopyFrom(), open_auth_file(), optionListToArray(), palloc(), palloc0(), palloc_aligned(), palloc_extended(), ParallelWorkerMain(), parse_ident(), perform_default_encoding_conversion(), perform_work_item(), pg_buffercache_pages(), pg_do_encoding_conversion(), pg_get_statisticsobjdef_expressions(), pg_get_wal_block_info(), pg_stats_ext_mcvlist_items(), plan_cluster_use_sort(), plan_create_index_workers(), plperl_array_to_datum(), plperl_inline_handler(), plperl_return_next(), plperl_return_next_internal(), plperl_spi_commit(), plperl_spi_exec(), plperl_spi_exec_prepared(), plperl_spi_fetchrow(), plperl_spi_prepare(), plperl_spi_query(), plperl_spi_query_prepared(), plperl_spi_rollback(), plperl_util_elog(), plpgsql_compile_inline(), plpgsql_estate_setup(), plpgsql_inline_handler(), plpgsql_validator(), plpython3_inline_handler(), pltcl_commit(), pltcl_elog(), pltcl_returnnext(), pltcl_rollback(), pltcl_SPI_execute(), pltcl_SPI_execute_plan(), pltcl_SPI_prepare(), pltcl_subtransaction(), PLy_commit(), PLy_cursor_fetch(), PLy_cursor_iternext(), PLy_cursor_plan(), PLy_cursor_query(), PLy_output(), PLy_rollback(), PLy_spi_execute_fetch_result(), PLy_spi_execute_plan(), PLy_spi_execute_query(), PLy_spi_prepare(), PLy_subtransaction_enter(), PLySequence_ToArray(), PLySequence_ToArray_recurse(), populate_array(), populate_recordset_object_start(), PortalRun(), PortalRunMulti(), postgresAcquireSampleRowsFunc(), postquel_start(), pq_parse_errornotice(), preparePresortedCols(), printtup_startup(), prune_append_rel_partitions(), pstrdup(), publicationListToArray(), pull_up_simple_subquery(), RE_compile_and_cache(), regexp_split_to_array(), RelationBuildDesc(), RelationBuildRowSecurity(), ReorderBufferAllocate(), ReorderBufferProcessTXN(), ResetUnloggedRelations(), ResetUnloggedRelationsInDbspaceDir(), RevalidateCachedQuery(), ScanKeyEntryInitializeWithInfo(), serialize_expr_stats(), SerializePendingSyncs(), set_relation_partition_info(), set_rtable_names(), shdepReassignOwned(), shm_mq_attach(), smgr_bulk_start_smgr(), spg_xlog_startup(), spgbeginscan(), spgbuild(), spginsert(), spi_dest_startup(), split_text_accum_result(), standard_ExplainOneQuery(), startScanKey(), StartupDecodingContext(), statext_dependencies_build(), statext_mcv_serialize(), strlist_to_textarray(), sts_attach(), sts_initialize(), subquery_planner(), tbm_create(), test_basic(), test_empty(), test_enc_conversion(), test_pattern(), test_random(), text_to_array(), tokenize_auth_file(), transformGraph(), transformRelOptions(), tsquery_rewrite_query(), tuple_data_split_internal(), tuplesort_begin_cluster(), tuplesort_begin_common(), tuplesort_begin_datum(), tuplesort_begin_heap(), tuplesort_begin_index_btree(), tuplesort_begin_index_gist(), tuplestore_begin_common(), union_tuples(), UploadManifest(), validateForeignKeyConstraint(), write_console(), and xpath().

◆ CurTransactionContext

◆ ErrorContext

◆ mcxt_methods

const MemoryContextMethods mcxt_methods[]
static

Definition at line 41 of file mcxt.c.

Referenced by MemoryContextCreate().

◆ MessageContext

◆ PortalContext

◆ PostmasterContext

◆ TopMemoryContext

MemoryContext TopMemoryContext = NULL

Definition at line 137 of file mcxt.c.

Referenced by _PG_init(), add_reloption(), allocate_reloption(), AllocateAttribute(), AllocSetContextCreateInternal(), ApplyLauncherMain(), AtAbort_Memory(), AtCleanup_Memory(), AtCommit_Memory(), AtStart_Memory(), AttachSession(), BackendInitialize(), BackendMain(), BackgroundWorkerMain(), BackgroundWriterMain(), BaseBackupAddTarget(), basic_archive_startup(), be_tls_open_server(), build_guc_variables(), cache_single_string(), check_foreign_key(), check_primary_key(), CheckMyDatabase(), CheckpointerMain(), ClientAuthentication(), compile_plperl_function(), compile_pltcl_function(), CreateCacheMemoryContext(), CreateWaitEventSet(), dblink_connect(), dblink_init(), DCH_cache_getnew(), do_autovacuum(), do_compile(), dsm_create_descriptor(), dsm_impl_sysv(), EnablePortalManager(), EventTriggerBeginCompleteQuery(), Exec_ListenCommit(), executeDateTimeMethod(), find_plan(), finish_xact_command(), GenerationContextCreate(), GetLocalBufferStorage(), GetLockConflicts(), getmissingattr(), GetNamedDSMSegment(), GetSessionDsmHandle(), HandleParallelApplyMessages(), HandleParallelMessages(), hash_create(), init_missing_cache(), init_string_reloption(), InitDeadLockChecking(), initialize_reloptions(), initialize_target_list(), InitializeClientEncoding(), InitializeLogRepWorker(), InitializeParallelDSM(), InitializeSearchPath(), InitializeSession(), InitializeSystemUser(), InitSync(), InitXLogInsert(), llvm_compile_module(), llvm_create_context(), llvm_session_initialize(), LockAcquireExtended(), logicalrep_launcher_attach_dshmem(), LogicalRepApplyLoop(), LWLockRegisterTranche(), make_icu_collator(), mdinit(), MemoryContextAllocationFailure(), MemoryContextDeleteOnly(), MemoryContextInit(), mxid_to_string(), newLOfd(), NUM_cache_getnew(), on_dsm_detach(), PageSetChecksumCopy(), ParallelWorkerMain(), PerformAuthentication(), pg_backup_start(), pg_get_backend_memory_contexts(), pg_newlocale_from_collation(), pgstat_attach_shmem(), pgstat_prep_pending_entry(), pgstat_prep_snapshot(), pgstat_setup_backend_status_context(), pgstat_setup_memcxt(), plperl_spi_prepare(), plpython3_inline_handler(), plsample_func_handler(), pltcl_SPI_prepare(), PLy_cursor_plan(), PLy_cursor_query(), PLy_procedure_create(), PLy_spi_execute_fetch_result(), PLy_spi_prepare(), populate_typ_list(), PostgresMain(), postmaster_child_launch(), PostmasterMain(), pq_init(), PrepareClientEncoding(), ProcessLogMemoryContextInterrupt(), ProcessStartupPacket(), px_find_cipher(), px_find_digest(), RE_compile_and_cache(), recomputeNamespacePath(), register_label_provider(), RegisterResourceReleaseCallback(), RegisterSubXactCallback(), RegisterXactCallback(), RelationCreateStorage(), RelationDropStorage(), RequestNamedLWLockTranche(), ResourceOwnerCreate(), ResourceOwnerEnlarge(), RestoreClientConnectionInfo(), RestoreReindexState(), ri_HashCompareOp(), roles_is_member_of(), secure_open_gssapi(), sepgsql_avc_init(), sepgsql_xact_callback(), set_authn_id(), SetDatabasePath(), SharedRecordTypmodRegistryAttach(), SharedRecordTypmodRegistryInit(), SlabContextCreate(), SPI_connect_ext(), WalSummarizerMain(), WalWriterMain(), and XLOGShmemInit().

◆ TopTransactionContext