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
This commit is contained in:
parent
a3d2844852
commit
a49ceda6a0
@ -259,11 +259,11 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
|
|||||||
CreateOpFamilyStmt AlterOpFamilyStmt CreatePLangStmt
|
CreateOpFamilyStmt AlterOpFamilyStmt CreatePLangStmt
|
||||||
CreateSchemaStmt CreateSeqStmt CreateStmt CreateStatsStmt CreateTableSpaceStmt
|
CreateSchemaStmt CreateSeqStmt CreateStmt CreateStatsStmt CreateTableSpaceStmt
|
||||||
CreateFdwStmt CreateForeignServerStmt CreateForeignTableStmt
|
CreateFdwStmt CreateForeignServerStmt CreateForeignTableStmt
|
||||||
CreateAssertStmt CreateTransformStmt CreateTrigStmt CreateEventTrigStmt
|
CreateAssertionStmt CreateTransformStmt CreateTrigStmt CreateEventTrigStmt
|
||||||
CreateUserStmt CreateUserMappingStmt CreateRoleStmt CreatePolicyStmt
|
CreateUserStmt CreateUserMappingStmt CreateRoleStmt CreatePolicyStmt
|
||||||
CreatedbStmt DeclareCursorStmt DefineStmt DeleteStmt DiscardStmt DoStmt
|
CreatedbStmt DeclareCursorStmt DefineStmt DeleteStmt DiscardStmt DoStmt
|
||||||
DropOpClassStmt DropOpFamilyStmt DropPLangStmt DropStmt
|
DropOpClassStmt DropOpFamilyStmt DropPLangStmt DropStmt
|
||||||
DropAssertStmt DropCastStmt DropRoleStmt
|
DropCastStmt DropRoleStmt
|
||||||
DropdbStmt DropTableSpaceStmt
|
DropdbStmt DropTableSpaceStmt
|
||||||
DropTransformStmt
|
DropTransformStmt
|
||||||
DropUserMappingStmt ExplainStmt FetchStmt
|
DropUserMappingStmt ExplainStmt FetchStmt
|
||||||
@ -860,7 +860,7 @@ stmt :
|
|||||||
| CopyStmt
|
| CopyStmt
|
||||||
| CreateAmStmt
|
| CreateAmStmt
|
||||||
| CreateAsStmt
|
| CreateAsStmt
|
||||||
| CreateAssertStmt
|
| CreateAssertionStmt
|
||||||
| CreateCastStmt
|
| CreateCastStmt
|
||||||
| CreateConversionStmt
|
| CreateConversionStmt
|
||||||
| CreateDomainStmt
|
| CreateDomainStmt
|
||||||
@ -896,7 +896,6 @@ stmt :
|
|||||||
| DeleteStmt
|
| DeleteStmt
|
||||||
| DiscardStmt
|
| DiscardStmt
|
||||||
| DoStmt
|
| DoStmt
|
||||||
| DropAssertStmt
|
|
||||||
| DropCastStmt
|
| DropCastStmt
|
||||||
| DropOpClassStmt
|
| DropOpClassStmt
|
||||||
| DropOpFamilyStmt
|
| DropOpFamilyStmt
|
||||||
@ -5639,43 +5638,19 @@ enable_trigger:
|
|||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* QUERIES :
|
* QUERY :
|
||||||
* CREATE ASSERTION ...
|
* CREATE ASSERTION ...
|
||||||
* DROP ASSERTION ...
|
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
CreateAssertStmt:
|
CreateAssertionStmt:
|
||||||
CREATE ASSERTION name CHECK '(' a_expr ')'
|
CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec
|
||||||
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,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
errmsg("CREATE ASSERTION is not yet implemented")));
|
errmsg("CREATE ASSERTION is not yet implemented")));
|
||||||
|
|
||||||
$$ = (Node *)n;
|
$$ = NULL;
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user