aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2018-09-26 13:26:24 +0200
committerPeter Eisentraut <peter_e@gmx.net>2018-09-26 13:26:24 +0200
commita49ceda6a044c2fc104b3d1397fe0bef8679d1aa (patch)
treec7a7a4de9cf21709076f8f441d993aa506a33dc8
parenta3d2844852dc664718320b15cbc6d6bfa264e66e (diff)
downloadpostgresql-a49ceda6a044c2fc104b3d1397fe0bef8679d1aa.tar.gz
postgresql-a49ceda6a044c2fc104b3d1397fe0bef8679d1aa.zip
Update dummy CREATE ASSERTION grammar
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
-rw-r--r--src/backend/parser/gram.y39
1 files changed, 7 insertions, 32 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 4bd2223f267..d41eecd5bd5 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -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;
}
;