aboutsummaryrefslogtreecommitdiff
path: root/src/backend/replication/pgoutput/pgoutput.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/replication/pgoutput/pgoutput.c')
-rw-r--r--src/backend/replication/pgoutput/pgoutput.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c
index 86e0951a700..dc07420fa10 100644
--- a/src/backend/replication/pgoutput/pgoutput.c
+++ b/src/backend/replication/pgoutput/pgoutput.c
@@ -269,8 +269,12 @@ maybe_send_schema(LogicalDecodingContext *ctx,
desc = RelationGetDescr(relation);
/*
- * Write out type info if needed. We do that only for user created
- * types.
+ * Write out type info if needed. We do that only for user-created
+ * types. We use FirstBootstrapObjectId as the cutoff, so that we only
+ * consider objects with hand-assigned OIDs to be "built in", not for
+ * instance any function or type defined in the information_schema.
+ * This is important because only hand-assigned OIDs can be expected
+ * to remain stable across major versions.
*/
for (i = 0; i < desc->natts; i++)
{
@@ -279,7 +283,7 @@ maybe_send_schema(LogicalDecodingContext *ctx,
if (att->attisdropped)
continue;
- if (att->atttypid < FirstNormalObjectId)
+ if (att->atttypid < FirstBootstrapObjectId)
continue;
OutputPluginPrepareWrite(ctx, false);