diff options
Diffstat (limited to 'src/backend/replication/pgoutput/pgoutput.c')
-rw-r--r-- | src/backend/replication/pgoutput/pgoutput.c | 10 |
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); |