]> granicus.if.org Git - postgresql/commit
Correct constness of system attributes in heap.c & prerequisites.
authorAndres Freund <andres@anarazel.de>
Tue, 16 Oct 2018 16:44:43 +0000 (09:44 -0700)
committerAndres Freund <andres@anarazel.de>
Tue, 16 Oct 2018 16:44:43 +0000 (09:44 -0700)
commit02a30a09f9e57a29f7bda82f5f4bfc214eed3980
tree7e47acc68b2ddfcc4d45dbd723f5ea9b31c3e0d5
parentc015ccb306ec81bca3023818c9cf0113cae25be1
Correct constness of system attributes in heap.c & prerequisites.

This allows the compiler / linker to mark affected pages as read-only.

There's a fair number of pre-requisite changes, to allow the const
properly be propagated. Most of consts were already required for
correctness anyway, just not represented on the type-level.  Arguably
we could be more aggressive in using consts in related code, but..

This requires using a few of the types underlying typedefs that
removes pointers (e.g. const NameData *) as declaring the typedefed
type constant doesn't have the same meaning (it makes the variable
const, not what it points to).

Discussion: https://postgr.es/m/20181015200754.7y7zfuzsoux2c4ya@alap3.anarazel.de
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/executor/spi.c
src/backend/optimizer/util/plancat.c
src/backend/parser/parse_relation.c
src/backend/parser/parse_utilcmd.c
src/backend/utils/adt/expandedrecord.c
src/backend/utils/adt/name.c
src/include/catalog/heap.h
src/include/parser/parse_relation.h
src/include/utils/builtins.h