Remove deprecated syntax from CREATE/DROP LANGUAGE
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 11 Jun 2020 08:26:12 +0000 (10:26 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 11 Jun 2020 08:26:12 +0000 (10:26 +0200)
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
doc/src/sgml/ref/drop_language.sgml
src/backend/parser/gram.y

index 44d14c0ba72556591f08d8343cd513a08aad3c68..10d1533d6d8c98e4dbb9030557c3599af5dc061a 100644 (file)
@@ -110,11 +110,6 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE <replaceable class="pa
        The name of the new procedural language.
        The name must be unique among the languages in the database.
       </para>
-
-      <para>
-       For backward compatibility, the name can be enclosed by single
-       quotes.
-      </para>
      </listitem>
     </varlistentry>
 
index 976f3a0ce1a5d3c0b32d2ad7a605a88026f92931..4705836ac79e811f35e74ed750102835b3b1acdc 100644 (file)
@@ -63,8 +63,7 @@ DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] <replaceable class="parameter">name</
     <term><replaceable class="parameter">name</replaceable></term>
     <listitem>
      <para>
-      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.
      </para>
     </listitem>
    </varlistentry>
index 6797d550cd0cb4789a0d2bd238187b4cf2df0080..0f0f7a328b7dce0f3ae7abc9a9128d46455369d8 100644 (file)
@@ -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;