Change data type of counters in BufferUsage and WalUsage from long to int64.
authorFujii Masao <fujii@postgresql.org>
Wed, 12 May 2021 00:56:34 +0000 (09:56 +0900)
committerFujii Masao <fujii@postgresql.org>
Wed, 12 May 2021 00:56:34 +0000 (09:56 +0900)
commitd780d7c0882fe9a385102b292907baaceb505ed0
tree9fc46f92f6202c999dcab79b5a13c6187e2845e1
parent0bf62931cae0db1294937eb9190b183494af4cf8
Change data type of counters in BufferUsage and WalUsage from long to int64.

Previously long was used as the data type for some counters in BufferUsage
and WalUsage. But long is only four byte, e.g., on Windows, and it's entirely
possible to wrap a four byte counter. For example, emitting more than
four billion WAL records in one transaction isn't actually particularly rare.

To avoid the overflows of those counters, this commit changes the data type
of them from long to int64.

Suggested-by: Andres Freund
Author: Masahiro Ikeda
Reviewed-by: Fujii Masao
Discussion: http://postgr.es/m/20201221211650.k7b53tcnadrciqjo@alap3.anarazel.de
Discussion: http://postgr.es/m/af0964ac-7080-1984-dc23-513754987716@oss.nttdata.com
src/backend/access/heap/vacuumlazy.c
src/backend/commands/explain.c
src/include/executor/instrument.h