diff --git a/src/postgres_deparse.c b/src/postgres_deparse.c index e076c95e..6c6290b7 100644 --- a/src/postgres_deparse.c +++ b/src/postgres_deparse.c @@ -8617,7 +8617,7 @@ static void deparseFetchStmt(StringInfo str, FetchStmt *fetch_stmt) appendStringInfo(str, "RELATIVE %ld ", fetch_stmt->howMany); } - appendStringInfoString(str, fetch_stmt->portalname); + appendStringInfoString(str, quote_identifier(fetch_stmt->portalname)); } static void deparseAlterDefaultPrivilegesStmt(StringInfo str, AlterDefaultPrivilegesStmt *alter_default_privileges_stmt) diff --git a/test/deparse_tests.c b/test/deparse_tests.c index 09445b45..03fd88f2 100644 --- a/test/deparse_tests.c +++ b/test/deparse_tests.c @@ -407,7 +407,9 @@ const char* tests[] = { "ALTER TABLE a DISABLE TRIGGER ALL", "ALTER TABLE a DISABLE TRIGGER USER", "CREATE INDEX myindex ON public.mytable USING btree (col1, (col2::varchar) varchar_pattern_ops)", - "SELECT * FROM CAST(1 AS text)" + "SELECT * FROM CAST(1 AS text)", + "DECLARE \"Foo1\" SCROLL CURSOR FOR SELECT * FROM tenk1 ORDER BY unique2", + "FETCH BACKWARD 23 \"Foo1\"" }; size_t testsLength = __LINE__ - 4;