Convert the arithmetic for shared memory size calculation from 'int'

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 0007490e0964d194a606ba79bb11ae1642da3372
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2005-08-20T23:26:37Z
Releases: 8.1.0
Convert the arithmetic for shared memory size calculation from 'int'
to 'Size' (that is, size_t), and install overflow detection checks in it.
This allows us to remove the former arbitrary restrictions on NBuffers
etc.  It won't make any difference in a 32-bit machine, but in a 64-bit
machine you could theoretically have terabytes of shared buffers.
(How efficiently we could manage 'em remains to be seen.)  Similarly,
num_temp_buffers, work_mem, and maintenance_work_mem can be set above
2Gb on a 64-bit machine.  Original patch from Koichi Suzuki, additional
work by moi.

Files

PathChange+/−
configure modified +416 −0
configure.in modified +4 −1
src/backend/access/transam/clog.c modified +2 −3
src/backend/access/transam/multixact.c modified +11 −4
src/backend/access/transam/slru.c modified +3 −2
src/backend/access/transam/subtrans.c modified +2 −3
src/backend/access/transam/twophase.c modified +12 −5
src/backend/access/transam/xlog.c modified +42 −54
src/backend/commands/vacuumlazy.c modified +6 −6
src/backend/port/sysv_shmem.c modified +12 −12
src/backend/postmaster/bgwriter.c modified +8 −4
src/backend/postmaster/postmaster.c modified +6 −6
src/backend/storage/buffer/buf_init.c modified +12 −9
src/backend/storage/buffer/buf_table.c modified +2 −2
src/backend/storage/buffer/freelist.c modified +5 −5
src/backend/storage/buffer/localbuf.c modified +8 −10
src/backend/storage/freespace/freespace.c modified +11 −14
src/backend/storage/ipc/ipci.c modified +29 −21
src/backend/storage/ipc/pmsignal.c modified +4 −2
src/backend/storage/ipc/procarray.c modified +9 −4
src/backend/storage/ipc/shmem.c modified +40 −3
src/backend/storage/ipc/sinvaladt.c modified +15 −15
src/backend/storage/ipc/sinval.c modified +3 −3
src/backend/storage/lmgr/lock.c modified +9 −8
src/backend/storage/lmgr/lwlock.c modified +8 −7
src/backend/storage/lmgr/proc.c modified +12 −8
src/backend/utils/hash/dynahash.c modified +11 −7
src/backend/utils/misc/guc.c modified +21 −10
src/backend/utils/misc/postgresql.conf.sample modified +1 −1
src/include/access/clog.h modified +2 −2
src/include/access/multixact.h modified +2 −2
src/include/access/slru.h modified +2 −2
src/include/access/subtrans.h modified +2 −2
src/include/access/twophase.h modified +2 −2
src/include/access/xlog.h modified +2 −2
src/include/pg_config.h.in modified +3 −0
src/include/postmaster/bgwriter.h modified +2 −2
src/include/postmaster/postmaster.h modified +2 −2
src/include/storage/buf_internals.h modified +3 −3
src/include/storage/bufmgr.h modified +2 −2
src/include/storage/freespace.h modified +2 −2
src/include/storage/lock.h modified +2 −2
src/include/storage/lwlock.h modified +2 −2
src/include/storage/pg_shmem.h modified +5 −5
src/include/storage/procarray.h modified +2 −2
src/include/storage/proc.h modified +2 −2
src/include/storage/shmem.h modified +3 −2
src/include/storage/sinvaladt.h modified +2 −2
src/include/storage/sinval.h modified +3 −3
src/include/utils/hsearch.h modified +2 −2