aboutsummaryrefslogtreecommitdiff
path: root/src/backend/catalog/pg_subscription.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/catalog/pg_subscription.c')
-rw-r--r--src/backend/catalog/pg_subscription.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/backend/catalog/pg_subscription.c b/src/backend/catalog/pg_subscription.c
index 311d46225ad..ca78d395181 100644
--- a/src/backend/catalog/pg_subscription.c
+++ b/src/backend/catalog/pg_subscription.c
@@ -328,20 +328,16 @@ UpdateSubscriptionRelState(Oid subid, Oid relid, char state,
/*
* Get state of subscription table.
*
- * Returns SUBREL_STATE_UNKNOWN when not found and missing_ok is true.
+ * Returns SUBREL_STATE_UNKNOWN when the table is not in the subscription.
*/
char
-GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn,
- bool missing_ok)
+GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn)
{
- Relation rel;
HeapTuple tup;
char substate;
bool isnull;
Datum d;
- rel = table_open(SubscriptionRelRelationId, AccessShareLock);
-
/* Try finding the mapping. */
tup = SearchSysCache2(SUBSCRIPTIONRELMAP,
ObjectIdGetDatum(relid),
@@ -349,22 +345,14 @@ GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn,
if (!HeapTupleIsValid(tup))
{
- if (missing_ok)
- {
- table_close(rel, AccessShareLock);
- *sublsn = InvalidXLogRecPtr;
- return SUBREL_STATE_UNKNOWN;
- }
-
- elog(ERROR, "subscription table %u in subscription %u does not exist",
- relid, subid);
+ *sublsn = InvalidXLogRecPtr;
+ return SUBREL_STATE_UNKNOWN;
}
/* Get the state. */
- d = SysCacheGetAttr(SUBSCRIPTIONRELMAP, tup,
- Anum_pg_subscription_rel_srsubstate, &isnull);
- Assert(!isnull);
- substate = DatumGetChar(d);
+ substate = ((Form_pg_subscription_rel) GETSTRUCT(tup))->srsubstate;
+
+ /* Get the LSN */
d = SysCacheGetAttr(SUBSCRIPTIONRELMAP, tup,
Anum_pg_subscription_rel_srsublsn, &isnull);
if (isnull)
@@ -374,7 +362,6 @@ GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn,
/* Cleanup */
ReleaseSysCache(tup);
- table_close(rel, AccessShareLock);
return substate;
}