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

Commit5ca7c8e

Browse files
author
Michael Meskes
committed
Synced parser with backend.
1 parent3c0d21a commit5ca7c8e

File tree

2 files changed

+140
-50
lines changed

2 files changed

+140
-50
lines changed

‎src/interfaces/ecpg/ChangeLog

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,3 +1217,10 @@ Wed Jan 23 17:35:23 CET 2002
12171217
- Added patch to temporarily disable locale for descriptors too (Christof).
12181218
- Set ecpg version to 2.9.0.
12191219
- Set library version to 3.3.0.
1220+
1221+
Wed Mar 6 10:40:28 CET 2002
1222+
1223+
- Synced preproc.y with gram.y.
1224+
- Set ecpg version to 2.10.0.
1225+
- Set library version to 3.4.0.
1226+

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

Lines changed: 133 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ make_name(void)
197197
SCHEMA,SCROLL,SECOND_P,SELECT,SESSION,SESSION_USER,SET,SOME,SUBSTRING,
198198
TABLE,TEMPORARY,THEN,TIME,TIMESTAMP
199199
TO,TRAILING,TRANSACTION,TRIM,TRUE_P,
200-
UNENCRYPTED,UNION,UNIQUE,UNKNOWN,UPDATE,USER,USING,
200+
UNENCRYPTED,UNION,UNIQUE,UNKNOWN,UPDATE,USAGE,USER,USING,
201201
VALUES,VARCHAR,VARYING,VIEW,
202202
WHEN,WHERE,WITH,WITHOUT,WORK,YEAR_P,ZONE
203203

@@ -228,7 +228,8 @@ make_name(void)
228228
NONE,NOTHING,NOTIFY,NOTNULL,OFFSET,OIDS,
229229
OPERATOR,OWNER,PASSWORD,PROCEDURAL,REINDEX,RENAME,RESET,
230230
RETURNS,ROW,RULE,SEQUENCE,SETOF,SHARE,
231-
SHOW,START,STATEMENT,STATISTICS,STDIN,STDOUT,SYSIDTEMP,
231+
SHOW,START,STATEMENT,STATISTICS,STDIN,STDOUT,STORAGE,
232+
SYSID,TEMP,
232233
TEMPLATE,TOAST,TRUNCATE,TRUSTED,UNLISTEN,UNTIL,VACUUM,
233234
VALID,VERBOSE,VERSION
234235

@@ -327,12 +328,16 @@ make_name(void)
327328
%type<str>TriggerActionTimeCreateTrigStmtDropPLangStmt
328329
%type<str>CreatePLangStmtTriggerFuncArgsTriggerFuncArgsimple_select
329330
%type<str>ViewStmtLoadStmtCreatedbStmtcreatedb_opt_item
330-
%type<str>createdb_opt_listopt_encodingOptInherit
331+
%type<str>createdb_opt_listopt_encodingOptInheritopt_equal
332+
%type<str>AlterUserSetStmtprivilege_listprivilegeprivilege_target
333+
%type<str>opt_grant_grant_optionopt_revoke_grant_option
334+
%type<str>function_with_argtypes_listfunction_with_argtypes
331335
%type<str>DropdbStmtClusterStmtgranteeRevokeStmtBitbit
332-
%type<str>GrantStmtprivilegesoperation_commalistoperationPosAllConst
333-
%type<str>opt_with_grantopt_cursorConstraintsSetStmtAllConst
336+
%type<str>GrantStmtprivilegesPosAllConst
337+
%type<str>opt_cursorConstraintsSetStmtAllConst
334338
%type<str>case_exprwhen_clause_listcase_defaultcase_argwhen_clause
335-
%type<str>select_clauseopt_select_limitselect_limit_valueConstraintTimeSpec
339+
%type<str>select_clauseopt_select_limitselect_limit_value
340+
%type<str>ConstraintTimeSpecAlterDatabaseSetStmt
336341
%type<str>select_offset_valueReindexStmtjoin_typeopt_boolean
337342
%type<str>join_qualupdate_listAlterSchemaStmtjoined_table
338343
%type<str>opt_levelopt_locklock_typeOptGroupListOptGroupElem
@@ -406,10 +411,12 @@ opt_at:AT connection_target{
406411
argsinsert =NULL;
407412
};
408413

409-
stmt:AlterSchemaStmt { output_statement($1,0, connection); }
410-
|AlterTableStmt{ output_statement($1,0, connection); }
414+
stmt:AlterDatabaseSetStmt{ output_statement($1,0, connection); }
411415
|AlterGroupStmt{ output_statement($1,0, connection); }
416+
|AlterSchemaStmt{ output_statement($1,0, connection); }
417+
|AlterTableStmt{ output_statement($1,0, connection); }
412418
|AlterUserStmt{ output_statement($1,0, connection); }
419+
|AlterUserSetStmt{ output_statement($1,0, connection); }
413420
|ClosePortalStmt{ output_statement($1,0, connection); }
414421
|CommentStmt{ output_statement($1,0, connection); }
415422
|CopyStmt{ output_statement($1,0, connection); }
@@ -634,6 +641,16 @@ AlterUserStmt: ALTER USER UserId OptUserList
634641
}
635642
;
636643

644+
AlterUserSetStmt:ALTERUSERUserIdVariableSetStmt
645+
{
646+
$$ = cat_str(3, make_str("alter user"),$3,$4);
647+
}
648+
|ALTERUSERUserIdVariableResetStmt
649+
{
650+
$$ = cat_str(3, make_str("alter user"),$3,$4);
651+
}
652+
;
653+
637654
/*****************************************************************************
638655
*
639656
* Drop a postgresql DBMS user
@@ -976,6 +993,11 @@ AlterTableStmt:
976993
{
977994
$$ = cat_str(7, make_str("alter table"),$3, make_str("alter"),$5,$6, make_str("set statistics"),$9);
978995
}
996+
/* ALTER TABLE <relation> ALTER [COLUMN] <colname> SET STORAGE <storagemode>*/
997+
|ALTERTABLErelation_exprALTERopt_columnColIdSETSTORAGEColId
998+
{
999+
$$ = cat_str(7, make_str("alter table"),$3, make_str("alter"),$5,$6, make_str("set storage"),$9);
1000+
}
9791001
/* ALTER TABLE <relation> DROP [COLUMN] <colname> {RESTRICT|CASCADE}*/
9801002
|ALTERTABLErelation_exprDROPopt_columnColIddrop_behavior
9811003
{
@@ -1714,13 +1736,19 @@ comment_text: StringConst{ $$ = $1; }
17141736
/*****************************************************************************
17151737
*
17161738
*QUERY:
1717-
* GRANT[privileges] ON [TABLE] relation_name_list TO [GROUP] grantee, ...
1739+
* GRANTand REVOKE statements
17181740
*
17191741
*****************************************************************************/
17201742

1721-
GrantStmt:GRANTprivilegesONopt_tablerelation_name_listTOgrantee_listopt_with_grant
1743+
GrantStmt:GRANTprivilegesONprivilege_targetTOgrantee_listopt_grant_grant_option
1744+
{
1745+
$$ = cat_str(7, make_str("grant"),$2, make_str("on"),$4, make_str("to"),$6,$7);
1746+
}
1747+
;
1748+
1749+
RevokeStmt:REVOKEopt_revoke_grant_optionprivilegesONprivilege_targetFROMgrantee_list
17221750
{
1723-
$$ = cat_str(8, make_str("grant"),$2, make_str("on"),$4,$5, make_str("to"),$7,$8);
1751+
$$ = cat_str(8, make_str("revoke"),$2,$3,make_str("on"),$5, make_str("from"),$7);
17241752
}
17251753
;
17261754

@@ -1732,23 +1760,23 @@ privileges: ALL PRIVILEGES
17321760
{
17331761
$$ = make_str("all");
17341762
}
1735-
|operation_commalist
1763+
|privilege_list
17361764
{
17371765
$$ =$1;
17381766
}
17391767
;
17401768

1741-
operation_commalist:operation
1769+
privilege_list:privilege
17421770
{
17431771
$$ =$1;
17441772
}
1745-
|operation_commalist','operation
1773+
|privilege_list','privilege
17461774
{
17471775
$$ = cat_str(3,$1, make_str(","),$3);
17481776
}
17491777
;
17501778

1751-
operation:SELECT
1779+
privilege:SELECT
17521780
{
17531781
$$ = make_str("select");
17541782
}
@@ -1776,8 +1804,38 @@ operation: SELECT
17761804
{
17771805
$$ = make_str("trigger");
17781806
}
1807+
|EXECUTE
1808+
{
1809+
$$ = make_str("execute");
1810+
}
1811+
|USAGE
1812+
{
1813+
$$ = make_str("usage");
1814+
}
17791815
;
17801816

1817+
privilege_target:relation_name_list
1818+
{
1819+
$$ =$1;
1820+
}
1821+
|TABLErelation_name_list
1822+
{
1823+
$$ = cat2_str(make_str("table"),$2);
1824+
}
1825+
|FUNCTIONfunction_with_argtypes_list
1826+
{
1827+
$$ = cat2_str(make_str("function"),$2);
1828+
}
1829+
|LANGUAGEname_list
1830+
{
1831+
$$ = cat2_str(make_str("language") ,$2);
1832+
}
1833+
;
1834+
1835+
grantee_list:grantee {$$ =$1; }
1836+
|grantee_list','grantee {$$ = cat_str(3,$1, make_str(","),$3); }
1837+
;
1838+
17811839
grantee:PUBLIC
17821840
{
17831841
$$ = make_str("public");
@@ -1792,33 +1850,30 @@ grantee: PUBLIC
17921850
}
17931851
;
17941852

1795-
grantee_list:grantee {$$ =$1; }
1796-
|grantee_list','grantee {$$ = cat_str(3,$1, make_str(","),$3); }
1797-
;
1798-
1799-
opt_with_grant:WITHGRANTOPTION
1800-
{
1801-
mmerror(PARSE_ERROR, ET_WARNING,"Currently unsupported GRANT/WITH GRANT OPTION will be passed to backend");
1802-
$$ = make_str("with grant option");
1803-
}
1853+
opt_grant_grant_option:WITHGRANTOPTION
1854+
{
1855+
mmerror(PARSE_ERROR, ET_WARNING,"Currently unsupported GRANT/WITH GRANT OPTION will be passed to backend");
1856+
$$ = make_str("with grant option");
1857+
}
18041858
|/*EMPTY*/ {$$ = EMPTY; }
18051859
;
18061860

1861+
opt_revoke_grant_option:GRANTOPTIONFOR
1862+
{
1863+
mmerror(PARSE_ERROR, ET_WARNING,"Currently unsupported REVOKE/GRANT OPTION FOR will be passed to backend");
1864+
$$ = make_str("with grant option");
1865+
}
1866+
|/*EMPTY*/ {$$ = EMPTY; }
1867+
;
18071868

1808-
/*****************************************************************************
1809-
*
1810-
*QUERY:
1811-
* REVOKE privileges ON [TABLE relation_name_list FROM [user], ...
1812-
*
1813-
*****************************************************************************/
1814-
1815-
RevokeStmt:REVOKEprivilegesONopt_tablerelation_name_listFROMgrantee_list
1816-
{
1817-
$$ = cat_str(8, make_str("revoke"),$2, make_str("on"),$4,$5, make_str("from"),$7);
1818-
}
1869+
function_with_argtypes_list:function_with_argtypes
1870+
{$$ =$1; }
1871+
|function_with_argtypes_list','function_with_argtypes
1872+
{$$ = cat_str(3,$1, make_str(","),$3); }
18191873
;
18201874

1821-
1875+
function_with_argtypes:func_namefunc_args
1876+
{$$ = cat2_str($1,$2); };
18221877

18231878
/*****************************************************************************
18241879
*
@@ -2188,9 +2243,9 @@ TransactionStmt: ABORT_TRANS opt_trans{ $$ = make_str("rollback"); }
21882243
|ROLLBACKopt_transopt_chain{$$ = cat2_str(make_str("rollback"),$3); }
21892244
;
21902245

2191-
opt_trans:WORK {$$ =""; }
2192-
|TRANSACTION{$$ =""; }
2193-
|/*EMPTY*/{$$ =""; }
2246+
opt_trans:WORK {$$ =EMPTY; }
2247+
|TRANSACTION{$$ =EMPTY; }
2248+
|/*EMPTY*/{$$ =EMPTY; }
21942249
;
21952250

21962251
opt_chain:ANDNOCHAIN {$$ = make_str("and no chain"); }
@@ -2252,20 +2307,49 @@ createdb_opt_list: createdb_opt_item
22522307
{$$ = cat2_str($1,$2); }
22532308
;
22542309

2255-
createdb_opt_item:LOCATION'='StringConst{$$ = cat2_str(make_str("location ="),$3); }
2256-
|LOCATION'='DEFAULT{$$ = make_str("location = default"); }
2257-
|TEMPLATE'='name {$$ = cat2_str(make_str("template ="),$3); }
2258-
|TEMPLATE'='DEFAULT{$$ = make_str("template = default"); }
2259-
|ENCODING'='PosIntStringConst
2310+
createdb_opt_item:LOCATIONopt_equalStringConst{$$ = cat_str(3,make_str("location"),$2,$3); }
2311+
|LOCATIONopt_equalDEFAULT{$$ = cat_str(3, make_str("location"),$2, make_str("default")); }
2312+
|TEMPLATEopt_equalname {$$ = cat_str(3, make_str("template"),$2,$3); }
2313+
|TEMPLATEopt_equalDEFAULT{$$ = cat_str(3, make_str("template"),$2, make_str("default")); }
2314+
|ENCODINGopt_equalPosIntStringConst
2315+
{
2316+
$$ = cat_str(3, make_str("encoding"),$2,$3);
2317+
}
2318+
|ENCODINGopt_equalDEFAULT
2319+
{
2320+
$$ = cat_str(3, make_str("encoding"),$2, make_str("default"));
2321+
}
2322+
|OWNERopt_equalname
22602323
{
2261-
$$ =cat2_str(make_str("encoding ="),$3);
2324+
$$ =cat_str(3,make_str("owner"),$2,$3);
22622325
}
2263-
|ENCODING'='DEFAULT
2326+
|OWNERopt_equalDEFAULT
22642327
{
2265-
$$ = make_str("encoding =default");
2328+
$$ =cat_str(3,make_str("owner"),$2, make_str("default"));
22662329
}
22672330
;
22682331

2332+
opt_equal:'='{$$ = make_str("="); }
2333+
|/* EMPTY*/{$$ = EMPTY; }
2334+
;
2335+
2336+
/*****************************************************************************
2337+
*
2338+
* ALTER DATABASE
2339+
*
2340+
*
2341+
*****************************************************************************/
2342+
2343+
AlterDatabaseSetStmt:ALTERDATABASEdatabase_nameVariableSetStmt
2344+
{
2345+
$$ = cat_str(3, make_str("alter database"),$3,$4);
2346+
}
2347+
|ALTERDATABASEdatabase_nameVariableResetStmt
2348+
{
2349+
$$ = cat_str(3, make_str("alter database"),$3,$4);
2350+
}
2351+
;
2352+
22692353
/*****************************************************************************
22702354
*
22712355
*DROP DATABASE
@@ -2702,10 +2786,7 @@ select_limit: LIMIT select_limit_value OFFSET select_offset_value
27022786
|OFFSETselect_offset_value
27032787
{$$ = cat2_str(make_str("offset"),$2); }
27042788
|LIMITselect_limit_value','select_offset_value
2705-
{$$ = cat_str(4, make_str("limit"),$2, make_str(","),$4); }
2706-
/* enable this in 7.3, bjm 2001-10-22
27072789
{ mmerror(PARSE_ERROR, ET_WARNING,"No longer supported LIMIT #,# syntax passed to backend."); }
2708-
*/
27092790
;
27102791

27112792
opt_select_limit:select_limit{$$ =$1; }
@@ -5147,6 +5228,7 @@ unreserved_keyword:
51475228
|STATISTICS{$$ = make_str("statistics"); }
51485229
|STDIN{$$ = make_str("stdin"); }
51495230
|STDOUT{$$ = make_str("stdout"); }
5231+
|STORAGE {$$ = make_str("storage"); }
51505232
|SYSID{$$ = make_str("sysid"); }
51515233
|TEMP{$$ = make_str("temp"); }
51525234
|TEMPLATE{$$ = make_str("template"); }
@@ -5162,6 +5244,7 @@ unreserved_keyword:
51625244
|UNLISTEN{$$ = make_str("unlisten"); }
51635245
|UNTIL{$$ = make_str("until"); }
51645246
|UPDATE{$$ = make_str("update"); }
5247+
|USAGE{$$ = make_str("usage"); }
51655248
|VACUUM{$$ = make_str("vacuum"); }
51665249
|VALID{$$ = make_str("valid"); }
51675250
|VALUES{$$ = make_str("values"); }

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp