summaryrefslogtreecommitdiff
path: root/src/backend/commands/subscriptioncmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/subscriptioncmds.c')
-rw-r--r--src/backend/commands/subscriptioncmds.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index b80af275da5..265f2efd622 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -33,6 +33,8 @@
#include "commands/event_trigger.h"
#include "commands/subscriptioncmds.h"
+#include "executor/executor.h"
+
#include "nodes/makefuncs.h"
#include "replication/logicallauncher.h"
@@ -417,6 +419,10 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel)
relid = RangeVarGetRelid(rv, AccessShareLock, false);
+ /* Check for supported relkind. */
+ CheckSubscriptionRelkind(get_rel_relkind(relid),
+ rv->schemaname, rv->relname);
+
SetSubscriptionRelState(subid, relid, table_state,
InvalidXLogRecPtr);
}
@@ -529,6 +535,11 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data)
Oid relid;
relid = RangeVarGetRelid(rv, AccessShareLock, false);
+
+ /* Check for supported relkind. */
+ CheckSubscriptionRelkind(get_rel_relkind(relid),
+ rv->schemaname, rv->relname);
+
pubrel_local_oids[off++] = relid;
if (!bsearch(&relid, subrel_local_oids,