From 5333e014ab943b201fe71cfaf409419c204f36be Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 11 Jun 2020 10:26:12 +0200 Subject: [PATCH] Remove deprecated syntax from CREATE/DROP LANGUAGE Remove the option to specify the language name as a single-quoted string. This has been obsolete since ee8ed85da3b. Removing it allows better grammar refactoring. The syntax of the CREATE FUNCTION LANGUAGE clause is not changed. Discussion: https://www.postgresql.org/message-id/flat/163c00a5-f634-ca52-fc7c-0e53deda8735%402ndquadrant.com --- doc/src/sgml/ref/create_language.sgml | 5 ----- doc/src/sgml/ref/drop_language.sgml | 3 +-- src/backend/parser/gram.y | 8 ++++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/doc/src/sgml/ref/create_language.sgml b/doc/src/sgml/ref/create_language.sgml index 44d14c0ba72..10d1533d6d8 100644 --- a/doc/src/sgml/ref/create_language.sgml +++ b/doc/src/sgml/ref/create_language.sgml @@ -110,11 +110,6 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE namename - The name of an existing procedural language. For backward - compatibility, the name can be enclosed by single quotes. + The name of an existing procedural language. diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 6797d550cd0..0f0f7a328b7 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -4346,7 +4346,7 @@ NumericOnly_list: NumericOnly { $$ = list_make1($1); } *****************************************************************************/ CreatePLangStmt: - CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE NonReservedWord_or_Sconst + CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name { /* * We now interpret parameterless CREATE LANGUAGE as @@ -4361,7 +4361,7 @@ CreatePLangStmt: n->options = NIL; $$ = (Node *)n; } - | CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE NonReservedWord_or_Sconst + | CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name HANDLER handler_name opt_inline_handler opt_validator { CreatePLangStmt *n = makeNode(CreatePLangStmt); @@ -4405,7 +4405,7 @@ opt_validator: ; DropPLangStmt: - DROP opt_procedural LANGUAGE NonReservedWord_or_Sconst opt_drop_behavior + DROP opt_procedural LANGUAGE name opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; @@ -4415,7 +4415,7 @@ DropPLangStmt: n->concurrent = false; $$ = (Node *)n; } - | DROP opt_procedural LANGUAGE IF_P EXISTS NonReservedWord_or_Sconst opt_drop_behavior + | DROP opt_procedural LANGUAGE IF_P EXISTS name opt_drop_behavior { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE;