pglogical-disable-historic-snapshot.patch
text/x-patch
Filename: pglogical-disable-historic-snapshot.patch
Type: text/x-patch
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| pglogical_output_plugin.c | 13 | 0 |
diff --git a/pglogical_output_plugin.c b/pglogical_output_plugin.c index 9f1bf9c..98aae62 100644 --- a/pglogical_output_plugin.c +++ b/pglogical_output_plugin.c @@ -630,6 +630,10 @@ pglogical_change_filter(PGLogicalOutputData *data, Relation relation, HeapTuple newtup = change->data.tp.newtuple ? &change->data.tp.newtuple->tuple : NULL; #endif +#if PG_VERSION_NUM >= 180000 + Snapshot save_historic_snapshot; + HTAB *save_tuplecids; +#endif /* Skip empty changes. */ if (!newtup && !oldtup) @@ -638,6 +642,12 @@ pglogical_change_filter(PGLogicalOutputData *data, Relation relation, return false; } +#if PG_VERSION_NUM >= 180000 + Assert(HistoricSnapshotActive()); + save_historic_snapshot = GetCatalogSnapshot(InvalidOid); + save_tuplecids = HistoricSnapshotGetTupleCids(); + TeardownHistoricSnapshot(false); +#endif PushActiveSnapshot(GetTransactionSnapshot()); estate = create_estate_for_relation(relation, false); @@ -667,6 +677,9 @@ pglogical_change_filter(PGLogicalOutputData *data, Relation relation, FreeExecutorState(estate); PopActiveSnapshot(); +#if PG_VERSION_NUM >= 180000 + SetupHistoricSnapshot(historic_snapshot, tuplecids); +#endif } /* Make sure caller is aware of any attribute filter. */