From 347302730dc3092143ccbc1c29b47ac3354f924b Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 3 Mar 2017 22:14:58 -0500
Subject: [PATCH] Fix parsing of DROP SUBSCRIPTION ... DROP SLOT

It didn't actually parse before.

Reported-by: Masahiko Sawada <sawada.mshk@gmail.com>
---
 src/backend/parser/gram.y                  | 10 ++++++----
 src/test/subscription/t/001_rep_changes.pl |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 9713b44223..29fde33b2b 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -9196,11 +9196,13 @@ DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_slot
 		;
 
 opt_drop_slot:
-			IDENT SLOT
+			DROP SLOT
 				{
-					if (strcmp($1, "drop") == 0)
-						$$ = TRUE;
-					else if (strcmp($1, "nodrop") == 0)
+					$$ = TRUE;
+				}
+			| IDENT SLOT
+				{
+					if (strcmp($1, "nodrop") == 0)
 						$$ = FALSE;
 					else
 						ereport(ERROR,
diff --git a/src/test/subscription/t/001_rep_changes.pl b/src/test/subscription/t/001_rep_changes.pl
index fffb3c51be..b81028aed1 100644
--- a/src/test/subscription/t/001_rep_changes.pl
+++ b/src/test/subscription/t/001_rep_changes.pl
@@ -179,7 +179,7 @@ $node_publisher->poll_query_until('postgres',
   or die "Timed out while waiting for apply to restart";
 
 # check all the cleanup
-$node_subscriber->safe_psql('postgres', "DROP SUBSCRIPTION tap_sub_renamed");
+$node_subscriber->safe_psql('postgres', "DROP SUBSCRIPTION tap_sub_renamed DROP SLOT");
 
 $result =
   $node_subscriber->safe_psql('postgres', "SELECT count(*) FROM pg_subscription");
-- 
2.40.0