Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd56b9fd

Browse files
author
Michael Meskes
committed
Synced parser.
Removed Oracle transaction syntax to fix shift/reduce error.
1 parentae9df0b commitd56b9fd

File tree

4 files changed

+77
-47
lines changed

4 files changed

+77
-47
lines changed

‎src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1859,6 +1859,11 @@ Mon Sep 6 13:17:46 CEST 2004
18591859

18601860
- Fixed bug in Informix mode that caused a segfault.
18611861
- Set pgtypes library version to 1.2.
1862+
1863+
Mon Sep 27 11:05:49 CEST 2004
1864+
1865+
- Synced parser.
1866+
- Removed Oracle transaction syntax to fix shift/reduce error.
18621867
- Set ecpg version to 3.2.0.
18631868
- Set compat library version to 1.2.
18641869
- Set ecpg library version to 4.2.

‎src/interfaces/ecpg/preproc/ecpg_keywords.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* lexical token lookup for reserved words in postgres embedded SQL
55
*
66
* IDENTIFICATION
7-
* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg_keywords.c,v 1.29 2003/11/29 19:52:08 pgsql Exp $
7+
* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg_keywords.c,v 1.30 2004/09/27 09:59:17 meskes Exp $
88
*
99
*-------------------------------------------------------------------------
1010
*/
@@ -57,7 +57,6 @@ static ScanKeyword ScanKeywords[] = {
5757
{"open",SQL_OPEN},
5858
{"output",SQL_OUTPUT},
5959
{"reference",SQL_REFERENCE},
60-
{"release",SQL_RELEASE},
6160
{"returned_length",SQL_RETURNED_LENGTH},
6261
{"returned_octet_length",SQL_RETURNED_OCTET_LENGTH},
6362
{"scale",SQL_SCALE},

‎src/interfaces/ecpg/preproc/keywords.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.66 2004/08/30 02:54:41 momjian Exp $
11+
* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.67 2004/09/27 09:59:17 meskes Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -249,6 +249,7 @@ static ScanKeyword ScanKeywords[] = {
249249
{"references",REFERENCES},
250250
{"reindex",REINDEX},
251251
{"relative",RELATIVE_P},
252+
{"release",RELEASE},
252253
{"rename",RENAME},
253254
{"repeatable",REPEATABLE},
254255
{"replace",REPLACE},
@@ -262,6 +263,7 @@ static ScanKeyword ScanKeywords[] = {
262263
{"row",ROW},
263264
{"rows",ROWS},
264265
{"rule",RULE},
266+
{"savepoint",SAVEPOINT},
265267
{"schema",SCHEMA},
266268
{"scroll",SCROLL},
267269
{"second",SECOND_P},

‎src/interfaces/ecpg/preproc/preproc.y

Lines changed: 68 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.296 2004/09/06 11:23:07 meskes Exp $*/
1+
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.297 2004/09/27 09:59:17 meskes Exp $*/
22

33
/* Copyright comment*/
44
%{
@@ -326,7 +326,7 @@ add_additional_variables(char *name, bool insert)
326326
SQL_FREESQL_GOSQL_GOTOSQL_IDENTIFIED
327327
SQL_INDICATORSQL_KEY_MEMBERSQL_LENGTH
328328
SQL_LONGSQL_NAMESQL_NULLABLESQL_OCTET_LENGTH
329-
SQL_OPENSQL_OUTPUTSQL_RELEASESQL_REFERENCE
329+
SQL_OPENSQL_OUTPUTSQL_REFERENCE
330330
SQL_RETURNED_LENGTHSQL_RETURNED_OCTET_LENGTHSQL_SCALE
331331
SQL_SECTIONSQL_SHORTSQL_SIGNEDSQL_SQLSQL_SQLERROR
332332
SQL_SQLPRINTSQL_SQLWARNINGSQL_STARTSQL_STOP
@@ -395,10 +395,11 @@ add_additional_variables(char *name, bool insert)
395395

396396
QUOTE
397397

398-
READ REAL RECHECK REFERENCES REINDEX RELATIVE_P RENAME REPEATABLE REPLACE
399-
RESET RESTART RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW ROWS RULE
398+
READ REAL RECHECK REFERENCES REINDEX RELATIVE_P RELEASE RENAME
399+
REPEATABLE REPLACE RESET RESTART RESTRICT RETURNS REVOKE RIGHT
400+
ROLLBACK ROW ROWS RULE
400401

401-
SCHEMA SCROLL SECOND_P SECURITY SELECT SEQUENCE SERIALIZABLE
402+
SAVEPOINTSCHEMA SCROLL SECOND_P SECURITY SELECT SEQUENCE SERIALIZABLE
402403
SESSION SESSION_USER SET SETOF SHARE SHOW SIMILAR SIMPLE SMALLINT SOME
403404
STABLE START STATEMENT STATISTICS STDIN STDOUT STORAGE STRICT_P
404405
SUBSTRING SYSID
@@ -472,7 +473,7 @@ add_additional_variables(char *name, bool insert)
472473
%type<str>TypenameSimpleTypenameNumericopt_floatopt_numeric
473474
%type<str>opt_decimalCharactercharacteropt_varyingopt_charset
474475
%type<str>opt_timezoneopt_intervaltable_reffetch_direction
475-
%type<str>ConstDatetimeAlterDomainStmtAlterSeqStmt
476+
%type<str>ConstDatetimeAlterDomainStmtAlterSeqStmtalter_rel_cmds
476477
%type<str>SelectStmtinto_clauseOptTempConstraintAttributeSpec
477478
%type<str>opt_tableopt_allsort_clausesortby_listConstraintAttr
478479
%type<str>sortbyqualified_name_listname_listColId_or_Sconst
@@ -529,7 +530,7 @@ add_additional_variables(char *name, bool insert)
529530
%type<str>handler_nameany_name_listany_nameopt_asinsert_column_list
530531
%type<str>columnreffunction_nameinsert_target_elAllConstVar
531532
%type<str>insert_target_listinsert_column_itemDropRuleStmt
532-
%type<str>createfunc_opt_itemset_restvar_list_or_default
533+
%type<str>createfunc_opt_itemset_restvar_list_or_defaultalter_rel_cmd
533534
%type<str>CreateFunctionStmtcreatefunc_opt_listfunc_table
534535
%type<str>DropUserStmtcopy_fromcopy_opt_listcopy_opt_item
535536
%type<str>opt_oidsTableLikeClausekey_actionopt_definition
@@ -538,13 +539,13 @@ add_additional_variables(char *name, bool insert)
538539
%type<str>iso_leveltype_listCharacterWithLengthConstCharacter
539540
%type<str>CharacterWithoutLengthBitWithLengthBitWithoutLength
540541
%type<str>ConstBitGenericTypeTableFuncElementListopt_analyze
541-
%type<str>opt_sort_clausetransaction_access_modesubquery_Op
542+
%type<str>opt_sort_clausesubquery_Optransaction_mode_item
542543
%type<str>ECPGWheneverECPGConnectconnection_targetECPGOpen
543544
%type<str>indicatorECPGExecuteECPGPrepareecpg_usingecpg_into
544545
%type<str>storage_declarationstorage_clauseopt_initializerc_anything
545546
%type<str>variable_listvariablec_thingc_termECPGKeywords_vanames
546547
%type<str>opt_pointerECPGDisconnectdis_namestorage_modifier
547-
%type<str>ECPGReleaseexecstringserver_nameECPGVarDeclaration
548+
%type<str>execstringserver_nameECPGVarDeclaration
548549
%type<str>connection_objectopt_serveropt_portc_stuffc_stuff_item
549550
%type<str>user_nameopt_userchar_variableora_useridentopt_reference
550551
%type<str>var_type_declarationsquoted_ident_stringvarECPGKeywords_rest
@@ -561,7 +562,7 @@ add_additional_variables(char *name, bool insert)
561562
%type<str>col_name_keywordfunc_name_keywordprecisionopt_scale
562563
%type<str>ECPGTypeNameusing_listECPGColLabelCommonUsingConst
563564
%type<str>inf_val_listinf_col_listusing_descriptorinto_descriptor
564-
%type<str>prepared_namestruct_union_type_with_symbol
565+
%type<str>prepared_namestruct_union_type_with_symbolOptConsTableSpace
565566
%type<str>ECPGunreservedECPGunreserved_intervalcvariable
566567
%type<str>AlterOwnerStmtOptTableSpaceOwnerCreateTableSpaceStmt
567568
%type<str>DropTableSpaceStmtindirectionindirection_elECPGSetDescriptorHeader
@@ -816,7 +817,7 @@ stmt: AlterDatabaseSetStmt{ output_statement($1, 0, connection); }
816817
whenever_action(2);
817818
free($1);
818819
}
819-
|ECPGRelease{/* output already done*/ }
820+
/*| ECPGRelease{ /* output already done */ }*/
820821
|ECPGSetAutocommit
821822
{
822823
fprintf(yyout,"{ ECPGsetcommit(__LINE__,\"%s\", %s);", $1, connection ? connection :"NULL");
@@ -1177,15 +1178,18 @@ CheckPointStmt: CHECKPOINT { $$= make_str("checkpoint"); }
11771178

11781179
/*****************************************************************************
11791180
*
1180-
*ALTER TABLE variations
1181+
*ALTER[TABLE | INDEX ] variations
11811182
*
11821183
*****************************************************************************/
11831184

11841185
AlterTableStmt:
11851186
ALTERTABLErelation_expralter_table_cmds
11861187
{$$ = cat_str(3, make_str("alter table"),$3,$4); }
1188+
|ALTERINDEXrelation_expralter_rel_cmds
1189+
{$$ = cat_str(3, make_str("alter table"),$3,$4); }
11871190
;
11881191

1192+
/* Subcommands that are for ALTER TABLE only*/
11891193
alter_table_cmds:
11901194
alter_table_cmd {$$ =$1; }
11911195
|alter_table_cmds','alter_table_cmd{$$ = cat_str(3,$1, make_str(","),$3); }
@@ -1228,16 +1232,24 @@ alter_table_cmd:
12281232
/* ALTER TABLE <name> CREATE TOAST TABLE*/
12291233
|CREATETOASTTABLE
12301234
{$$ = make_str("create toast table"); }
1231-
/* ALTER TABLE <name> OWNER TO UserId*/
1232-
|OWNERTOUserId
1233-
{$$ = cat_str(2, make_str("owner to"),$3); }
12341235
/* ALTER TABLE <name> CLUSTER ON <indexname>*/
12351236
|CLUSTERONname
12361237
{$$ = cat_str(2, make_str("cluster on"),$3); }
12371238
/* ALTER TABLE <name> SET WITHOUT CLUSTER*/
12381239
|SETWITHOUTCLUSTER
12391240
{$$ = make_str("set without cluster"); }
1240-
/* ALTER TABLE <name> SET TABLESPACE <tablespacename>*/
1241+
;
1242+
1243+
alter_rel_cmds:alter_rel_cmd {$$ =$1; }
1244+
|alter_rel_cmds','alter_rel_cmd{$$ = cat_str(3,$1, make_str(","),$3); }
1245+
;
1246+
1247+
/* Subcommands that are for ALTER TABLE or ALTER INDEX*/
1248+
alter_rel_cmd:
1249+
/* ALTER [TABLE|INDEX] <name> OWNER TO UserId*/
1250+
OWNERTOUserId
1251+
{$$ = cat_str(2, make_str("owner to"),$3); }
1252+
/* ALTER [TABLE|INDEX] <name> SET TABLESPACE <tablespacename>*/
12411253
|SETTABLESPACEname
12421254
{$$ = cat_str(2, make_str("set tablespace"),$3); }
12431255
;
@@ -1417,10 +1429,10 @@ ColConstraintElem:NOT NULL_P
14171429
{$$ = make_str("not null"); }
14181430
|NULL_P
14191431
{$$ = make_str("null"); }
1420-
|UNIQUE
1421-
{$$ = make_str("unique"); }
1422-
|PRIMARYKEY
1423-
{$$ = make_str("primary key"); }
1432+
|UNIQUEOptConsTableSpace
1433+
{$$ =cat2_str(make_str("unique"),$2); }
1434+
|PRIMARYKEYOptConsTableSpace
1435+
{$$ =cat2_str(make_str("primary key"),$3); }
14241436
|CHECK'('a_expr')'
14251437
{$$ = cat_str(3, make_str("check ("),$3, make_str(")")); }
14261438
|DEFAULTb_expr
@@ -1470,10 +1482,10 @@ TableConstraint: CONSTRAINT name ConstraintElem
14701482

14711483
ConstraintElem:CHECK'('a_expr')'
14721484
{$$ = cat_str(3, make_str("check("),$3, make_str(")")); }
1473-
|UNIQUE'('columnList')'
1474-
{$$ = cat_str(3, make_str("unique("),$3, make_str(")")); }
1475-
|PRIMARYKEY'('columnList')'
1476-
{$$ = cat_str(3, make_str("primary key("),$4, make_str(")")); }
1485+
|UNIQUE'('columnList')'OptConsTableSpace
1486+
{$$ = cat_str(4, make_str("unique("),$3, make_str(")"),$5); }
1487+
|PRIMARYKEY'('columnList')'OptConsTableSpace
1488+
{$$ = cat_str(4, make_str("primary key("),$4, make_str(")"),$6); }
14771489
|FOREIGNKEY'('columnList')'REFERENCESqualified_nameopt_column_list
14781490
key_matchkey_actionsConstraintAttributeSpec
14791491
{$$ = cat_str(8, make_str("foreign key("),$4, make_str(") references"),$7,$8,$9,$10,$11); }
@@ -1546,6 +1558,10 @@ OptTableSpace: TABLESPACE name{ $$ = cat2_str(make_str("tablespace"), $2); }
15461558
|/*EMPTY*/{$$ = EMPTY; }
15471559
;
15481560

1561+
OptConsTableSpace:USINGINDEXTABLESPACEname{$$ = cat2_str(make_str("using index tablespace"),$4); }
1562+
|/*EMPTY*/{$$ = EMPTY; }
1563+
;
1564+
15491565
/*
15501566
* Note: CREATE TABLE ... AS SELECT ... is just another spelling for
15511567
* SELECT ... INTO.
@@ -2192,7 +2208,7 @@ index_params: index_elem{ $$ = $1; }
21922208
|index_params','index_elem{$$ = cat_str(3,$1, make_str(","),$3); }
21932209
;
21942210

2195-
index_elem:attr_nameopt_class
2211+
index_elem:ColIdopt_class
21962212
{$$ = cat2_str($1,$2); }
21972213
|func_name'('expr_list')'opt_class
21982214
{$$ = cat_str(5,$1, make_str("("),$3,")",$5); }
@@ -2416,6 +2432,8 @@ RenameStmt: ALTER AGGREGATE func_name '(' aggr_argtype ')' RENAME TO name
24162432
{$$ = cat_str(4, make_str("alter schema"),$3, make_str("rename to"),$6); }
24172433
|ALTERTABLErelation_exprRENAMETOname
24182434
{$$ = cat_str(4, make_str("alter table"),$3, make_str("rename to"),$6); }
2435+
|ALTERINDEXrelation_exprRENAMETOname
2436+
{$$ = cat_str(4, make_str("alter index"),$3, make_str("rename to"),$6); }
24192437
|ALTERTABLErelation_exprRENAMEopt_columnnameTOname
24202438
{$$ = cat_str(7, make_str("alter table"),$3, make_str("rename"),$5,$6, make_str("to"),$8); }
24212439
|ALTERTRIGGERnameONrelation_exprRENAMETOname
@@ -2545,40 +2563,43 @@ UnlistenStmt: UNLISTEN qualified_name
25452563
*(also older versions END / ABORT)
25462564
*
25472565
*****************************************************************************/
2548-
TransactionStmt:ABORT_Popt_transaction{$$ = make_str("rollback"); }
2566+
TransactionStmt:ABORT_Popt_transaction{$$ = make_str("rollback"); }
25492567
|BEGIN_Popt_transactiontransaction_mode_list_or_empty {$$ = cat2_str(make_str("begin transaction"),$3); }
25502568
|STARTTRANSACTIONtransaction_mode_list_or_empty {$$ = cat2_str(make_str("start transaction"),$3); }
2551-
|COMMITopt_transaction{$$ = make_str("commit"); }
2552-
|END_Popt_transaction{$$ = make_str("commit"); }
2553-
|ROLLBACKopt_transaction{$$ = make_str("rollback"); }
2569+
|COMMITopt_transaction {$$ = make_str("commit"); }
2570+
|END_Popt_transaction {$$ = make_str("commit"); }
2571+
|ROLLBACKopt_transaction {$$ = make_str("rollback"); }
2572+
|SAVEPOINTColId {$$ = cat2_str(make_str("savepoint"),$2); }
2573+
|RELEASESAVEPOINTColId {$$ = cat2_str(make_str("release savepoint"),$3); }
2574+
|RELEASEColId {$$ = cat2_str(make_str("release"),$2); }
2575+
|ROLLBACKopt_transactionTOSAVEPOINTColId {$$ = cat_str(4, make_str("rollback"),$2, make_str("to savepoint"),$5); }
2576+
|ROLLBACKopt_transactionTOColId {$$ = cat_str(4, make_str("rollback"),$2, make_str("to"),$4); }
2577+
25542578
;
25552579

25562580
opt_transaction:WORK{$$ = EMPTY; }
25572581
|TRANSACTION{$$ = EMPTY; }
25582582
|/*EMPTY*/{$$ = EMPTY; }
25592583
;
25602584

2561-
transaction_mode_list:
2585+
transaction_mode_item:
25622586
ISOLATIONLEVELiso_level
25632587
{$$ = cat2_str(make_str("isolation level"),$3); }
2564-
|transaction_access_mode
2565-
{$$ =$1; }
2566-
|ISOLATIONLEVELiso_leveltransaction_access_mode
2567-
{$$ = cat_str(3, make_str("isolation level"),$3,$4); }
2568-
|transaction_access_modeISOLATIONLEVELiso_level
2569-
{$$ = cat_str(3,$1, make_str("isolation level"),$4); }
2588+
|READONLY{$$ = make_str("read only"); }
2589+
|READWRITE {$$ = make_str("read write"); }
2590+
;
2591+
2592+
transaction_mode_list:
2593+
transaction_mode_item {$$ =$1; }
2594+
|transaction_mode_list','transaction_mode_item{$$ = cat_str(3,$1, make_str(","),$3); }
2595+
|transaction_mode_listtransaction_mode_item{$$ = cat_str(3,$1, make_str(""),$2); }
25702596
;
25712597

25722598
transaction_mode_list_or_empty:
25732599
transaction_mode_list{$$ =$1; }
25742600
|/* EMPTY*/{$$ = EMPTY; }
25752601
;
25762602

2577-
transaction_access_mode:
2578-
READONLY{$$ = make_str("read only"); }
2579-
|READWRITE {$$ = make_str("read write"); }
2580-
;
2581-
25822603
/*****************************************************************************
25832604
*
25842605
*QUERY:
@@ -4156,7 +4177,7 @@ name_list: name
41564177
name:ColId{$$ =$1; };
41574178
database_name:ColId{$$ =$1; };
41584179
access_method:ColId{$$ =$1; };
4159-
attr_name:ColId{$$ =$1; };
4180+
attr_name:ColLabel{$$ =$1; };
41604181
index_name:ColId{$$ =$1; };
41614182

41624183
file_name:StringConst{$$ =$1; };
@@ -5453,7 +5474,8 @@ descriptor_item:SQL_CARDINALITY{ $$ = ECPGd_cardinality; }
54535474
* after a transaction statement to disconnect from the database.
54545475
*/
54555476

5456-
ECPGRelease:TransactionStmtSQL_RELEASE
5477+
/* We cannot do that anymore since it causes shift/reduce conflicts. 2004-09-27 Michael Meskes
5478+
ECPGRelease: TransactionStmt RELEASE
54575479
{
54585480
if (strcmp($1, "begin") == 0)
54595481
mmerror(PARSE_ERROR, ET_ERROR, "RELEASE does not make sense when beginning a transaction");
@@ -5467,6 +5489,7 @@ ECPGRelease: TransactionStmt SQL_RELEASE
54675489
free($1);
54685490
}
54695491
;
5492+
*/
54705493

54715494
/*
54725495
* set/reset the automatic transaction mode, this needs a differnet handling
@@ -5728,7 +5751,6 @@ ECPGKeywords_vanames: SQL_BREAK{ $$ = make_str("break"); }
57285751
|SQL_NAME{$$ = make_str("name"); }
57295752
|SQL_NULLABLE{$$ = make_str("nullable"); }
57305753
|SQL_OCTET_LENGTH{$$ = make_str("octet_length"); }
5731-
|SQL_RELEASE{$$ = make_str("release"); }
57325754
|SQL_RETURNED_LENGTH{$$ = make_str("returned_length"); }
57335755
|SQL_RETURNED_OCTET_LENGTH{$$ = make_str("returned_octet_length"); }
57345756
|SQL_SCALE{$$ = make_str("scale"); }
@@ -5978,6 +6000,7 @@ ECPGunreserved: ABORT_P{ $$ = make_str("abort"); }
59786000
|RECHECK{$$ = make_str("recheck"); }
59796001
|REINDEX{$$ = make_str("reindex"); }
59806002
|RELATIVE_P{$$ = make_str("relative"); }
6003+
|RELEASE{$$ = make_str("release"); }
59816004
|RENAME{$$ = make_str("rename"); }
59826005
|REPEATABLE{$$ = make_str("repeatable"); }
59836006
|REPLACE{$$ = make_str("replace"); }
@@ -5989,6 +6012,7 @@ ECPGunreserved: ABORT_P{ $$ = make_str("abort"); }
59896012
|ROLLBACK{$$ = make_str("rollback"); }
59906013
|ROWS{$$ = make_str("rows"); }
59916014
|RULE{$$ = make_str("rule"); }
6015+
|SAVEPOINT{$$ = make_str("savepoint"); }
59926016
|SCHEMA{$$ = make_str("schema"); }
59936017
|SCROLL{$$ = make_str("scroll"); }
59946018
/*| SECOND_P{ $$ = make_str("second"); }*/

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp