Hi, On 29/09/18 03:35, Andres Freund wrote: > > How come those two functions return oids, even though, as far as I > understand, the underlying relation is BKI_WITHOUT_OIDS. I assume > that's just an oversight? >
Yeah, it's copy-pasto that managed to get through, those functions should return void. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
From 6ca65097d08244308c264975db4b7b843751d40f Mon Sep 17 00:00:00 2001 From: Petr Jelinek <pjmo...@pjmodos.net> Date: Mon, 1 Oct 2018 15:19:26 +0200 Subject: [PATCH] Fix return value of subscription-relation mapping manipulation functions These functions manipulate catalog which does not have oids so don't try to return them from those functions. --- src/backend/catalog/pg_subscription.c | 14 +++----------- src/include/catalog/pg_subscription_rel.h | 4 ++-- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/backend/catalog/pg_subscription.c b/src/backend/catalog/pg_subscription.c index f891ff8054..077701fde0 100644 --- a/src/backend/catalog/pg_subscription.c +++ b/src/backend/catalog/pg_subscription.c @@ -236,13 +236,12 @@ textarray_to_stringlist(ArrayType *textarray) /* * Add new state record for a subscription table. */ -Oid +void AddSubscriptionRelState(Oid subid, Oid relid, char state, XLogRecPtr sublsn) { Relation rel; HeapTuple tup; - Oid subrelid; bool nulls[Natts_pg_subscription_rel]; Datum values[Natts_pg_subscription_rel]; @@ -272,26 +271,23 @@ AddSubscriptionRelState(Oid subid, Oid relid, char state, tup = heap_form_tuple(RelationGetDescr(rel), values, nulls); /* Insert tuple into catalog. */ - subrelid = CatalogTupleInsert(rel, tup); + CatalogTupleInsert(rel, tup); heap_freetuple(tup); /* Cleanup. */ heap_close(rel, NoLock); - - return subrelid; } /* * Update the state of a subscription table. */ -Oid +void UpdateSubscriptionRelState(Oid subid, Oid relid, char state, XLogRecPtr sublsn) { Relation rel; HeapTuple tup; - Oid subrelid; bool nulls[Natts_pg_subscription_rel]; Datum values[Natts_pg_subscription_rel]; bool replaces[Natts_pg_subscription_rel]; @@ -328,12 +324,8 @@ UpdateSubscriptionRelState(Oid subid, Oid relid, char state, /* Update the catalog. */ CatalogTupleUpdate(rel, &tup->t_self, tup); - subrelid = HeapTupleGetOid(tup); - /* Cleanup. */ heap_close(rel, NoLock); - - return subrelid; } /* diff --git a/src/include/catalog/pg_subscription_rel.h b/src/include/catalog/pg_subscription_rel.h index 556cb94841..88f004a8e9 100644 --- a/src/include/catalog/pg_subscription_rel.h +++ b/src/include/catalog/pg_subscription_rel.h @@ -67,9 +67,9 @@ typedef struct SubscriptionRelState char state; } SubscriptionRelState; -extern Oid AddSubscriptionRelState(Oid subid, Oid relid, char state, +extern void AddSubscriptionRelState(Oid subid, Oid relid, char state, XLogRecPtr sublsn); -extern Oid UpdateSubscriptionRelState(Oid subid, Oid relid, char state, +extern void UpdateSubscriptionRelState(Oid subid, Oid relid, char state, XLogRecPtr sublsn); extern char GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn, bool missing_ok); -- 2.17.1