Skip to content

Commit f8d8266

Browse files
author
Michael Meskes
committed
Synced parser.
1 parent 1a7c6ee commit f8d8266

File tree

2 files changed

+70
-36
lines changed

2 files changed

+70
-36
lines changed

src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1319,3 +1319,8 @@ Fri Nov 15 16:46:08 CET 2002
13191319
Wed Nov 27 09:28:54 CET 2002
13201320

13211321
- Synced preproc.y with gram.y.
1322+
1323+
Tue Jan 21 20:50:58 CET 2003
1324+
1325+
- Set ecpg version to 2.11.0.
1326+
- Synced preproc.y with gram.y.

src/interfaces/ecpg/preproc/preproc.y

Lines changed: 65 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.205 2002/12/13 20:29:07 momjian Exp $ */
1+
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.206 2003/01/21 20:01:12 meskes Exp $ */
22

33
/* Copyright comment */
44
%{
@@ -290,7 +290,7 @@ make_name(void)
290290
%type <str> comment_text ConstraintDeferrabilitySpec TableElementList
291291
%type <str> key_match ColLabel SpecialRuleRelation ColId columnDef
292292
%type <str> ColConstraint ColConstraintElem drop_type Bconst
293-
%type <str> TableConstraint OptTableElementList Xconst
293+
%type <str> TableConstraint OptTableElementList Xconst opt_transaction
294294
%type <str> ConstraintElem key_actions ColQualList type_name
295295
%type <str> target_list target_el update_target_list alias_clause
296296
%type <str> update_target_el opt_id qualified_name database_name
@@ -303,7 +303,7 @@ make_name(void)
303303
%type <str> Typename SimpleTypename Numeric opt_float opt_numeric
304304
%type <str> opt_decimal Character character opt_varying opt_charset
305305
%type <str> opt_collate opt_timezone opt_interval table_ref
306-
%type <str> row_descriptor ConstDatetime trans_options
306+
%type <str> row_descriptor ConstDatetime AlterDomainStmt
307307
%type <str> SelectStmt into_clause OptTemp ConstraintAttributeSpec
308308
%type <str> opt_table opt_all sort_clause sortby_list ConstraintAttr
309309
%type <str> sortby OptUseOp qualified_name_list name_list ColId_or_Sconst
@@ -329,7 +329,7 @@ make_name(void)
329329
%type <str> RemoveOperStmt RenameStmt all_Op opt_Trusted opt_lancompiler
330330
%type <str> VariableSetStmt var_value zone_value VariableShowStmt
331331
%type <str> VariableResetStmt AlterTableStmt from_list overlay_list
332-
%type <str> opt_trans user_list OptUserList OptUserElem relation_name
332+
%type <str> user_list OptUserList OptUserElem relation_name
333333
%type <str> CreateUserStmt AlterUserStmt CreateSeqStmt OptSeqList
334334
%type <str> OptSeqElem TriggerForSpec TriggerForOpt TriggerForType
335335
%type <str> DropTrigStmt TriggerOneEvent TriggerEvents RuleActionStmt
@@ -339,6 +339,7 @@ make_name(void)
339339
%type <str> createdb_opt_list opt_encoding OptInherit opt_equal
340340
%type <str> AlterUserSetStmt privilege_list privilege privilege_target
341341
%type <str> opt_grant_grant_option opt_revoke_grant_option
342+
%type <str> transaction_mode_list_or_empty transaction_mode_list
342343
%type <str> function_with_argtypes_list function_with_argtypes
343344
%type <str> DropdbStmt ClusterStmt grantee RevokeStmt Bit DropOpClassStmt
344345
%type <str> GrantStmt privileges PosAllConst constraints_set_list
@@ -361,14 +362,14 @@ make_name(void)
361362
%type <str> insert_target_list insert_column_item DropRuleStmt
362363
%type <str> createfunc_opt_item set_rest var_list_or_default
363364
%type <str> CreateFunctionStmt createfunc_opt_list func_table
364-
%type <str> DropUserStmt copy_from copy_opt_list opt_mode copy_opt_item
365+
%type <str> DropUserStmt copy_from copy_opt_list copy_opt_item
365366
%type <str> opt_oids TableLikeClause key_action opt_definition
366367
%type <str> cast_context row r_expr qual_Op qual_all_Op opt_default
367368
%type <str> CreateConversionStmt any_operator opclass_item_list
368369
%type <str> iso_level type_list CharacterWithLength ConstCharacter
369370
%type <str> CharacterWithoutLength BitWithLength BitWithoutLength
370371
%type <str> ConstBit GenericType TableFuncElementList
371-
%type <str> opt_sort_clause
372+
%type <str> opt_sort_clause transaction_access_mode
372373

373374
%type <str> ECPGWhenever ECPGConnect connection_target ECPGOpen
374375
%type <str> indicator ECPGExecute ECPGPrepare opt_ecpg_using ecpg_into
@@ -435,6 +436,7 @@ opt_at: AT connection_target
435436
};
436437

437438
stmt: AlterDatabaseSetStmt { output_statement($1, 0, connection); }
439+
| AlterDomainStmt { output_statement($1, 0, connection); }
438440
| AlterGroupStmt { output_statement($1, 0, connection); }
439441
| AlterTableStmt { output_statement($1, 0, connection); }
440442
| AlterUserStmt { output_statement($1, 0, connection); }
@@ -842,10 +844,10 @@ set_rest: ColId TO var_list_or_default
842844
{ $$ = cat_str(3, $1, make_str("="), $3); }
843845
| TIME ZONE zone_value
844846
{ $$ = cat2_str(make_str("time zone"), $3); }
845-
| TRANSACTION ISOLATION LEVEL iso_level opt_mode
846-
{ $$ = cat_str(3, make_str("transaction isolation level"), $4, $5); }
847-
| SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL iso_level
848-
{ $$ = cat2_str(make_str("session characteristics as transaction isolation level"), $7); }
847+
| TRANSACTION transaction_mode_list
848+
{ $$ = cat2_str(make_str("transaction"), $2); }
849+
| SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list
850+
{ $$ = cat2_str(make_str("session characteristics as transaction"), $5); }
849851
| NAMES opt_encoding
850852
{ $$ = cat2_str(make_str("names"), $2); }
851853
| SESSION AUTHORIZATION ColId_or_Sconst
@@ -870,12 +872,6 @@ iso_level: READ COMMITTED { $$ = make_str("read committed"); }
870872
| SERIALIZABLE { $$ = make_str("serializable"); }
871873
;
872874

873-
opt_mode: READ WRITE { $$ = make_str("read write"); }
874-
| READ ONLY { mmerror(PARSE_ERROR, ET_ERROR, "SET TRANSACTION/READ ONLY is not yet supported");
875-
$$ = make_str("read only"); }
876-
| /* EMPTY */ { $$ = EMPTY; }
877-
;
878-
879875
var_value: opt_boolean { $$ = $1; }
880876
| AllConst { $$ = $1; }
881877
| ColId { $$ = $1; }
@@ -1657,12 +1653,7 @@ TruncateStmt: TRUNCATE opt_table qualified_name
16571653
*****************************************************************************/
16581654

16591655
FetchStmt: FETCH direction fetch_how_many from_in name ecpg_into
1660-
{
1661-
if (strcmp($2, "relative") == 0 && atol($3) == 0L)
1662-
mmerror(PARSE_ERROR, ET_ERROR, "FETCH/RELATIVE at current position is not supported");
1663-
1664-
$$ = cat_str(5, make_str("fetch"), $2, $3, $4, $5);
1665-
}
1656+
{ $$ = cat_str(5, make_str("fetch"), $2, $3, $4, $5); }
16661657
| FETCH fetch_how_many from_in name ecpg_into
16671658
{ $$ = cat_str(4, make_str("fetch"), $2, $3, $4); }
16681659
| FETCH direction from_in name ecpg_into
@@ -1758,8 +1749,14 @@ GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_
17581749
{ $$ = cat_str(7, make_str("grant"), $2, make_str("on"), $4, make_str("to"), $6, $7); }
17591750
;
17601751

1761-
RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target FROM grantee_list
1762-
{ $$ = cat_str(8, make_str("revoke"), $2, $3, make_str("on"), $5, make_str("from"), $7); }
1752+
RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target FROM grantee_list opt_drop_behavior
1753+
{
1754+
if (strcmp($8, "drop cascade") == 0)
1755+
mmerror(PARSE_ERROR, ET_WARNING, "Not implemented REVOKE ... CASCADE will be send to backend");
1756+
1757+
$$ = cat_str(9, make_str("revoke"), $2, $3, make_str("on"), $5, make_str("from"), $7, $8);
1758+
}
1759+
17631760
;
17641761

17651762
privileges: ALL PRIVILEGES { $$ = make_str("all privileges"); }
@@ -2178,22 +2175,40 @@ UnlistenStmt: UNLISTEN qualified_name
21782175
* (also older versions END / ABORT)
21792176
*
21802177
*****************************************************************************/
2181-
TransactionStmt: ABORT_TRANS opt_trans { $$ = make_str("rollback"); }
2182-
| BEGIN_TRANS opt_trans { $$ = make_str("begin transaction"); }
2183-
| START TRANSACTION trans_options { $$ = cat2_str(make_str("start transaction"), $3); }
2184-
| COMMIT opt_trans { $$ = make_str("commit"); }
2185-
| END_TRANS opt_trans { $$ = make_str("commit"); }
2186-
| ROLLBACK opt_trans { $$ = make_str("rollback"); }
2187-
;
2188-
2189-
trans_options: ISOLATION LEVEL iso_level { $$ = cat2_str(make_str("isolation level"), $3); }
2178+
TransactionStmt: ABORT_TRANS opt_transaction { $$ = make_str("rollback"); }
2179+
| BEGIN_TRANS opt_transaction { $$ = make_str("begin transaction"); }
2180+
| START TRANSACTION transaction_mode_list_or_empty { $$ = cat2_str(make_str("start transaction"), $3); }
2181+
| COMMIT opt_transaction { $$ = make_str("commit"); }
2182+
| END_TRANS opt_transaction { $$ = make_str("commit"); }
2183+
| ROLLBACK opt_transaction { $$ = make_str("rollback"); }
21902184
;
21912185

2192-
opt_trans: WORK { $$ = EMPTY; }
2186+
opt_transaction: WORK { $$ = EMPTY; }
21932187
| TRANSACTION { $$ = EMPTY; }
21942188
| /*EMPTY*/ { $$ = EMPTY; }
21952189
;
21962190

2191+
transaction_mode_list:
2192+
ISOLATION LEVEL iso_level
2193+
{ $$ = cat2_str(make_str("isolation level"), $3); }
2194+
| transaction_access_mode
2195+
{ $$ = $1; }
2196+
| ISOLATION LEVEL iso_level transaction_access_mode
2197+
{ $$ = cat_str(3, make_str("isolation level"), $3, $4); }
2198+
| transaction_access_mode ISOLATION LEVEL iso_level
2199+
{ $$ = cat_str(3, $1, make_str("isolation level"), $4); }
2200+
;
2201+
2202+
transaction_mode_list_or_empty:
2203+
transaction_mode_list { $$ = $1; }
2204+
| /* EMPTY */ { $$ = EMPTY; }
2205+
;
2206+
2207+
transaction_access_mode:
2208+
READ ONLY { $$ = make_str("read only"); }
2209+
| READ WRITE { $$ = make_str("read write"); }
2210+
;
2211+
21972212
/*****************************************************************************
21982213
*
21992214
* QUERY:
@@ -2297,6 +2312,21 @@ CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList opt_coll
22972312
}
22982313
;
22992314

2315+
AlterDomainStmt:
2316+
ALTER DOMAIN_P any_name alter_column_default
2317+
{ $$ = cat_str(3, make_str("alter domain"), $3, $4); }
2318+
| ALTER DOMAIN_P any_name DROP NOT NULL_P
2319+
{ $$ = cat_str(3, make_str("alter domain"), $3, make_str("drop not null")); }
2320+
| ALTER DOMAIN_P any_name SET NOT NULL_P
2321+
{ $$ = cat_str(3, make_str("alter domain"), $3, make_str("set not null")); }
2322+
| ALTER DOMAIN_P any_name ADD TableConstraint
2323+
{ $$ = cat_str(4, make_str("alter domain"), $3, make_str("add"), $5); }
2324+
| ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior
2325+
{ $$ = cat_str(5, make_str("alter domain"), $3, make_str("drop constraint"), $6, $7); }
2326+
| ALTER DOMAIN_P any_name OWNER TO UserId
2327+
{ $$ = cat_str(4, make_str("alter domain"), $3, make_str("owner to"), $6); }
2328+
;
2329+
23002330
opt_as: AS {$$ = make_str("as"); }
23012331
| /* EMPTY */ {$$ = EMPTY; }
23022332
;
@@ -5169,8 +5199,8 @@ unreserved_keyword:
51695199
| INSTEAD { $$ = make_str("instead"); }
51705200
| ISOLATION { $$ = make_str("isolation"); }
51715201
| KEY { $$ = make_str("key"); }
5172-
| LANGUAGE { $$ = make_str("language"); }
51735202
| LANCOMPILER { $$ = make_str("lancompiler"); }
5203+
| LANGUAGE { $$ = make_str("language"); }
51745204
| LAST { $$ = make_str("last"); }
51755205
| LEVEL { $$ = make_str("level"); }
51765206
| LISTEN { $$ = make_str("listen"); }
@@ -5422,7 +5452,6 @@ reserved_keyword:
54225452
| UNIQUE { $$ = make_str("unique"); }
54235453
| USER { $$ = make_str("user"); }
54245454
| USING { $$ = make_str("using"); }
5425-
| VALUE { $$ = make_str("value"); }
54265455
| WHEN { $$ = make_str("when"); }
54275456
| WHERE { $$ = make_str("where"); }
54285457
;

0 commit comments

Comments
 (0)