Use repalloc_huge() to enlarge a SPITupleTable's tuple pointer array.
Commit 23a27b039d94ba35 widened the rows-stored counters to uint64, but that's academic unless we allow the tuple pointer array to exceed 1GB. (It might be a good idea to provide some other limit on how much storage a SPITupleTable can eat. On the other hand, there are plenty of other ways to drive a backend into swap hell.) Dagfinn Ilmari Mannsåker
This commit is contained in:
parent
3adf9ced17
commit
74a379b984
@ -1800,7 +1800,7 @@ spi_printtup(TupleTableSlot *slot, DestReceiver *self)
|
||||
/* Double the size of the pointer array */
|
||||
tuptable->free = tuptable->alloced;
|
||||
tuptable->alloced += tuptable->free;
|
||||
tuptable->vals = (HeapTuple *) repalloc(tuptable->vals,
|
||||
tuptable->vals = (HeapTuple *) repalloc_huge(tuptable->vals,
|
||||
tuptable->alloced * sizeof(HeapTuple));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user