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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy