mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
Support SQL92-ish DECLARE and FETCH commands.
Adds a few new keywords, but all are allowed as column names etc.
This commit is contained in:
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.29 1998/09/02 15:47:30 thomas Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.30 1998/09/13 04:19:29 thomas Exp $
|
||||||
*
|
*
|
||||||
* HISTORY
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -185,6 +185,7 @@ Oid param_type(int t); /* used in parse_expr.c */
|
|||||||
|
|
||||||
%type <boolean> opt_inh_star, opt_binary, opt_instead, opt_with_copy,
|
%type <boolean> opt_inh_star, opt_binary, opt_instead, opt_with_copy,
|
||||||
index_opt_unique, opt_verbose, opt_analyze
|
index_opt_unique, opt_verbose, opt_analyze
|
||||||
|
%type <boolean> cursor_clause, opt_cursor, opt_readonly, opt_of
|
||||||
|
|
||||||
%type <ival> copy_dirn, def_type, opt_direction, remove_type,
|
%type <ival> copy_dirn, def_type, opt_direction, remove_type,
|
||||||
opt_column, event
|
opt_column, event
|
||||||
@ -256,7 +257,7 @@ Oid param_type(int t); /* used in parse_expr.c */
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Keywords (in SQL92 reserved words) */
|
/* Keywords (in SQL92 reserved words) */
|
||||||
%token ACTION, ADD, ALL, ALTER, AND, ANY AS, ASC,
|
%token ABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY AS, ASC,
|
||||||
BEGIN_TRANS, BETWEEN, BOTH, BY,
|
BEGIN_TRANS, BETWEEN, BOTH, BY,
|
||||||
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
|
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
|
||||||
CONSTRAINT, CREATE, CROSS, CURRENT, CURRENT_DATE, CURRENT_TIME,
|
CONSTRAINT, CREATE, CROSS, CURRENT, CURRENT_DATE, CURRENT_TIME,
|
||||||
@ -265,14 +266,14 @@ Oid param_type(int t); /* used in parse_expr.c */
|
|||||||
END_TRANS, EXECUTE, EXISTS, EXTRACT,
|
END_TRANS, EXECUTE, EXISTS, EXTRACT,
|
||||||
FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
|
FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
|
||||||
GRANT, GROUP, HAVING, HOUR_P,
|
GRANT, GROUP, HAVING, HOUR_P,
|
||||||
IN, INNER_P, INSERT, INTERVAL, INTO, IS,
|
IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS,
|
||||||
JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL,
|
JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL,
|
||||||
MATCH, MINUTE_P, MONTH_P, NAMES,
|
MATCH, MINUTE_P, MONTH_P, NAMES,
|
||||||
NATIONAL, NATURAL, NCHAR, NO, NOT, NOTIFY, NULL_P, NUMERIC,
|
NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NOTIFY, NULL_P, NUMERIC,
|
||||||
ON, OPTION, OR, ORDER, OUTER_P,
|
OF, ON, ONLY, OPTION, OR, ORDER, OUTER_P,
|
||||||
PARTIAL, POSITION, PRECISION, PRIMARY, PRIVILEGES, PROCEDURE, PUBLIC,
|
PARTIAL, POSITION, PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC,
|
||||||
REFERENCES, REVOKE, RIGHT, ROLLBACK,
|
READ, REFERENCES, RELATIVE, REVOKE, RIGHT, ROLLBACK,
|
||||||
SECOND_P, SELECT, SET, SUBSTRING,
|
SCROLL, SECOND_P, SELECT, SET, SUBSTRING,
|
||||||
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
|
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
|
||||||
TO, TRAILING, TRANSACTION, TRIM,
|
TO, TRAILING, TRANSACTION, TRIM,
|
||||||
UNION, UNIQUE, UPDATE, USER, USING,
|
UNION, UNIQUE, UPDATE, USER, USING,
|
||||||
@ -796,6 +797,16 @@ ColConstraint:
|
|||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
/* The column constraint WITH NULL gives a shift/reduce error
|
||||||
|
* because it requires yacc to look more than one token ahead to
|
||||||
|
* resolve WITH TIME ZONE and WITH NULL.
|
||||||
|
* So, leave it out of the syntax for now.
|
||||||
|
| WITH NULL_P
|
||||||
|
{
|
||||||
|
$$ = NULL;
|
||||||
|
}
|
||||||
|
* - thomas 1998-09-12
|
||||||
|
*/
|
||||||
ColConstraintElem: CHECK '(' constraint_expr ')'
|
ColConstraintElem: CHECK '(' constraint_expr ')'
|
||||||
{
|
{
|
||||||
Constraint *n = makeNode(Constraint);
|
Constraint *n = makeNode(Constraint);
|
||||||
@ -1512,13 +1523,26 @@ DestroyStmt: DROP TABLE relation_name_list
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* QUERY:
|
* QUERY:
|
||||||
* fetch/move [forward | backward] [number | all ] [ in <portalname> ]
|
* fetch/move [forward | backward] [ # | all ] [ in <portalname> ]
|
||||||
|
* fetch [ forward | backward | absolute | relative ]
|
||||||
|
* [ # | all | next | prior ] [ [ in | from ] <portalname> ]
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name
|
FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name
|
||||||
{
|
{
|
||||||
FetchStmt *n = makeNode(FetchStmt);
|
FetchStmt *n = makeNode(FetchStmt);
|
||||||
|
if ($2 == RELATIVE)
|
||||||
|
{
|
||||||
|
if ($3 == 0)
|
||||||
|
elog(ERROR,"FETCH/RELATIVE at current position is not supported");
|
||||||
|
$2 = FORWARD;
|
||||||
|
}
|
||||||
|
if ($3 < 0)
|
||||||
|
{
|
||||||
|
$3 = -$3;
|
||||||
|
$2 = (($2 == FORWARD)? BACKWARD: FORWARD);
|
||||||
|
}
|
||||||
n->direction = $2;
|
n->direction = $2;
|
||||||
n->howMany = $3;
|
n->howMany = $3;
|
||||||
n->portalname = $4;
|
n->portalname = $4;
|
||||||
@ -1528,6 +1552,11 @@ FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name
|
|||||||
| MOVE opt_direction fetch_how_many opt_portal_name
|
| MOVE opt_direction fetch_how_many opt_portal_name
|
||||||
{
|
{
|
||||||
FetchStmt *n = makeNode(FetchStmt);
|
FetchStmt *n = makeNode(FetchStmt);
|
||||||
|
if ($3 < 0)
|
||||||
|
{
|
||||||
|
$3 = -$3;
|
||||||
|
$2 = (($2 == FORWARD)? BACKWARD: FORWARD);
|
||||||
|
}
|
||||||
n->direction = $2;
|
n->direction = $2;
|
||||||
n->howMany = $3;
|
n->howMany = $3;
|
||||||
n->portalname = $4;
|
n->portalname = $4;
|
||||||
@ -1538,17 +1567,25 @@ FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name
|
|||||||
|
|
||||||
opt_direction: FORWARD { $$ = FORWARD; }
|
opt_direction: FORWARD { $$ = FORWARD; }
|
||||||
| BACKWARD { $$ = BACKWARD; }
|
| BACKWARD { $$ = BACKWARD; }
|
||||||
|
| RELATIVE { $$ = RELATIVE; }
|
||||||
|
| ABSOLUTE
|
||||||
|
{
|
||||||
|
elog(NOTICE,"FETCH/ABSOLUTE not supported, using RELATIVE");
|
||||||
|
$$ = RELATIVE;
|
||||||
|
}
|
||||||
| /*EMPTY*/ { $$ = FORWARD; /* default */ }
|
| /*EMPTY*/ { $$ = FORWARD; /* default */ }
|
||||||
;
|
;
|
||||||
|
|
||||||
fetch_how_many: Iconst
|
fetch_how_many: Iconst { $$ = $1; }
|
||||||
{ $$ = $1;
|
| '-' Iconst { $$ = - $2; }
|
||||||
if ($1 <= 0) elog(ERROR,"Please specify nonnegative count for fetch"); }
|
|
||||||
| ALL { $$ = 0; /* 0 means fetch all tuples*/ }
|
| ALL { $$ = 0; /* 0 means fetch all tuples*/ }
|
||||||
|
| NEXT { $$ = 1; }
|
||||||
|
| PRIOR { $$ = -1; }
|
||||||
| /*EMPTY*/ { $$ = 1; /*default*/ }
|
| /*EMPTY*/ { $$ = 1; /*default*/ }
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_portal_name: IN name { $$ = $2; }
|
opt_portal_name: IN name { $$ = $2; }
|
||||||
|
| FROM name { $$ = $2; }
|
||||||
| /*EMPTY*/ { $$ = NULL; }
|
| /*EMPTY*/ { $$ = NULL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -2460,11 +2497,12 @@ UpdateStmt: UPDATE relation_name
|
|||||||
* CURSOR STATEMENTS
|
* CURSOR STATEMENTS
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
CursorStmt: DECLARE name opt_binary CURSOR FOR
|
CursorStmt: DECLARE name opt_cursor CURSOR FOR
|
||||||
SELECT opt_unique res_target_list2
|
SELECT opt_unique res_target_list2
|
||||||
from_clause where_clause
|
from_clause where_clause
|
||||||
group_clause having_clause
|
group_clause having_clause
|
||||||
union_clause sort_clause
|
union_clause sort_clause
|
||||||
|
cursor_clause
|
||||||
{
|
{
|
||||||
SelectStmt *n = makeNode(SelectStmt);
|
SelectStmt *n = makeNode(SelectStmt);
|
||||||
|
|
||||||
@ -2493,6 +2531,30 @@ CursorStmt: DECLARE name opt_binary CURSOR FOR
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
opt_cursor: BINARY { $$ = TRUE; }
|
||||||
|
| INSENSITIVE { $$ = FALSE; }
|
||||||
|
| SCROLL { $$ = FALSE; }
|
||||||
|
| INSENSITIVE SCROLL { $$ = FALSE; }
|
||||||
|
| /*EMPTY*/ { $$ = FALSE; }
|
||||||
|
;
|
||||||
|
|
||||||
|
cursor_clause: FOR opt_readonly { $$ = $2; }
|
||||||
|
| /*EMPTY*/ { $$ = FALSE; }
|
||||||
|
;
|
||||||
|
|
||||||
|
opt_readonly: READ ONLY { $$ = TRUE; }
|
||||||
|
| UPDATE opt_of
|
||||||
|
{
|
||||||
|
elog(ERROR,"DECLARE/UPDATE not supported;"
|
||||||
|
" Cursors must be READ ONLY.");
|
||||||
|
$$ = FALSE;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
opt_of: OF columnList
|
||||||
|
{
|
||||||
|
$$ = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
@ -4551,6 +4613,7 @@ TypeId: ColId
|
|||||||
*/
|
*/
|
||||||
ColId: IDENT { $$ = $1; }
|
ColId: IDENT { $$ = $1; }
|
||||||
| datetime { $$ = $1; }
|
| datetime { $$ = $1; }
|
||||||
|
| ABSOLUTE { $$ = "absolute"; }
|
||||||
| ACTION { $$ = "action"; }
|
| ACTION { $$ = "action"; }
|
||||||
| CACHE { $$ = "cache"; }
|
| CACHE { $$ = "cache"; }
|
||||||
| CYCLE { $$ = "cycle"; }
|
| CYCLE { $$ = "cycle"; }
|
||||||
@ -4562,18 +4625,26 @@ ColId: IDENT { $$ = $1; }
|
|||||||
| FUNCTION { $$ = "function"; }
|
| FUNCTION { $$ = "function"; }
|
||||||
| INCREMENT { $$ = "increment"; }
|
| INCREMENT { $$ = "increment"; }
|
||||||
| INDEX { $$ = "index"; }
|
| INDEX { $$ = "index"; }
|
||||||
|
| INSENSITIVE { $$ = "insensitive"; }
|
||||||
| KEY { $$ = "key"; }
|
| KEY { $$ = "key"; }
|
||||||
| LANGUAGE { $$ = "language"; }
|
| LANGUAGE { $$ = "language"; }
|
||||||
| LOCATION { $$ = "location"; }
|
| LOCATION { $$ = "location"; }
|
||||||
| MATCH { $$ = "match"; }
|
| MATCH { $$ = "match"; }
|
||||||
| MAXVALUE { $$ = "maxvalue"; }
|
| MAXVALUE { $$ = "maxvalue"; }
|
||||||
| MINVALUE { $$ = "minvalue"; }
|
| MINVALUE { $$ = "minvalue"; }
|
||||||
|
| NEXT { $$ = "next"; }
|
||||||
|
| OF { $$ = "of"; }
|
||||||
|
| ONLY { $$ = "only"; }
|
||||||
| OPERATOR { $$ = "operator"; }
|
| OPERATOR { $$ = "operator"; }
|
||||||
| OPTION { $$ = "option"; }
|
| OPTION { $$ = "option"; }
|
||||||
| PASSWORD { $$ = "password"; }
|
| PASSWORD { $$ = "password"; }
|
||||||
|
| PRIOR { $$ = "prior"; }
|
||||||
| PRIVILEGES { $$ = "privileges"; }
|
| PRIVILEGES { $$ = "privileges"; }
|
||||||
|
| READ { $$ = "read"; }
|
||||||
| RECIPE { $$ = "recipe"; }
|
| RECIPE { $$ = "recipe"; }
|
||||||
|
| RELATIVE { $$ = "relative"; }
|
||||||
| ROW { $$ = "row"; }
|
| ROW { $$ = "row"; }
|
||||||
|
| SCROLL { $$ = "scroll"; }
|
||||||
| SERIAL { $$ = "serial"; }
|
| SERIAL { $$ = "serial"; }
|
||||||
| START { $$ = "start"; }
|
| START { $$ = "start"; }
|
||||||
| STATEMENT { $$ = "statement"; }
|
| STATEMENT { $$ = "statement"; }
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.44 1998/09/01 04:30:23 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.45 1998/09/13 04:19:31 thomas Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -28,8 +28,9 @@
|
|||||||
* search is used to locate entries.
|
* search is used to locate entries.
|
||||||
*/
|
*/
|
||||||
static ScanKeyword ScanKeywords[] = {
|
static ScanKeyword ScanKeywords[] = {
|
||||||
/* name value */
|
/* name, value */
|
||||||
{"abort", ABORT_TRANS},
|
{"abort", ABORT_TRANS},
|
||||||
|
{"absolute", ABSOLUTE},
|
||||||
{"action", ACTION},
|
{"action", ACTION},
|
||||||
{"add", ADD},
|
{"add", ADD},
|
||||||
{"after", AFTER},
|
{"after", AFTER},
|
||||||
@ -143,6 +144,7 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"natural", NATURAL},
|
{"natural", NATURAL},
|
||||||
{"nchar", NCHAR},
|
{"nchar", NCHAR},
|
||||||
{"new", NEW},
|
{"new", NEW},
|
||||||
|
{"next", NEXT},
|
||||||
{"no", NO},
|
{"no", NO},
|
||||||
{"nocreatedb", NOCREATEDB},
|
{"nocreatedb", NOCREATEDB},
|
||||||
{"nocreateuser", NOCREATEUSER},
|
{"nocreateuser", NOCREATEUSER},
|
||||||
@ -153,9 +155,11 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"notnull", NOTNULL},
|
{"notnull", NOTNULL},
|
||||||
{"null", NULL_P},
|
{"null", NULL_P},
|
||||||
{"numeric", NUMERIC},
|
{"numeric", NUMERIC},
|
||||||
|
{"of", OF},
|
||||||
{"oids", OIDS},
|
{"oids", OIDS},
|
||||||
{"old", CURRENT},
|
{"old", CURRENT},
|
||||||
{"on", ON},
|
{"on", ON},
|
||||||
|
{"only", ONLY},
|
||||||
{"operator", OPERATOR},
|
{"operator", OPERATOR},
|
||||||
{"option", OPTION},
|
{"option", OPTION},
|
||||||
{"or", OR},
|
{"or", OR},
|
||||||
@ -166,12 +170,15 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"position", POSITION},
|
{"position", POSITION},
|
||||||
{"precision", PRECISION},
|
{"precision", PRECISION},
|
||||||
{"primary", PRIMARY},
|
{"primary", PRIMARY},
|
||||||
|
{"prior", PRIOR},
|
||||||
{"privileges", PRIVILEGES},
|
{"privileges", PRIVILEGES},
|
||||||
{"procedural", PROCEDURAL},
|
{"procedural", PROCEDURAL},
|
||||||
{"procedure", PROCEDURE},
|
{"procedure", PROCEDURE},
|
||||||
{"public", PUBLIC},
|
{"public", PUBLIC},
|
||||||
|
{"read", READ},
|
||||||
{"recipe", RECIPE},
|
{"recipe", RECIPE},
|
||||||
{"references", REFERENCES},
|
{"references", REFERENCES},
|
||||||
|
{"relative", RELATIVE},
|
||||||
{"rename", RENAME},
|
{"rename", RENAME},
|
||||||
{"reset", RESET},
|
{"reset", RESET},
|
||||||
{"returns", RETURNS},
|
{"returns", RETURNS},
|
||||||
@ -180,6 +187,7 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"rollback", ROLLBACK},
|
{"rollback", ROLLBACK},
|
||||||
{"row", ROW},
|
{"row", ROW},
|
||||||
{"rule", RULE},
|
{"rule", RULE},
|
||||||
|
{"scroll", SCROLL},
|
||||||
{"second", SECOND_P},
|
{"second", SECOND_P},
|
||||||
{"select", SELECT},
|
{"select", SELECT},
|
||||||
{"sequence", SEQUENCE},
|
{"sequence", SEQUENCE},
|
||||||
|
@ -29,208 +29,217 @@ typedef union
|
|||||||
RuleStmt *rstmt;
|
RuleStmt *rstmt;
|
||||||
InsertStmt *astmt;
|
InsertStmt *astmt;
|
||||||
} YYSTYPE;
|
} YYSTYPE;
|
||||||
#define ACTION 258
|
#define ABSOLUTE 258
|
||||||
#define ADD 259
|
#define ACTION 259
|
||||||
#define ALL 260
|
#define ADD 260
|
||||||
#define ALTER 261
|
#define ALL 261
|
||||||
#define AND 262
|
#define ALTER 262
|
||||||
#define ANY 263
|
#define AND 263
|
||||||
#define AS 264
|
#define ANY 264
|
||||||
#define ASC 265
|
#define AS 265
|
||||||
#define BEGIN_TRANS 266
|
#define ASC 266
|
||||||
#define BETWEEN 267
|
#define BEGIN_TRANS 267
|
||||||
#define BOTH 268
|
#define BETWEEN 268
|
||||||
#define BY 269
|
#define BOTH 269
|
||||||
#define CASCADE 270
|
#define BY 270
|
||||||
#define CAST 271
|
#define CASCADE 271
|
||||||
#define CHAR 272
|
#define CAST 272
|
||||||
#define CHARACTER 273
|
#define CHAR 273
|
||||||
#define CHECK 274
|
#define CHARACTER 274
|
||||||
#define CLOSE 275
|
#define CHECK 275
|
||||||
#define COLLATE 276
|
#define CLOSE 276
|
||||||
#define COLUMN 277
|
#define COLLATE 277
|
||||||
#define COMMIT 278
|
#define COLUMN 278
|
||||||
#define CONSTRAINT 279
|
#define COMMIT 279
|
||||||
#define CREATE 280
|
#define CONSTRAINT 280
|
||||||
#define CROSS 281
|
#define CREATE 281
|
||||||
#define CURRENT 282
|
#define CROSS 282
|
||||||
#define CURRENT_DATE 283
|
#define CURRENT 283
|
||||||
#define CURRENT_TIME 284
|
#define CURRENT_DATE 284
|
||||||
#define CURRENT_TIMESTAMP 285
|
#define CURRENT_TIME 285
|
||||||
#define CURRENT_USER 286
|
#define CURRENT_TIMESTAMP 286
|
||||||
#define CURSOR 287
|
#define CURRENT_USER 287
|
||||||
#define DAY_P 288
|
#define CURSOR 288
|
||||||
#define DECIMAL 289
|
#define DAY_P 289
|
||||||
#define DECLARE 290
|
#define DECIMAL 290
|
||||||
#define DEFAULT 291
|
#define DECLARE 291
|
||||||
#define DELETE 292
|
#define DEFAULT 292
|
||||||
#define DESC 293
|
#define DELETE 293
|
||||||
#define DISTINCT 294
|
#define DESC 294
|
||||||
#define DOUBLE 295
|
#define DISTINCT 295
|
||||||
#define DROP 296
|
#define DOUBLE 296
|
||||||
#define END_TRANS 297
|
#define DROP 297
|
||||||
#define EXECUTE 298
|
#define END_TRANS 298
|
||||||
#define EXISTS 299
|
#define EXECUTE 299
|
||||||
#define EXTRACT 300
|
#define EXISTS 300
|
||||||
#define FETCH 301
|
#define EXTRACT 301
|
||||||
#define FLOAT 302
|
#define FETCH 302
|
||||||
#define FOR 303
|
#define FLOAT 303
|
||||||
#define FOREIGN 304
|
#define FOR 304
|
||||||
#define FROM 305
|
#define FOREIGN 305
|
||||||
#define FULL 306
|
#define FROM 306
|
||||||
#define GRANT 307
|
#define FULL 307
|
||||||
#define GROUP 308
|
#define GRANT 308
|
||||||
#define HAVING 309
|
#define GROUP 309
|
||||||
#define HOUR_P 310
|
#define HAVING 310
|
||||||
#define IN 311
|
#define HOUR_P 311
|
||||||
#define INNER_P 312
|
#define IN 312
|
||||||
#define INSERT 313
|
#define INNER_P 313
|
||||||
#define INTERVAL 314
|
#define INSENSITIVE 314
|
||||||
#define INTO 315
|
#define INSERT 315
|
||||||
#define IS 316
|
#define INTERVAL 316
|
||||||
#define JOIN 317
|
#define INTO 317
|
||||||
#define KEY 318
|
#define IS 318
|
||||||
#define LANGUAGE 319
|
#define JOIN 319
|
||||||
#define LEADING 320
|
#define KEY 320
|
||||||
#define LEFT 321
|
#define LANGUAGE 321
|
||||||
#define LIKE 322
|
#define LEADING 322
|
||||||
#define LOCAL 323
|
#define LEFT 323
|
||||||
#define MATCH 324
|
#define LIKE 324
|
||||||
#define MINUTE_P 325
|
#define LOCAL 325
|
||||||
#define MONTH_P 326
|
#define MATCH 326
|
||||||
#define NAMES 327
|
#define MINUTE_P 327
|
||||||
#define NATIONAL 328
|
#define MONTH_P 328
|
||||||
#define NATURAL 329
|
#define NAMES 329
|
||||||
#define NCHAR 330
|
#define NATIONAL 330
|
||||||
#define NO 331
|
#define NATURAL 331
|
||||||
#define NOT 332
|
#define NCHAR 332
|
||||||
#define NOTIFY 333
|
#define NEXT 333
|
||||||
#define NULL_P 334
|
#define NO 334
|
||||||
#define NUMERIC 335
|
#define NOT 335
|
||||||
#define ON 336
|
#define NOTIFY 336
|
||||||
#define OPTION 337
|
#define NULL_P 337
|
||||||
#define OR 338
|
#define NUMERIC 338
|
||||||
#define ORDER 339
|
#define OF 339
|
||||||
#define OUTER_P 340
|
#define ON 340
|
||||||
#define PARTIAL 341
|
#define ONLY 341
|
||||||
#define POSITION 342
|
#define OPTION 342
|
||||||
#define PRECISION 343
|
#define OR 343
|
||||||
#define PRIMARY 344
|
#define ORDER 344
|
||||||
#define PRIVILEGES 345
|
#define OUTER_P 345
|
||||||
#define PROCEDURE 346
|
#define PARTIAL 346
|
||||||
#define PUBLIC 347
|
#define POSITION 347
|
||||||
#define REFERENCES 348
|
#define PRECISION 348
|
||||||
#define REVOKE 349
|
#define PRIMARY 349
|
||||||
#define RIGHT 350
|
#define PRIOR 350
|
||||||
#define ROLLBACK 351
|
#define PRIVILEGES 351
|
||||||
#define SECOND_P 352
|
#define PROCEDURE 352
|
||||||
#define SELECT 353
|
#define PUBLIC 353
|
||||||
#define SET 354
|
#define READ 354
|
||||||
#define SUBSTRING 355
|
#define REFERENCES 355
|
||||||
#define TABLE 356
|
#define RELATIVE 356
|
||||||
#define TIME 357
|
#define REVOKE 357
|
||||||
#define TIMESTAMP 358
|
#define RIGHT 358
|
||||||
#define TIMEZONE_HOUR 359
|
#define ROLLBACK 359
|
||||||
#define TIMEZONE_MINUTE 360
|
#define SCROLL 360
|
||||||
#define TO 361
|
#define SECOND_P 361
|
||||||
#define TRAILING 362
|
#define SELECT 362
|
||||||
#define TRANSACTION 363
|
#define SET 363
|
||||||
#define TRIM 364
|
#define SUBSTRING 364
|
||||||
#define UNION 365
|
#define TABLE 365
|
||||||
#define UNIQUE 366
|
#define TIME 366
|
||||||
#define UPDATE 367
|
#define TIMESTAMP 367
|
||||||
#define USER 368
|
#define TIMEZONE_HOUR 368
|
||||||
#define USING 369
|
#define TIMEZONE_MINUTE 369
|
||||||
#define VALUES 370
|
#define TO 370
|
||||||
#define VARCHAR 371
|
#define TRAILING 371
|
||||||
#define VARYING 372
|
#define TRANSACTION 372
|
||||||
#define VIEW 373
|
#define TRIM 373
|
||||||
#define WHERE 374
|
#define UNION 374
|
||||||
#define WITH 375
|
#define UNIQUE 375
|
||||||
#define WORK 376
|
#define UPDATE 376
|
||||||
#define YEAR_P 377
|
#define USER 377
|
||||||
#define ZONE 378
|
#define USING 378
|
||||||
#define FALSE_P 379
|
#define VALUES 379
|
||||||
#define TRIGGER 380
|
#define VARCHAR 380
|
||||||
#define TRUE_P 381
|
#define VARYING 381
|
||||||
#define TYPE_P 382
|
#define VIEW 382
|
||||||
#define ABORT_TRANS 383
|
#define WHERE 383
|
||||||
#define AFTER 384
|
#define WITH 384
|
||||||
#define AGGREGATE 385
|
#define WORK 385
|
||||||
#define ANALYZE 386
|
#define YEAR_P 386
|
||||||
#define BACKWARD 387
|
#define ZONE 387
|
||||||
#define BEFORE 388
|
#define FALSE_P 388
|
||||||
#define BINARY 389
|
#define TRIGGER 389
|
||||||
#define CACHE 390
|
#define TRUE_P 390
|
||||||
#define CLUSTER 391
|
#define TYPE_P 391
|
||||||
#define COPY 392
|
#define ABORT_TRANS 392
|
||||||
#define CYCLE 393
|
#define AFTER 393
|
||||||
#define DATABASE 394
|
#define AGGREGATE 394
|
||||||
#define DELIMITERS 395
|
#define ANALYZE 395
|
||||||
#define DO 396
|
#define BACKWARD 396
|
||||||
#define EACH 397
|
#define BEFORE 397
|
||||||
#define EXPLAIN 398
|
#define BINARY 398
|
||||||
#define EXTEND 399
|
#define CACHE 399
|
||||||
#define FORWARD 400
|
#define CLUSTER 400
|
||||||
#define FUNCTION 401
|
#define COPY 401
|
||||||
#define HANDLER 402
|
#define CYCLE 402
|
||||||
#define INCREMENT 403
|
#define DATABASE 403
|
||||||
#define INDEX 404
|
#define DELIMITERS 404
|
||||||
#define INHERITS 405
|
#define DO 405
|
||||||
#define INSTEAD 406
|
#define EACH 406
|
||||||
#define ISNULL 407
|
#define EXPLAIN 407
|
||||||
#define LANCOMPILER 408
|
#define EXTEND 408
|
||||||
#define LISTEN 409
|
#define FORWARD 409
|
||||||
#define LOAD 410
|
#define FUNCTION 410
|
||||||
#define LOCK_P 411
|
#define HANDLER 411
|
||||||
#define LOCATION 412
|
#define INCREMENT 412
|
||||||
#define MAXVALUE 413
|
#define INDEX 413
|
||||||
#define MINVALUE 414
|
#define INHERITS 414
|
||||||
#define MOVE 415
|
#define INSTEAD 415
|
||||||
#define NEW 416
|
#define ISNULL 416
|
||||||
#define NONE 417
|
#define LANCOMPILER 417
|
||||||
#define NOTHING 418
|
#define LISTEN 418
|
||||||
#define NOTNULL 419
|
#define LOAD 419
|
||||||
#define OIDS 420
|
#define LOCK_P 420
|
||||||
#define OPERATOR 421
|
#define LOCATION 421
|
||||||
#define PROCEDURAL 422
|
#define MAXVALUE 422
|
||||||
#define RECIPE 423
|
#define MINVALUE 423
|
||||||
#define RENAME 424
|
#define MOVE 424
|
||||||
#define RESET 425
|
#define NEW 425
|
||||||
#define RETURNS 426
|
#define NONE 426
|
||||||
#define ROW 427
|
#define NOTHING 427
|
||||||
#define RULE 428
|
#define NOTNULL 428
|
||||||
#define SEQUENCE 429
|
#define OIDS 429
|
||||||
#define SERIAL 430
|
#define OPERATOR 430
|
||||||
#define SETOF 431
|
#define PROCEDURAL 431
|
||||||
#define SHOW 432
|
#define RECIPE 432
|
||||||
#define START 433
|
#define RENAME 433
|
||||||
#define STATEMENT 434
|
#define RESET 434
|
||||||
#define STDIN 435
|
#define RETURNS 435
|
||||||
#define STDOUT 436
|
#define ROW 436
|
||||||
#define TRUSTED 437
|
#define RULE 437
|
||||||
#define VACUUM 438
|
#define SEQUENCE 438
|
||||||
#define VERBOSE 439
|
#define SERIAL 439
|
||||||
#define VERSION 440
|
#define SETOF 440
|
||||||
#define ENCODING 441
|
#define SHOW 441
|
||||||
#define UNLISTEN 442
|
#define START 442
|
||||||
#define ARCHIVE 443
|
#define STATEMENT 443
|
||||||
#define PASSWORD 444
|
#define STDIN 444
|
||||||
#define CREATEDB 445
|
#define STDOUT 445
|
||||||
#define NOCREATEDB 446
|
#define TRUSTED 446
|
||||||
#define CREATEUSER 447
|
#define VACUUM 447
|
||||||
#define NOCREATEUSER 448
|
#define VERBOSE 448
|
||||||
#define VALID 449
|
#define VERSION 449
|
||||||
#define UNTIL 450
|
#define ENCODING 450
|
||||||
#define IDENT 451
|
#define UNLISTEN 451
|
||||||
#define SCONST 452
|
#define ARCHIVE 452
|
||||||
#define Op 453
|
#define PASSWORD 453
|
||||||
#define ICONST 454
|
#define CREATEDB 454
|
||||||
#define PARAM 455
|
#define NOCREATEDB 455
|
||||||
#define FCONST 456
|
#define CREATEUSER 456
|
||||||
#define OP 457
|
#define NOCREATEUSER 457
|
||||||
#define UMINUS 458
|
#define VALID 458
|
||||||
#define TYPECAST 459
|
#define UNTIL 459
|
||||||
|
#define IDENT 460
|
||||||
|
#define SCONST 461
|
||||||
|
#define Op 462
|
||||||
|
#define ICONST 463
|
||||||
|
#define PARAM 464
|
||||||
|
#define FCONST 465
|
||||||
|
#define OP 466
|
||||||
|
#define UMINUS 467
|
||||||
|
#define TYPECAST 468
|
||||||
|
|
||||||
|
|
||||||
extern YYSTYPE yylval;
|
extern YYSTYPE yylval;
|
||||||
|
Reference in New Issue
Block a user