]> granicus.if.org Git - postgresql/commit
Reorder pg_sequence columns to avoid alignment issue
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 21 Dec 2016 17:00:00 +0000 (12:00 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 21 Dec 2016 14:06:49 +0000 (09:06 -0500)
commitf3b421da5f4addc95812b9db05a24972b8fd9739
tree89a189a33e6eb712353b5f6397dd728a54d2d9e9
parentecbdc4c555f43b1ac284c734752b00c2ea6f277b
Reorder pg_sequence columns to avoid alignment issue

On AIX, doubles are aligned at 4 bytes, but int64 is aligned at 8 bytes.
Our code assumes that doubles have alignment that can also be applied to
int64, but that fails in this case.  One effect is that
heap_form_tuple() writes tuples in a different layout than
Form_pg_sequence expects.

Rather than rewrite the whole alignment code, work around the issue by
reordering the columns in pg_sequence so that the first int64 column
naturally comes out at an 8-byte boundary.
doc/src/sgml/catalogs.sgml
src/backend/commands/sequence.c
src/include/catalog/catversion.h
src/include/catalog/pg_sequence.h