• Noah Misch's avatar
    Permit super-MaxAllocSize allocations with MemoryContextAllocHuge(). · 263865a4
    Noah Misch authored
    The MaxAllocSize guard is convenient for most callers, because it
    reduces the need for careful attention to overflow, data type selection,
    and the SET_VARSIZE() limit.  A handful of callers are happy to navigate
    those hazards in exchange for the ability to allocate a larger chunk.
    Introduce MemoryContextAllocHuge() and repalloc_huge().  Use this in
    tuplesort.c and tuplestore.c, enabling internal sorts of up to INT_MAX
    tuples, a factor-of-48 increase.  In particular, B-tree index builds can
    now benefit from much-larger maintenance_work_mem settings.
    
    Reviewed by Stephen Frost, Simon Riggs and Jeff Janes.
    263865a4
tuplesort.h 4.67 KB