1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-27 23:21:58 +03:00

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
This commit is contained in:
Andres Freund
2018-10-16 09:44:43 -07:00
parent c015ccb306
commit 02a30a09f9
11 changed files with 32 additions and 31 deletions

View File

@ -899,7 +899,7 @@ int
SPI_fnumber(TupleDesc tupdesc, const char *fname)
{
int res;
Form_pg_attribute sysatt;
const FormData_pg_attribute *sysatt;
for (res = 0; res < tupdesc->natts; res++)
{
@ -921,7 +921,7 @@ SPI_fnumber(TupleDesc tupdesc, const char *fname)
char *
SPI_fname(TupleDesc tupdesc, int fnumber)
{
Form_pg_attribute att;
const FormData_pg_attribute *att;
SPI_result = 0;