From 51dd4e3050a02643ff70c0574db6f697c9ee141f Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 25 Apr 2016 10:28:31 +0300 Subject: [PATCH] Fix ALTER TABLE so that the array type gets the same OID in all segments. The out/readfuncs.c support for AlterTableStmt.comptypeArrayOid was missing. Because of that, the segments didn't get the OID of the composite type's array type from master, and allocated it on their own. --- src/backend/nodes/outfuncs.c | 1 + src/backend/nodes/readfast.c | 1 + src/backend/nodes/readfuncs.c | 1 + 3 files changed, 3 insertions(+) diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 6a5c5b0571..67dc43cb60 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -2525,6 +2525,7 @@ _outAlterTableStmt(StringInfo str, AlterTableStmt *node) { WRITE_OID_FIELD(oidInfo[m].relOid); WRITE_OID_FIELD(oidInfo[m].comptypeOid); + WRITE_OID_FIELD(oidInfo[m].comptypeArrayOid); WRITE_OID_FIELD(oidInfo[m].toastOid); WRITE_OID_FIELD(oidInfo[m].toastIndexOid); WRITE_OID_FIELD(oidInfo[m].toastComptypeOid); diff --git a/src/backend/nodes/readfast.c b/src/backend/nodes/readfast.c index f7caffcef1..acb24e80ed 100644 --- a/src/backend/nodes/readfast.c +++ b/src/backend/nodes/readfast.c @@ -568,6 +568,7 @@ _readAlterTableStmt(void) { READ_OID_FIELD(oidInfo[m].relOid); READ_OID_FIELD(oidInfo[m].comptypeOid); + READ_OID_FIELD(oidInfo[m].comptypeArrayOid); READ_OID_FIELD(oidInfo[m].toastOid); READ_OID_FIELD(oidInfo[m].toastIndexOid); READ_OID_FIELD(oidInfo[m].toastComptypeOid); diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 79e2f9d118..6b48090ac1 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -1077,6 +1077,7 @@ _readAlterTableStmt(void) { READ_OID_FIELD(oidInfo[m].relOid); READ_OID_FIELD(oidInfo[m].comptypeOid); + READ_OID_FIELD(oidInfo[m].comptypeArrayOid); READ_OID_FIELD(oidInfo[m].toastOid); READ_OID_FIELD(oidInfo[m].toastIndexOid); READ_OID_FIELD(oidInfo[m].toastComptypeOid); -- GitLab