Update dummy CREATE ASSERTION grammar
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 26 Sep 2018 11:26:24 +0000 (13:26 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 26 Sep 2018 11:26:24 +0000 (13:26 +0200)
While we are probably still far away from fully implementing
assertions, all patch proposals appear to take issue with the existing
dummy grammar CREATE/DROP ASSERTION productions, so update those a
little bit.  Rename the rule, use any_name instead of name, and remove
some unused code.  Also remove the production for DROP ASSERTION,
since that would most likely be handled via the generic DROP support.

extracted from a patch by Joe Wildish

src/backend/parser/gram.y

index 4bd2223f267ce1d652d69d0e4920196798841188..d41eecd5bd59e803c22b11368b591c877e23165f 100644 (file)
@@ -259,11 +259,11 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
        CreateOpFamilyStmt AlterOpFamilyStmt CreatePLangStmt
        CreateSchemaStmt CreateSeqStmt CreateStmt CreateStatsStmt CreateTableSpaceStmt
        CreateFdwStmt CreateForeignServerStmt CreateForeignTableStmt
-       CreateAssertStmt CreateTransformStmt CreateTrigStmt CreateEventTrigStmt
+       CreateAssertionStmt CreateTransformStmt CreateTrigStmt CreateEventTrigStmt
        CreateUserStmt CreateUserMappingStmt CreateRoleStmt CreatePolicyStmt
        CreatedbStmt DeclareCursorStmt DefineStmt DeleteStmt DiscardStmt DoStmt
        DropOpClassStmt DropOpFamilyStmt DropPLangStmt DropStmt
-       DropAssertStmt DropCastStmt DropRoleStmt
+       DropCastStmt DropRoleStmt
        DropdbStmt DropTableSpaceStmt
        DropTransformStmt
        DropUserMappingStmt ExplainStmt FetchStmt
@@ -860,7 +860,7 @@ stmt :
            | CopyStmt
            | CreateAmStmt
            | CreateAsStmt
-           | CreateAssertStmt
+           | CreateAssertionStmt
            | CreateCastStmt
            | CreateConversionStmt
            | CreateDomainStmt
@@ -896,7 +896,6 @@ stmt :
            | DeleteStmt
            | DiscardStmt
            | DoStmt
-           | DropAssertStmt
            | DropCastStmt
            | DropOpClassStmt
            | DropOpFamilyStmt
@@ -5639,43 +5638,19 @@ enable_trigger:
 
 /*****************************************************************************
  *
- *     QUERIES :
+ *     QUERY :
  *             CREATE ASSERTION ...
- *             DROP ASSERTION ...
  *
  *****************************************************************************/
 
-CreateAssertStmt:
-           CREATE ASSERTION name CHECK '(' a_expr ')'
-           ConstraintAttributeSpec
+CreateAssertionStmt:
+           CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec
                {
-                   CreateTrigStmt *n = makeNode(CreateTrigStmt);
-                   n->trigname = $3;
-                   n->args = list_make1($6);
-                   n->isconstraint  = true;
-                   processCASbits($8, @8, "ASSERTION",
-                                  &n->deferrable, &n->initdeferred, NULL,
-                                  NULL, yyscanner);
-
                    ereport(ERROR,
                            (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                             errmsg("CREATE ASSERTION is not yet implemented")));
 
-                   $$ = (Node *)n;
-               }
-       ;
-
-DropAssertStmt:
-           DROP ASSERTION name opt_drop_behavior
-               {
-                   DropStmt *n = makeNode(DropStmt);
-                   n->objects = NIL;
-                   n->behavior = $4;
-                   n->removeType = OBJECT_TRIGGER; /* XXX */
-                   ereport(ERROR,
-                           (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                            errmsg("DROP ASSERTION is not yet implemented")));
-                   $$ = (Node *) n;
+                   $$ = NULL;
                }
        ;