Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
5ca7c8e3
Commit
5ca7c8e3
authored
Mar 06, 2002
by
Michael Meskes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Synced parser with backend.
parent
3c0d21a2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
140 additions
and
50 deletions
+140
-50
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ChangeLog
+7
-0
src/interfaces/ecpg/preproc/preproc.y
src/interfaces/ecpg/preproc/preproc.y
+133
-50
No files found.
src/interfaces/ecpg/ChangeLog
View file @
5ca7c8e3
...
...
@@ -1217,3 +1217,10 @@ Wed Jan 23 17:35:23 CET 2002
- Added patch to temporarily disable locale for descriptors too (Christof).
- Set ecpg version to 2.9.0.
- Set library version to 3.3.0.
Wed Mar 6 10:40:28 CET 2002
- Synced preproc.y with gram.y.
- Set ecpg version to 2.10.0.
- Set library version to 3.4.0.
src/interfaces/ecpg/preproc/preproc.y
View file @
5ca7c8e3
...
...
@@ -197,7 +197,7 @@ make_name(void)
SCHEMA, SCROLL, SECOND_P, SELECT, SESSION, SESSION_USER, SET, SOME, SUBSTRING,
TABLE, TEMPORARY, THEN, TIME, TIMESTAMP
TO, TRAILING, TRANSACTION, TRIM, TRUE_P,
UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING,
UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UPDATE, US
AGE, US
ER, USING,
VALUES, VARCHAR, VARYING, VIEW,
WHEN, WHERE, WITH, WITHOUT, WORK, YEAR_P, ZONE
...
...
@@ -228,7 +228,8 @@ make_name(void)
NONE, NOTHING, NOTIFY, NOTNULL, OFFSET, OIDS,
OPERATOR, OWNER, PASSWORD, PROCEDURAL, REINDEX, RENAME, RESET,
RETURNS, ROW, RULE, SEQUENCE, SETOF, SHARE,
SHOW, START, STATEMENT, STATISTICS, STDIN, STDOUT, SYSID TEMP,
SHOW, START, STATEMENT, STATISTICS, STDIN, STDOUT, STORAGE,
SYSID, TEMP,
TEMPLATE, TOAST, TRUNCATE, TRUSTED, UNLISTEN, UNTIL, VACUUM,
VALID, VERBOSE, VERSION
...
...
@@ -327,12 +328,16 @@ make_name(void)
%type <str> TriggerActionTime CreateTrigStmt DropPLangStmt
%type <str> CreatePLangStmt TriggerFuncArgs TriggerFuncArg simple_select
%type <str> ViewStmt LoadStmt CreatedbStmt createdb_opt_item
%type <str> createdb_opt_list opt_encoding OptInherit
%type <str> createdb_opt_list opt_encoding OptInherit opt_equal
%type <str> AlterUserSetStmt privilege_list privilege privilege_target
%type <str> opt_grant_grant_option opt_revoke_grant_option
%type <str> function_with_argtypes_list function_with_argtypes
%type <str> DropdbStmt ClusterStmt grantee RevokeStmt Bit bit
%type <str> GrantStmt privileges
operation_commalist operation
PosAllConst
%type <str> opt_
with_grant opt_
cursor ConstraintsSetStmt AllConst
%type <str> GrantStmt privileges PosAllConst
%type <str> opt_cursor ConstraintsSetStmt AllConst
%type <str> case_expr when_clause_list case_default case_arg when_clause
%type <str> select_clause opt_select_limit select_limit_value ConstraintTimeSpec
%type <str> select_clause opt_select_limit select_limit_value
%type <str> ConstraintTimeSpec AlterDatabaseSetStmt
%type <str> select_offset_value ReindexStmt join_type opt_boolean
%type <str> join_qual update_list AlterSchemaStmt joined_table
%type <str> opt_level opt_lock lock_type OptGroupList OptGroupElem
...
...
@@ -406,10 +411,12 @@ opt_at: AT connection_target {
argsinsert = NULL;
};
stmt: AlterSchemaStmt { output_statement($1, 0, connection); }
| AlterTableStmt { output_statement($1, 0, connection); }
stmt: AlterDatabaseSetStmt { output_statement($1, 0, connection); }
| AlterGroupStmt { output_statement($1, 0, connection); }
| AlterSchemaStmt { output_statement($1, 0, connection); }
| AlterTableStmt { output_statement($1, 0, connection); }
| AlterUserStmt { output_statement($1, 0, connection); }
| AlterUserSetStmt { output_statement($1, 0, connection); }
| ClosePortalStmt { output_statement($1, 0, connection); }
| CommentStmt { output_statement($1, 0, connection); }
| CopyStmt { output_statement($1, 0, connection); }
...
...
@@ -634,6 +641,16 @@ AlterUserStmt: ALTER USER UserId OptUserList
}
;
AlterUserSetStmt: ALTER USER UserId VariableSetStmt
{
$$ = cat_str(3, make_str("alter user"), $3, $4);
}
| ALTER USER UserId VariableResetStmt
{
$$ = cat_str(3, make_str("alter user"), $3, $4);
}
;
/*****************************************************************************
*
* Drop a postgresql DBMS user
...
...
@@ -976,6 +993,11 @@ AlterTableStmt:
{
$$ = cat_str(7, make_str("alter table"), $3, make_str("alter"), $5, $6, make_str("set statistics"), $9);
}
/* ALTER TABLE <relation> ALTER [COLUMN] <colname> SET STORAGE <storagemode> */
| ALTER TABLE relation_expr ALTER opt_column ColId SET STORAGE ColId
{
$$ = cat_str(7, make_str("alter table"), $3, make_str("alter"), $5, $6, make_str("set storage"), $9);
}
/* ALTER TABLE <relation> DROP [COLUMN] <colname> {RESTRICT|CASCADE} */
| ALTER TABLE relation_expr DROP opt_column ColId drop_behavior
{
...
...
@@ -1714,13 +1736,19 @@ comment_text: StringConst { $$ = $1; }
/*****************************************************************************
*
* QUERY:
* GRANT
[privileges] ON [TABLE] relation_name_list TO [GROUP] grantee, ...
* GRANT
and REVOKE statements
*
*****************************************************************************/
GrantStmt: GRANT privileges ON opt_table relation_name_list TO grantee_list opt_with_grant
GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option
{
$$ = cat_str(7, make_str("grant"), $2, make_str("on"), $4, make_str("to"), $6, $7);
}
;
RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target FROM grantee_list
{
$$ = cat_str(8, make_str("
grant"), $2, make_str("on"), $4, $5, make_str("to"), $7, $8
);
$$ = cat_str(8, make_str("
revoke"), $2, $3, make_str("on"), $5, make_str("from"), $7
);
}
;
...
...
@@ -1732,23 +1760,23 @@ privileges: ALL PRIVILEGES
{
$$ = make_str("all");
}
|
operation_comma
list
|
privilege_
list
{
$$ = $1;
}
;
operation_commalist: operation
privilege_list: privilege
{
$$ = $1;
}
|
operation_commalist ',' operation
|
privilege_list ',' privilege
{
$$ = cat_str(3, $1, make_str(","), $3);
}
;
operation
: SELECT
privilege
: SELECT
{
$$ = make_str("select");
}
...
...
@@ -1776,8 +1804,38 @@ operation: SELECT
{
$$ = make_str("trigger");
}
| EXECUTE
{
$$ = make_str("execute");
}
| USAGE
{
$$ = make_str("usage");
}
;
privilege_target: relation_name_list
{
$$ = $1;
}
| TABLE relation_name_list
{
$$ = cat2_str(make_str("table"), $2);
}
| FUNCTION function_with_argtypes_list
{
$$ = cat2_str(make_str("function"), $2);
}
| LANGUAGE name_list
{
$$ = cat2_str(make_str("language") , $2);
}
;
grantee_list: grantee { $$ = $1; }
| grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); }
;
grantee: PUBLIC
{
$$ = make_str("public");
...
...
@@ -1792,33 +1850,30 @@ grantee: PUBLIC
}
;
grantee_list: grantee { $$ = $1; }
| grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); }
;
opt_with_grant: WITH GRANT OPTION
{
mmerror(PARSE_ERROR, ET_WARNING, "Currently unsupported GRANT/WITH GRANT OPTION will be passed to backend");
$$ = make_str("with grant option");
}
opt_grant_grant_option: WITH GRANT OPTION
{
mmerror(PARSE_ERROR, ET_WARNING, "Currently unsupported GRANT/WITH GRANT OPTION will be passed to backend");
$$ = make_str("with grant option");
}
| /*EMPTY*/ { $$ = EMPTY; }
;
opt_revoke_grant_option: GRANT OPTION FOR
{
mmerror(PARSE_ERROR, ET_WARNING, "Currently unsupported REVOKE/GRANT OPTION FOR will be passed to backend");
$$ = make_str("with grant option");
}
| /*EMPTY*/ { $$ = EMPTY; }
;
/*****************************************************************************
*
* QUERY:
* REVOKE privileges ON [TABLE relation_name_list FROM [user], ...
*
*****************************************************************************/
RevokeStmt: REVOKE privileges ON opt_table relation_name_list FROM grantee_list
{
$$ = cat_str(8, make_str("revoke"), $2, make_str("on"), $4, $5, make_str("from"), $7);
}
function_with_argtypes_list: function_with_argtypes
{ $$ = $1; }
| function_with_argtypes_list ',' function_with_argtypes
{ $$ = cat_str(3, $1, make_str(","), $3); }
;
function_with_argtypes: func_name func_args
{ $$ = cat2_str($1, $2); };
/*****************************************************************************
*
...
...
@@ -2188,9 +2243,9 @@ TransactionStmt: ABORT_TRANS opt_trans { $$ = make_str("rollback"); }
| ROLLBACK opt_trans opt_chain { $$ = cat2_str(make_str("rollback"), $3); }
;
opt_trans: WORK { $$ =
""
; }
| TRANSACTION { $$ =
""
; }
| /*EMPTY*/ { $$ =
""
; }
opt_trans: WORK { $$ =
EMPTY
; }
| TRANSACTION { $$ =
EMPTY
; }
| /*EMPTY*/ { $$ =
EMPTY
; }
;
opt_chain: AND NO CHAIN { $$ = make_str("and no chain"); }
...
...
@@ -2252,20 +2307,49 @@ createdb_opt_list: createdb_opt_item
{ $$ = cat2_str($1, $2); }
;
createdb_opt_item: LOCATION '=' StringConst { $$ = cat2_str(make_str("location ="), $3); }
| LOCATION '=' DEFAULT { $$ = make_str("location = default"); }
| TEMPLATE '=' name { $$ = cat2_str(make_str("template ="), $3); }
| TEMPLATE '=' DEFAULT { $$ = make_str("template = default"); }
| ENCODING '=' PosIntStringConst
createdb_opt_item: LOCATION opt_equal StringConst { $$ = cat_str(3,make_str("location"), $2, $3); }
| LOCATION opt_equal DEFAULT { $$ = cat_str(3, make_str("location"), $2, make_str("default")); }
| TEMPLATE opt_equal name { $$ = cat_str(3, make_str("template"), $2, $3); }
| TEMPLATE opt_equal DEFAULT { $$ = cat_str(3, make_str("template"), $2, make_str("default")); }
| ENCODING opt_equal PosIntStringConst
{
$$ = cat_str(3, make_str("encoding"), $2, $3);
}
| ENCODING opt_equal DEFAULT
{
$$ = cat_str(3, make_str("encoding"), $2, make_str("default"));
}
| OWNER opt_equal name
{
$$ = cat
2_str(make_str("encoding =")
, $3);
$$ = cat
_str(3, make_str("owner"), $2
, $3);
}
|
ENCODING '='
DEFAULT
|
OWNER opt_equal
DEFAULT
{
$$ =
make_str("encoding = default"
);
$$ =
cat_str(3, make_str("owner"), $2, make_str("default")
);
}
;
opt_equal: '=' { $$ = make_str("="); }
| /* EMPTY */ { $$ = EMPTY; }
;
/*****************************************************************************
*
* ALTER DATABASE
*
*
*****************************************************************************/
AlterDatabaseSetStmt: ALTER DATABASE database_name VariableSetStmt
{
$$ = cat_str(3, make_str("alter database"), $3, $4);
}
| ALTER DATABASE database_name VariableResetStmt
{
$$ = cat_str(3, make_str("alter database"), $3, $4);
}
;
/*****************************************************************************
*
* DROP DATABASE
...
...
@@ -2702,10 +2786,7 @@ select_limit: LIMIT select_limit_value OFFSET select_offset_value
| OFFSET select_offset_value
{ $$ = cat2_str(make_str("offset"), $2); }
| LIMIT select_limit_value ',' select_offset_value
{ $$ = cat_str(4, make_str("limit"), $2, make_str(","), $4); }
/* enable this in 7.3, bjm 2001-10-22
{ mmerror(PARSE_ERROR, ET_WARNING, "No longer supported LIMIT #,# syntax passed to backend."); }
*/
;
opt_select_limit: select_limit { $$ = $1; }
...
...
@@ -5147,6 +5228,7 @@ unreserved_keyword:
| STATISTICS { $$ = make_str("statistics"); }
| STDIN { $$ = make_str("stdin"); }
| STDOUT { $$ = make_str("stdout"); }
| STORAGE { $$ = make_str("storage"); }
| SYSID { $$ = make_str("sysid"); }
| TEMP { $$ = make_str("temp"); }
| TEMPLATE { $$ = make_str("template"); }
...
...
@@ -5162,6 +5244,7 @@ unreserved_keyword:
| UNLISTEN { $$ = make_str("unlisten"); }
| UNTIL { $$ = make_str("until"); }
| UPDATE { $$ = make_str("update"); }
| USAGE { $$ = make_str("usage"); }
| VACUUM { $$ = make_str("vacuum"); }
| VALID { $$ = make_str("valid"); }
| VALUES { $$ = make_str("values"); }
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment