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 BOGUS_MCTX(id)
 
#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 175 of file mcxt.c.

◆ BOGUS_MCTX

#define BOGUS_MCTX (   id)
Value:
[id].free_p = BogusFree, \
[id].realloc = BogusRealloc, \
[id].get_chunk_context = BogusGetChunkContext, \
[id].get_chunk_space = BogusGetChunkSpace
static void * BogusRealloc(void *pointer, Size size, int flags)
Definition: mcxt.c:293
static Size BogusGetChunkSpace(void *pointer)
Definition: mcxt.c:309
static void BogusFree(void *pointer)
Definition: mcxt.c:286
static MemoryContext BogusGetChunkContext(void *pointer)
Definition: mcxt.c:301

Definition at line 40 of file mcxt.c.

◆ MCXT_METHOD

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

Definition at line 182 of file mcxt.c.

Function Documentation

◆ BogusFree()

static void BogusFree ( void *  pointer)
static

Definition at line 286 of file mcxt.c.

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

References elog, ERROR, and GetMemoryChunkHeader().

◆ BogusGetChunkContext()

static MemoryContext BogusGetChunkContext ( void *  pointer)
static

Definition at line 301 of file mcxt.c.

302 {
303  elog(ERROR, "GetMemoryChunkContext called with invalid pointer %p (header 0x%016llx)",
304  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
305  return NULL; /* keep compiler quiet */
306 }

References elog, ERROR, and GetMemoryChunkHeader().

◆ BogusGetChunkSpace()

static Size BogusGetChunkSpace ( void *  pointer)
static

Definition at line 309 of file mcxt.c.

310 {
311  elog(ERROR, "GetMemoryChunkSpace called with invalid pointer %p (header 0x%016llx)",
312  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
313  return 0; /* keep compiler quiet */
314 }

References elog, ERROR, and GetMemoryChunkHeader().

◆ BogusRealloc()

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

Definition at line 293 of file mcxt.c.

294 {
295  elog(ERROR, "repalloc called with invalid pointer %p (header 0x%016llx)",
296  pointer, (unsigned long long) GetMemoryChunkHeader(pointer));
297  return NULL; /* keep compiler quiet */
298 }

References elog, ERROR, and GetMemoryChunkHeader().

◆ GetMemoryChunkContext()

MemoryContext GetMemoryChunkContext ( void *  pointer)

Definition at line 707 of file mcxt.c.

708 {
709  return MCXT_METHOD(pointer, get_chunk_context) (pointer);
710 }
#define MCXT_METHOD(pointer, method)
Definition: mcxt.c:182

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 220 of file mcxt.c.

221 {
222  uint64 header;
223 
224  /* Allow access to the uint64 header */
225  VALGRIND_MAKE_MEM_DEFINED((char *) pointer - sizeof(uint64), sizeof(uint64));
226 
227  header = *((const uint64 *) ((const char *) pointer - sizeof(uint64)));
228 
229  /* Disallow access to the uint64 header */
230  VALGRIND_MAKE_MEM_NOACCESS((char *) pointer - sizeof(uint64), sizeof(uint64));
231 
232  return header;
233 }
#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 191 of file mcxt.c.

192 {
193  uint64 header;
194 
195  /*
196  * Try to detect bogus pointers handed to us, poorly though we can.
197  * Presumably, a pointer that isn't MAXALIGNED isn't pointing at an
198  * allocated chunk.
199  */
200  Assert(pointer == (const void *) MAXALIGN(pointer));
201 
202  /* Allow access to the uint64 header */
203  VALGRIND_MAKE_MEM_DEFINED((char *) pointer - sizeof(uint64), sizeof(uint64));
204 
205  header = *((const uint64 *) ((const char *) pointer - sizeof(uint64)));
206 
207  /* Disallow access to the uint64 header */
208  VALGRIND_MAKE_MEM_NOACCESS((char *) pointer - sizeof(uint64), sizeof(uint64));
209 
211 }
#define MAXALIGN(LEN)
Definition: c.h:811
#define Assert(condition)
Definition: c.h:858
#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 1272 of file mcxt.c.

1273 {
1274  InterruptPending = true;
1275  LogMemoryContextPending = true;
1276  /* latch will be set by procsignal_sigusr1_handler */
1277 }
volatile sig_atomic_t LogMemoryContextPending
Definition: globals.c:40
volatile sig_atomic_t InterruptPending
Definition: globals.c:31

References InterruptPending, and LogMemoryContextPending.

Referenced by procsignal_sigusr1_handler().

◆ MemoryContextAlloc()

void* MemoryContextAlloc ( MemoryContext  context,
Size  size 
)

Definition at line 1181 of file mcxt.c.

1182 {
1183  void *ret;
1184 
1187 
1188  context->isReset = false;
1189 
1190  /*
1191  * For efficiency reasons, we purposefully offload the handling of
1192  * allocation failures to the MemoryContextMethods implementation as this
1193  * allows these checks to be performed only when an actual malloc needs to
1194  * be done to request more memory from the OS. Additionally, not having
1195  * to execute any instructions after this call allows the compiler to use
1196  * the sibling call optimization. If you're considering adding code after
1197  * this call, consider making it the responsibility of the 'alloc'
1198  * function instead.
1199  */
1200  ret = context->methods->alloc(context, size, 0);
1201 
1203 
1204  return ret;
1205 }
#define AssertNotInCriticalSection(context)
Definition: mcxt.c:175
#define VALGRIND_MEMPOOL_ALLOC(context, addr, size)
Definition: memdebug.h:29
#define MemoryContextIsValid(context)
Definition: memnodes.h:145
tree context
Definition: radixtree.h:1835
static pg_noinline void Size size
Definition: slab.c:607

References Assert, AssertNotInCriticalSection, context, MemoryContextIsValid, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by _bt_getroot(), _bt_getrootheight(), _bt_metaversion(), _bt_preprocess_keys(), _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(), RT_ALLOC_LEAF(), RT_ALLOC_NODE(), setop_fill_hash_table(), setup_background_workers(), shm_mq_receive(), SnapBuildPurgeOlderTxn(), SPI_connect_ext(), SPI_palloc(), StoreIndexTuple(), 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 1409 of file mcxt.c.

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

1148 {
1149  if ((flags & MCXT_ALLOC_NO_OOM) == 0)
1150  {
1151  if (TopMemoryContext)
1153  ereport(ERROR,
1154  (errcode(ERRCODE_OUT_OF_MEMORY),
1155  errmsg("out of memory"),
1156  errdetail("Failed on request of size %zu in memory context \"%s\".",
1157  size, context->name)));
1158  }
1159  return NULL;
1160 }
int errdetail(const char *fmt,...)
Definition: elog.c:1203
int errcode(int sqlerrcode)
Definition: elog.c:853
int errmsg(const char *fmt,...)
Definition: elog.c:1070
#define ereport(elevel,...)
Definition: elog.h:149
#define MCXT_ALLOC_NO_OOM
Definition: fe_memutils.h:17
MemoryContext TopMemoryContext
Definition: mcxt.c:149
void MemoryContextStats(MemoryContext context)
Definition: mcxt.c:814

References context, ereport, errcode(), errdetail(), errmsg(), ERROR, MCXT_ALLOC_NO_OOM, MemoryContextStats(), size, and TopMemoryContext.

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

◆ MemoryContextAllocExtended()

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

Definition at line 1238 of file mcxt.c.

1239 {
1240  void *ret;
1241 
1244 
1245  if (!((flags & MCXT_ALLOC_HUGE) != 0 ? AllocHugeSizeIsValid(size) :
1247  elog(ERROR, "invalid memory alloc request size %zu", size);
1248 
1249  context->isReset = false;
1250 
1251  ret = context->methods->alloc(context, size, flags);
1252  if (unlikely(ret == NULL))
1253  return NULL;
1254 
1256 
1257  if ((flags & MCXT_ALLOC_ZERO) != 0)
1258  MemSetAligned(ret, 0, size);
1259 
1260  return ret;
1261 }
#define MemSetAligned(start, val, len)
Definition: c.h:1050
#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 AllocHugeSizeIsValid, AllocSizeIsValid, Assert, AssertNotInCriticalSection, context, elog, ERROR, MCXT_ALLOC_HUGE, MCXT_ALLOC_ZERO, MemoryContextIsValid, MemSetAligned, 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 1640 of file mcxt.c.

1641 {
1642  void *ret;
1643 
1646 
1647  context->isReset = false;
1648 
1649  /*
1650  * For efficiency reasons, we purposefully offload the handling of
1651  * allocation failures to the MemoryContextMethods implementation as this
1652  * allows these checks to be performed only when an actual malloc needs to
1653  * be done to request more memory from the OS. Additionally, not having
1654  * to execute any instructions after this call allows the compiler to use
1655  * the sibling call optimization. If you're considering adding code after
1656  * this call, consider making it the responsibility of the 'alloc'
1657  * function instead.
1658  */
1659  ret = context->methods->alloc(context, size, MCXT_ALLOC_HUGE);
1660 
1662 
1663  return ret;
1664 }

References Assert, AssertNotInCriticalSection, context, MCXT_ALLOC_HUGE, MemoryContextIsValid, 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 1215 of file mcxt.c.

1216 {
1217  void *ret;
1218 
1221 
1222  context->isReset = false;
1223 
1224  ret = context->methods->alloc(context, size, 0);
1225 
1227 
1228  MemSetAligned(ret, 0, size);
1229 
1230  return ret;
1231 }

References Assert, AssertNotInCriticalSection, context, MemoryContextIsValid, MemSetAligned, size, and VALGRIND_MEMPOOL_ALLOC.

Referenced by add_tabstat_xact_level(), AllocateAttribute(), array_set_element_expanded(), AttrDefaultFetch(), 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(), json_populate_type(), 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(), RehashCatCacheLists(), RelationBuildPartitionDesc(), RelationBuildPartitionKey(), RelationBuildRowSecurity(), RelationBuildTupleDesc(), RelationInitIndexAccessInfo(), ReorderBufferCopySnap(), ReorderBufferIterTXNInit(), ReorderBufferRestoreChange(), ResourceOwnerCreate(), ResourceOwnerEnlarge(), RT_BEGIN_ITERATE(), satisfies_hash_partition(), SearchCatCacheList(), 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 694 of file mcxt.c.

695 {
697 
698  context->allowInCritSection = allow;
699 }

References Assert, context, and MemoryContextIsValid.

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

◆ MemoryContextCallResetCallbacks()

static void MemoryContextCallResetCallbacks ( MemoryContext  context)
static

Definition at line 585 of file mcxt.c.

586 {
588 
589  /*
590  * We pop each callback from the list before calling. That way, if an
591  * error occurs inside the callback, we won't try to call it a second time
592  * in the likely event that we reset or delete the context later.
593  */
594  while ((cb = context->reset_cbs) != NULL)
595  {
596  context->reset_cbs = cb->next;
597  cb->func(cb->arg);
598  }
599 }
struct MemoryContextCallback * next
Definition: palloc.h:51
MemoryContextCallbackFunction func
Definition: palloc.h:49

References MemoryContextCallback::arg, context, MemoryContextCallback::func, and MemoryContextCallback::next.

Referenced by MemoryContextDeleteOnly(), and MemoryContextResetOnly().

◆ MemoryContextCreate()

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

Definition at line 1100 of file mcxt.c.

1105 {
1106  /* Creating new memory contexts is not allowed in a critical section */
1107  Assert(CritSectionCount == 0);
1108 
1109  /* Initialize all standard fields of memory context header */
1110  node->type = tag;
1111  node->isReset = true;
1112  node->methods = &mcxt_methods[method_id];
1113  node->parent = parent;
1114  node->firstchild = NULL;
1115  node->mem_allocated = 0;
1116  node->prevchild = NULL;
1117  node->name = name;
1118  node->ident = NULL;
1119  node->reset_cbs = NULL;
1120 
1121  /* OK to link node into context tree */
1122  if (parent)
1123  {
1124  node->nextchild = parent->firstchild;
1125  if (parent->firstchild != NULL)
1126  parent->firstchild->prevchild = node;
1127  parent->firstchild = node;
1128  /* inherit allowInCritSection flag from parent */
1129  node->allowInCritSection = parent->allowInCritSection;
1130  }
1131  else
1132  {
1133  node->nextchild = NULL;
1134  node->allowInCritSection = false;
1135  }
1136 
1137  VALGRIND_CREATE_MEMPOOL(node, 0, false);
1138 }
volatile uint32 CritSectionCount
Definition: globals.c:44
static const MemoryContextMethods mcxt_methods[]
Definition: mcxt.c:46
#define VALGRIND_CREATE_MEMPOOL(context, redzones, zeroed)
Definition: memdebug.h:24
MemoryContext prevchild
Definition: memnodes.h:129
MemoryContext firstchild
Definition: memnodes.h:128
bool allowInCritSection
Definition: memnodes.h:124
const char * ident
Definition: memnodes.h:132
MemoryContext parent
Definition: memnodes.h:127
MemoryContextCallback * reset_cbs
Definition: memnodes.h:133
const MemoryContextMethods * methods
Definition: memnodes.h:126
MemoryContext nextchild
Definition: memnodes.h:130
const char * name
Definition: memnodes.h:131
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(), BumpContextCreate(), GenerationContextCreate(), and SlabContextCreate().

◆ MemoryContextDelete()

void MemoryContextDelete ( MemoryContext  context)

Definition at line 454 of file mcxt.c.

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

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

Referenced by _brin_parallel_merge(), AfterTriggerEndXact(), afterTriggerInvokeEvents(), ApplyLauncherMain(), AtEOSubXact_SPI(), AtEOXact_LargeObject(), AtSubCleanup_Memory(), AtSubCommit_Memory(), AttachPartitionEnsureIndexes(), autovacuum_do_vac_analyze(), AutoVacWorkerMain(), AuxiliaryProcessMainCommon(), BackgroundWorkerMain(), 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(), serializeAnalyzeShutdown(), shdepReassignOwned(), shutdown_MultiFuncCall(), spg_xlog_cleanup(), spgbuild(), spgendscan(), spginsert(), SPI_finish(), SPI_freeplan(), SPI_freetuptable(), statext_dependencies_build(), strlist_to_textarray(), SysLoggerMain(), test_pattern(), TidStoreDestroy(), tokenize_auth_file(), tuplesort_end(), tuplestore_end(), union_tuples(), UploadManifest(), and validateForeignKeyConstraint().

◆ MemoryContextDeleteChildren()

void MemoryContextDeleteChildren ( MemoryContext  context)

Definition at line 539 of file mcxt.c.

540 {
542 
543  /*
544  * MemoryContextDelete will delink the child from me, so just iterate as
545  * long as there is a child.
546  */
547  while (context->firstchild != NULL)
548  MemoryContextDelete(context->firstchild);
549 }
void MemoryContextDelete(MemoryContext context)
Definition: mcxt.c:454

References Assert, context, 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 496 of file mcxt.c.

497 {
499  /* We had better not be deleting TopMemoryContext ... */
501  /* And not CurrentMemoryContext, either */
503  /* All the children should've been deleted already */
504  Assert(context->firstchild == NULL);
505 
506  /*
507  * It's not entirely clear whether 'tis better to do this before or after
508  * delinking the context; but an error in a callback will likely result in
509  * leaking the whole context (if it's not a root context) if we do it
510  * after, so let's do it before.
511  */
513 
514  /*
515  * We delink the context from its parent before deleting it, so that if
516  * there's an error we won't have deleted/busted contexts still attached
517  * to the context tree. Better a leak than a crash.
518  */
520 
521  /*
522  * Also reset the context's ident pointer, in case it points into the
523  * context. This would only matter if someone tries to get stats on the
524  * (already unlinked) context, which is unlikely, but let's be safe.
525  */
526  context->ident = NULL;
527 
528  context->methods->delete_context(context);
529 
531 }
static void MemoryContextCallResetCallbacks(MemoryContext context)
Definition: mcxt.c:585
void MemoryContextSetParent(MemoryContext context, MemoryContext new_parent)
Definition: mcxt.c:637
MemoryContext CurrentMemoryContext
Definition: mcxt.c:143
#define VALGRIND_DESTROY_MEMPOOL(context)
Definition: memdebug.h:25

References Assert, context, CurrentMemoryContext, MemoryContextCallResetCallbacks(), MemoryContextIsValid, MemoryContextSetParent(), TopMemoryContext, and VALGRIND_DESTROY_MEMPOOL.

Referenced by MemoryContextDelete().

◆ MemoryContextGetParent()

MemoryContext MemoryContextGetParent ( MemoryContext  context)

◆ MemoryContextInit()

void MemoryContextInit ( void  )

Definition at line 339 of file mcxt.c.

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

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

Referenced by main().

◆ MemoryContextIsEmpty()

bool MemoryContextIsEmpty ( MemoryContext  context)

Definition at line 743 of file mcxt.c.

744 {
746 
747  /*
748  * For now, we consider a memory context nonempty if it has any children;
749  * perhaps this should be changed later.
750  */
751  if (context->firstchild != NULL)
752  return false;
753  /* Otherwise use the type-specific inquiry */
754  return context->methods->is_empty(context);
755 }

References Assert, context, and MemoryContextIsValid.

Referenced by AtSubCommit_Memory().

◆ MemoryContextMemAllocated()

Size MemoryContextMemAllocated ( MemoryContext  context,
bool  recurse 
)

Definition at line 762 of file mcxt.c.

763 {
764  Size total = context->mem_allocated;
765 
767 
768  if (recurse)
769  {
770  for (MemoryContext curr = context->firstchild;
771  curr != NULL;
772  curr = MemoryContextTraverseNext(curr, context))
773  {
774  total += curr->mem_allocated;
775  }
776  }
777 
778  return total;
779 }
static MemoryContext MemoryContextTraverseNext(MemoryContext curr, MemoryContext top)
Definition: mcxt.c:257

References Assert, context, MemoryContextIsValid, and MemoryContextTraverseNext().

Referenced by hash_agg_check_limits(), hash_agg_update_metrics(), and RT_MEMORY_USAGE().

◆ MemoryContextMemConsumed()

void MemoryContextMemConsumed ( MemoryContext  context,
MemoryContextCounters consumed 
)

Definition at line 786 of file mcxt.c.

788 {
790 
791  memset(consumed, 0, sizeof(*consumed));
792 
793  /* Examine the context itself */
794  context->methods->stats(context, NULL, NULL, consumed, false);
795 
796  /* Examine children, using iteration not recursion */
797  for (MemoryContext curr = context->firstchild;
798  curr != NULL;
799  curr = MemoryContextTraverseNext(curr, context))
800  {
801  curr->methods->stats(curr, NULL, NULL, consumed, false);
802  }
803 }

References Assert, context, MemoryContextIsValid, and MemoryContextTraverseNext().

Referenced by ExplainExecuteQuery(), and standard_ExplainOneQuery().

◆ MemoryContextRegisterResetCallback()

void MemoryContextRegisterResetCallback ( MemoryContext  context,
MemoryContextCallback cb 
)

Definition at line 568 of file mcxt.c.

570 {
572 
573  /* Push onto head so this will be called before older registrants. */
574  cb->next = context->reset_cbs;
575  context->reset_cbs = cb;
576  /* Mark the context as non-reset (it probably is already). */
577  context->isReset = false;
578 }

References Assert, context, MemoryContextIsValid, and MemoryContextCallback::next.

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 383 of file mcxt.c.

384 {
386 
387  /* save a function call in common case where there are no children */
388  if (context->firstchild != NULL)
390 
391  /* save a function call if no pallocs since startup or last reset */
392  if (!context->isReset)
394 }
void MemoryContextDeleteChildren(MemoryContext context)
Definition: mcxt.c:539
void MemoryContextResetOnly(MemoryContext context)
Definition: mcxt.c:402

References Assert, context, MemoryContextDeleteChildren(), MemoryContextIsValid, and MemoryContextResetOnly().

Referenced by _brin_parallel_merge(), _bt_preprocess_array_keys(), _SPI_end_call(), AfterTriggerExecute(), apply_spooled_messages(), AtCleanup_Memory(), AtCommit_Memory(), AtEOSubXact_SPI(), AtSubCleanup_Memory(), BackgroundWriterMain(), 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(), pgarch_archiveXlog(), 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(), RT_FREE(), scanPendingInsert(), sepgsql_avc_reset(), serializeAnalyzeReceive(), spcache_init(), spg_redo(), spginsert(), spgistBuildCallback(), spgWalk(), startScanKey(), statext_dependencies_build(), storeRow(), stream_stop_internal(), tfuncFetchRows(), tfuncLoadRows(), tuplesort_free(), tuplestore_clear(), validateForeignKeyConstraint(), WalSummarizerMain(), and WalWriterMain().

◆ MemoryContextResetChildren()

void MemoryContextResetChildren ( MemoryContext  context)

Definition at line 433 of file mcxt.c.

434 {
436 
437  for (MemoryContext curr = context->firstchild;
438  curr != NULL;
439  curr = MemoryContextTraverseNext(curr, context))
440  {
442  }
443 }

References Assert, context, MemoryContextIsValid, MemoryContextResetOnly(), and MemoryContextTraverseNext().

◆ MemoryContextResetOnly()

void MemoryContextResetOnly ( MemoryContext  context)

Definition at line 402 of file mcxt.c.

403 {
405 
406  /* Nothing to do if no pallocs since startup or last reset */
407  if (!context->isReset)
408  {
410 
411  /*
412  * If context->ident points into the context's memory, it will become
413  * a dangling pointer. We could prevent that by setting it to NULL
414  * here, but that would break valid coding patterns that keep the
415  * ident elsewhere, e.g. in a parent context. So for now we assume
416  * the programmer got it right.
417  */
418 
419  context->methods->reset(context);
420  context->isReset = true;
422  VALGRIND_CREATE_MEMPOOL(context, 0, false);
423  }
424 }

References Assert, context, MemoryContextCallResetCallbacks(), MemoryContextIsValid, VALGRIND_CREATE_MEMPOOL, and VALGRIND_DESTROY_MEMPOOL.

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

◆ MemoryContextSetIdentifier()

◆ MemoryContextSetParent()

void MemoryContextSetParent ( MemoryContext  context,
MemoryContext  new_parent 
)

Definition at line 637 of file mcxt.c.

638 {
640  Assert(context != new_parent);
641 
642  /* Fast path if it's got correct parent already */
643  if (new_parent == context->parent)
644  return;
645 
646  /* Delink from existing parent, if any */
647  if (context->parent)
648  {
649  MemoryContext parent = context->parent;
650 
651  if (context->prevchild != NULL)
652  context->prevchild->nextchild = context->nextchild;
653  else
654  {
655  Assert(parent->firstchild == context);
656  parent->firstchild = context->nextchild;
657  }
658 
659  if (context->nextchild != NULL)
660  context->nextchild->prevchild = context->prevchild;
661  }
662 
663  /* And relink */
664  if (new_parent)
665  {
666  Assert(MemoryContextIsValid(new_parent));
667  context->parent = new_parent;
668  context->prevchild = NULL;
669  context->nextchild = new_parent->firstchild;
670  if (new_parent->firstchild != NULL)
671  new_parent->firstchild->prevchild = context;
672  new_parent->firstchild = context;
673  }
674  else
675  {
676  context->parent = NULL;
677  context->prevchild = NULL;
678  context->nextchild = NULL;
679  }
680 }

References Assert, context, MemoryContextData::firstchild, MemoryContextIsValid, 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 1168 of file mcxt.c.

1169 {
1170  elog(ERROR, "invalid memory alloc request size %zu", size);
1171 }

References elog, ERROR, and size.

Referenced by MemoryContextCheckSize().

◆ MemoryContextStats()

void MemoryContextStats ( MemoryContext  context)

Definition at line 814 of file mcxt.c.

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

References context, and MemoryContextStatsDetail().

Referenced by AllocSetContextCreateInternal(), BumpContextCreate(), 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 829 of file mcxt.c.

832 {
833  MemoryContextCounters grand_totals;
834 
835  memset(&grand_totals, 0, sizeof(grand_totals));
836 
837  MemoryContextStatsInternal(context, 0, max_level, max_children,
838  &grand_totals, print_to_stderr);
839 
840  if (print_to_stderr)
841  fprintf(stderr,
842  "Grand total: %zu bytes in %zu blocks; %zu free (%zu chunks); %zu used\n",
843  grand_totals.totalspace, grand_totals.nblocks,
844  grand_totals.freespace, grand_totals.freechunks,
845  grand_totals.totalspace - grand_totals.freespace);
846  else
847  {
848  /*
849  * Use LOG_SERVER_ONLY to prevent the memory contexts from being sent
850  * to the connected client.
851  *
852  * We don't buffer the information about all memory contexts in a
853  * backend into StringInfo and log it as one message. That would
854  * require the buffer to be enlarged, risking an OOM as there could be
855  * a large number of memory contexts in a backend. Instead, we log
856  * one message per memory context.
857  */
859  (errhidestmt(true),
860  errhidecontext(true),
861  errmsg_internal("Grand total: %zu bytes in %zu blocks; %zu free (%zu chunks); %zu used",
862  grand_totals.totalspace, grand_totals.nblocks,
863  grand_totals.freespace, grand_totals.freechunks,
864  grand_totals.totalspace - grand_totals.freespace)));
865  }
866 }
int errmsg_internal(const char *fmt,...)
Definition: elog.c:1157
int errhidestmt(bool hide_stmt)
Definition: elog.c:1411
int errhidecontext(bool hide_ctx)
Definition: elog.c:1430
#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:876
#define fprintf
Definition: port.h:242

References context, 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 876 of file mcxt.c.

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

References Assert, context, ereport, errhidecontext(), errhidestmt(), errmsg_internal(), 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 973 of file mcxt.c.

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

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

Referenced by MemoryContextStatsInternal().

◆ MemoryContextStrdup()

◆ MemoryContextTraverseNext()

static MemoryContext MemoryContextTraverseNext ( MemoryContext  curr,
MemoryContext  top 
)
static

Definition at line 257 of file mcxt.c.

258 {
259  /* After processing a node, traverse to its first child if any */
260  if (curr->firstchild != NULL)
261  return curr->firstchild;
262 
263  /*
264  * After processing a childless node, traverse to its next sibling if
265  * there is one. If there isn't, traverse back up to the parent (which
266  * has already been visited, and now so have all its descendants). We're
267  * done if that is "top", otherwise traverse to its next sibling if any,
268  * otherwise repeat moving up.
269  */
270  while (curr->nextchild == NULL)
271  {
272  curr = curr->parent;
273  if (curr == top)
274  return NULL;
275  }
276  return curr->nextchild;
277 }

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

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

◆ palloc()

void* palloc ( Size  size)

Definition at line 1317 of file mcxt.c.

1318 {
1319  /* duplicates MemoryContextAlloc to avoid increased overhead */
1320  void *ret;
1322 
1325 
1326  context->isReset = false;
1327 
1328  /*
1329  * For efficiency reasons, we purposefully offload the handling of
1330  * allocation failures to the MemoryContextMethods implementation as this
1331  * allows these checks to be performed only when an actual malloc needs to
1332  * be done to request more memory from the OS. Additionally, not having
1333  * to execute any instructions after this call allows the compiler to use
1334  * the sibling call optimization. If you're considering adding code after
1335  * this call, consider making it the responsibility of the 'alloc'
1336  * function instead.
1337  */
1338  ret = context->methods->alloc(context, size, 0);
1339  /* We expect OOM to be handled by the alloc function */
1340  Assert(ret != NULL);
1342 
1343  return ret;
1344 }

References Assert, AssertNotInCriticalSection, context, CurrentMemoryContext, MemoryContextIsValid, 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_normalize_tuple(), 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_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(), CopyLimitPrintoutLength(), 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_format_has_tz(), 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(), ExecBitmapHeapRetrieveInstrumentation(), ExecComputeStoredGenerated(), ExecEvalArrayExpr(), ExecGather(), ExecGatherMerge(), ExecGetJsonValueItemString(), ExecHashJoinGetSavedTuple(), ExecHashRetrieveInstrumentation(), ExecIncrementalSortRetrieveInstrumentation(), ExecIndexBuildScanKeys(), ExecInitAgg(), ExecInitAppend(), ExecInitCoerceToDomain(), ExecInitExprRec(), ExecInitFunctionScan(), ExecInitIndexOnlyScan(), ExecInitIndexScan(), ExecInitJsonExpr(), 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(), GetJsonPathVar(), getKeyJsonValueFromContainer(), GetLockStatusData(), GetMultiXactIdMembers(), GetPermutation(), GetPredicateLockStatusData(), GetPreparedTransactionList(), GetPublication(), getQuadrantArea(), getRangeBox(), GetRunningTransactionLocks(), GetSQLCurrentTime(), GetSubscription(), GetSubscriptionRelations(), gettoken_tsvector(), GetUserMapping(), GetVirtualXIDsDelayingChkpt(), GetWaitEventCustomNames(), 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_list_to_array(), 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_parse_manifest_incremental_init(), json_unique_object_start(), jsonb_agg_transfn_worker(), jsonb_object_agg_transfn_worker(), jsonb_object_keys(), jsonb_ops__add_path_item(), JsonbDeepContains(), JsonbValueToJsonb(), JsonEncodeDateTime(), JsonTableInitOpaque(), JumbleQuery(), lca(), leafRepackItems(), leftmostvalue_interval(), leftmostvalue_timetz(), LexizeAddLemm(), libpqrcv_readtimelinehistoryfile(), like_fixed_prefix(), 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(), main(), 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(), makeJsonLexContextIncremental(), 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(), 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_parse_json(), pg_parse_json_incremental(), 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_stream_begin_impl(), 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(), RememberManyTestResources(), RememberSyncRequest(), RememberToFreeTupleDescAtEOX(), remove_dbtablespaces(), 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(), secure_open_server(), 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 1347 of file mcxt.c.

1348 {
1349  /* duplicates MemoryContextAllocZero to avoid increased overhead */
1350  void *ret;
1352 
1355 
1356  context->isReset = false;
1357 
1358  ret = context->methods->alloc(context, size, 0);
1359 
1361 
1362  MemSetAligned(ret, 0, size);
1363 
1364  return ret;
1365 }

References Assert, AssertNotInCriticalSection, context, CurrentMemoryContext, MemoryContextIsValid, MemSetAligned, 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_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(), ATAddCheckConstraint(), 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(), BuildEventTriggerCache(), buildint2vector(), buildNSItemFromLists(), buildNSItemFromTupleDesc(), buildoidvector(), calc_rank_and(), calc_rank_cd(), calc_word_similarity(), calculate_partition_bound_for_merge(), check_hba(), check_ident_usermap(), check_partitions_for_split(), 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(), CreateExplainSerializeDestReceiver(), CreateFakeRelcacheEntry(), CreateIncrementalBackupInfo(), CreateIntoRelDestReceiver(), CreateOneShotCachedPlan(), CreateParallelContext(), createSplitPartitionContext(), 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(), ExecInitJsonExpr(), 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(), JsonTableInitOpaque(), JsonTableInitPlan(), 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(), makeJsonLexContextIncremental(), 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_parse_json(), 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(), serialize_prepare_info(), 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_create(), test_rls_hooks_permissive(), test_rls_hooks_restrictive(), testdelete(), testprs_start(), text_name(), thesaurus_init(), TidExprListCreate(), TidStoreAttach(), TidStoreBeginIterate(), TidStoreCreateLocal(), TidStoreCreateShared(), 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 1511 of file mcxt.c.

1512 {
1513  return MemoryContextAllocAligned(CurrentMemoryContext, size, alignto, flags);
1514 }
void * MemoryContextAllocAligned(MemoryContext context, Size size, Size alignto, int flags)
Definition: mcxt.c:1409

References CurrentMemoryContext, MemoryContextAllocAligned(), and size.

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

◆ palloc_extended()

void* palloc_extended ( Size  size,
int  flags 
)

Definition at line 1368 of file mcxt.c.

1369 {
1370  /* duplicates MemoryContextAllocExtended to avoid increased overhead */
1371  void *ret;
1373 
1376 
1377  context->isReset = false;
1378 
1379  ret = context->methods->alloc(context, size, flags);
1380  if (unlikely(ret == NULL))
1381  {
1382  return NULL;
1383  }
1384 
1386 
1387  if ((flags & MCXT_ALLOC_ZERO) != 0)
1388  MemSetAligned(ret, 0, size);
1389 
1390  return ret;
1391 }

References Assert, AssertNotInCriticalSection, context, CurrentMemoryContext, MCXT_ALLOC_ZERO, MemoryContextIsValid, MemSetAligned, 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 1521 of file mcxt.c.

1522 {
1523 #ifdef USE_VALGRIND
1526 #endif
1527 
1528  MCXT_METHOD(pointer, free_p) (pointer);
1529 
1530 #ifdef USE_VALGRIND
1531  if (method != MCTX_ALIGNED_REDIRECT_ID)
1532  VALGRIND_MEMPOOL_FREE(context, pointer);
1533 #endif
1534 }
static MemoryContextMethodID GetMemoryChunkMethodID(const void *pointer)
Definition: mcxt.c:191
MemoryContext GetMemoryChunkContext(void *pointer)
Definition: mcxt.c:707
#define VALGRIND_MEMPOOL_FREE(context, addr)
Definition: memdebug.h:30

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

Referenced by _brin_parallel_merge(), _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_preprocess_array_keys(), _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(), 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(), calculate_partition_bound_for_merge(), 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_partitions_for_split(), check_publications_origin(), check_relation_privileges(), check_schema_perms(), check_search_path(), check_synchronized_standby_slots(), check_temp_tablespaces(), check_timezone(), check_wal_consistency_checking(), CheckAffix(), CheckAlterSubOption(), 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_format_has_tz(), 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(), deleteSplitPartitionContext(), 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(), 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_child_join_sjinfo(), 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_object_field_start(), json_manifest_scalar(), json_object(), json_object_keys(), json_object_two_arg(), json_parse_manifest_incremental_shutdown(), json_unique_object_end(), json_unique_object_field_start(), jsonb_object(), jsonb_object_two_arg(), jsonb_set_element(), JsonbDeepContains(), JsonbValue_to_SV(), JsonItemFromDatum(), 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(), NextCopyFrom(), 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(), read_stream_end(), 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(), RehashCatCacheLists(), reindex_one_database(), ReinitializeParallelDSM(), RelationBuildPartitionKey(), RelationBuildPublicationDesc(), RelationBuildRowSecurity(), RelationBuildRuleLock(), RelationBuildTriggers(), RelationBuildTupleDesc(), RelationCacheInitializePhase3(), RelationClearRelation(), RelationDestroyRelation(), RelationGetDummyIndexExpressions(), RelationGetIndexAttOptions(), RelationGetIndexExpressions(), RelationGetIndexPredicate(), RelationInvalidateRelation(), RelationParseRelOptions(), RelationPreserveStorage(), RelationReloadIndexInfo(), ReleaseDummy(), ReleaseManyTestResource(), relmap_redo(), remove_cache_entry(), remove_dbtablespaces(), remove_rel_from_query(), 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(), RT_END_ITERATE(), RT_FREE_LEAF(), RT_FREE_NODE(), run_ssl_passphrase_command(), scanPendingInsert(), scram_verify_plain_password(), secure_open_server(), 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(), serialize_prepare_info(), serializeAnalyzeDestroy(), serializeAnalyzeShutdown(), 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_destroy(), 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(), TidStoreDestroy(), TidStoreDetach(), TidStoreEndIterate(), 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_end(), tuplestore_skiptuples(), tuplestore_trim(), typenameTypeMod(), unaccent_dict(), uniqueentry(), uniqueWORD(), unistr(), UnregisterExprContextCallback(), UnregisterResourceReleaseCallback(), UnregisterSubXactCallback(), UnregisterXactCallback(), updateAclDependenciesWorker(), 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 1289 of file mcxt.c.

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

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 1696 of file mcxt.c.

1697 {
1699 }
char * MemoryContextStrdup(MemoryContext context, const char *string)
Definition: mcxt.c:1683

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(), ATPrepSetNotNull(), 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_synchronized_standby_slots(), 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(), CopyLimitPrintoutLength(), 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(), generateJsonTablePathName(), 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(), GetJsonBehaviorValueString(), getNamespaces(), getObjectIdentityParts(), getOpFamilyIdentity(), GetPublication(), getRecoveryStopReason(), getRelationIdentity(), GetSubscription(), getTokenTypes(), GetUserNameFromId(), GetWaitEventCustomNames(), HandleParallelApplyMessage(), HandleParallelMessage(), HandlePgArchInterrupts(), heap_vacuum_rel(), hstore_out(), ImportForeignSchema(), indent_lines(), init_sql_fcache(), injection_points_attach(), internal_yylex(), interpret_AS_clause(), interpret_function_parameter_list(), interval_out(), isn_out(), iterate_values_object_field_start(), JsonbUnquote(), JsonTableInitOpaque(), 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(), 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(), makeJsonTablePathSpec(), 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_parse_json_incremental(), 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(), 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_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(), transformJsonTableColumn(), transformJsonTableColumns(), 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 1541 of file mcxt.c.

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

References Assert, AssertNotInCriticalSection, context, GetMemoryChunkContext(), GetMemoryChunkMethodID(), 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(), do_set_block_offsets(), 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(), inc_lex_level(), 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_initcap(), str_tolower(), str_toupper(), 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 1619 of file mcxt.c.

1620 {
1621  void *ret;
1622 
1623  /* catch wrong argument order */
1624  if (unlikely(oldsize > size))
1625  elog(ERROR, "invalid repalloc0 call: oldsize %zu, new size %zu",
1626  oldsize, size);
1627 
1628  ret = repalloc(pointer, size);
1629  memset((char *) ret + oldsize, 0, (size - oldsize));
1630  return ret;
1631 }
void * repalloc(void *pointer, Size size)
Definition: mcxt.c:1541

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

◆ repalloc_extended()

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

Definition at line 1582 of file mcxt.c.

1583 {
1584 #if defined(USE_ASSERT_CHECKING) || defined(USE_VALGRIND)
1586 #endif
1587  void *ret;
1588 
1590 
1591  /* isReset must be false already */
1592  Assert(!context->isReset);
1593 
1594  /*
1595  * For efficiency reasons, we purposefully offload the handling of
1596  * allocation failures to the MemoryContextMethods implementation as this
1597  * allows these checks to be performed only when an actual malloc needs to
1598  * be done to request more memory from the OS. Additionally, not having
1599  * to execute any instructions after this call allows the compiler to use
1600  * the sibling call optimization. If you're considering adding code after
1601  * this call, consider making it the responsibility of the 'realloc'
1602  * function instead.
1603  */
1604  ret = MCXT_METHOD(pointer, realloc) (pointer, size, flags);
1605  if (unlikely(ret == NULL))
1606  return NULL;
1607 
1608  VALGRIND_MEMPOOL_CHANGE(context, pointer, ret, size);
1609 
1610  return ret;
1611 }

References Assert, AssertNotInCriticalSection, context, GetMemoryChunkContext(), 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 1672 of file mcxt.c.

1673 {
1674  /* this one seems not worth its own implementation */
1675  return repalloc_extended(pointer, size, MCXT_ALLOC_HUGE);
1676 }
void * repalloc_extended(void *pointer, Size size, int flags)
Definition: mcxt.c:1582

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 152 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(), RehashCatCacheLists(), 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 143 of file mcxt.c.

Referenced by _brin_parallel_merge(), _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(), AtStart_Memory(), AtSubStart_Memory(), AttachPartitionEnsureIndexes(), autovacuum_do_vac_analyze(), 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(), JsonTableInitOpaque(), 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_backend_memory_contexts(), 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(), serializeAnalyzeStartup(), 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(), TidStoreCreateLocal(), TidStoreCreateShared(), 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 46 of file mcxt.c.

Referenced by MemoryContextCreate().

◆ MessageContext

◆ PortalContext

◆ PostmasterContext

◆ TopMemoryContext

MemoryContext TopMemoryContext = NULL

Definition at line 149 of file mcxt.c.

Referenced by _PG_init(), AbortOutOfAnyTransaction(), add_reloption(), allocate_reloption(), AllocateAttribute(), AllocSetContextCreateInternal(), ApplyLauncherMain(), AtAbort_Memory(), AtStart_Memory(), AttachSession(), BackendInitialize(), BackendMain(), BackgroundWorkerMain(), BackgroundWriterMain(), BaseBackupAddTarget(), be_tls_open_server(), build_guc_variables(), BumpContextCreate(), 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(), injection_points_attach(), injection_points_detach(), 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(), PgArchiverMain(), 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(), test_create(), WalSummarizerMain(), WalWriterMain(), and XLOGShmemInit().

◆ TopTransactionContext