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;
                                }
                ;