CreateAssertionStmt CreateTransformStmt CreateTrigStmt CreateEventTrigStmt
CreateUserStmt CreateUserMappingStmt CreateRoleStmt CreatePolicyStmt
CreatedbStmt DeclareCursorStmt DefineStmt DeleteStmt DiscardStmt DoStmt
- DropOpClassStmt DropOpFamilyStmt DropPLangStmt DropStmt
+ DropOpClassStmt DropOpFamilyStmt DropStmt
DropCastStmt DropRoleStmt
DropdbStmt DropTableSpaceStmt
DropTransformStmt
| DropOpClassStmt
| DropOpFamilyStmt
| DropOwnedStmt
- | DropPLangStmt
| DropStmt
| DropSubscriptionStmt
| DropTableSpaceStmt
| /*EMPTY*/ { $$ = NIL; }
;
-DropPLangStmt:
- DROP opt_procedural LANGUAGE name opt_drop_behavior
- {
- DropStmt *n = makeNode(DropStmt);
- n->removeType = OBJECT_LANGUAGE;
- n->objects = list_make1(makeString($4));
- n->behavior = $5;
- n->missing_ok = false;
- n->concurrent = false;
- $$ = (Node *)n;
- }
- | DROP opt_procedural LANGUAGE IF_P EXISTS name opt_drop_behavior
- {
- DropStmt *n = makeNode(DropStmt);
- n->removeType = OBJECT_LANGUAGE;
- n->objects = list_make1(makeString($6));
- n->behavior = $7;
- n->missing_ok = true;
- n->concurrent = false;
- $$ = (Node *)n;
- }
- ;
-
opt_procedural:
PROCEDURAL {}
| /*EMPTY*/ {}
| EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; }
| EXTENSION { $$ = OBJECT_EXTENSION; }
| FOREIGN DATA_P WRAPPER { $$ = OBJECT_FDW; }
+ | opt_procedural LANGUAGE { $$ = OBJECT_LANGUAGE; }
| PUBLICATION { $$ = OBJECT_PUBLICATION; }
| SCHEMA { $$ = OBJECT_SCHEMA; }
| SERVER { $$ = OBJECT_FOREIGN_SERVER; }