mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-05 19:09:58 +08: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:
parent
af8e2760ba
commit
f16f35a0f8
@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* 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
|
||||
* 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,
|
||||
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,
|
||||
opt_column, event
|
||||
@ -256,7 +257,7 @@ Oid param_type(int t); /* used in parse_expr.c */
|
||||
*/
|
||||
|
||||
/* 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,
|
||||
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
|
||||
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,
|
||||
FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
|
||||
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,
|
||||
MATCH, MINUTE_P, MONTH_P, NAMES,
|
||||
NATIONAL, NATURAL, NCHAR, NO, NOT, NOTIFY, NULL_P, NUMERIC,
|
||||
ON, OPTION, OR, ORDER, OUTER_P,
|
||||
PARTIAL, POSITION, PRECISION, PRIMARY, PRIVILEGES, PROCEDURE, PUBLIC,
|
||||
REFERENCES, REVOKE, RIGHT, ROLLBACK,
|
||||
SECOND_P, SELECT, SET, SUBSTRING,
|
||||
NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NOTIFY, NULL_P, NUMERIC,
|
||||
OF, ON, ONLY, OPTION, OR, ORDER, OUTER_P,
|
||||
PARTIAL, POSITION, PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC,
|
||||
READ, REFERENCES, RELATIVE, REVOKE, RIGHT, ROLLBACK,
|
||||
SCROLL, SECOND_P, SELECT, SET, SUBSTRING,
|
||||
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
|
||||
TO, TRAILING, TRANSACTION, TRIM,
|
||||
UNION, UNIQUE, UPDATE, USER, USING,
|
||||
@ -796,6 +797,16 @@ ColConstraint:
|
||||
{ $$ = $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 ')'
|
||||
{
|
||||
Constraint *n = makeNode(Constraint);
|
||||
@ -1512,13 +1523,26 @@ DestroyStmt: DROP TABLE relation_name_list
|
||||
/*****************************************************************************
|
||||
*
|
||||
* 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 *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->howMany = $3;
|
||||
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
|
||||
{
|
||||
FetchStmt *n = makeNode(FetchStmt);
|
||||
if ($3 < 0)
|
||||
{
|
||||
$3 = -$3;
|
||||
$2 = (($2 == FORWARD)? BACKWARD: FORWARD);
|
||||
}
|
||||
n->direction = $2;
|
||||
n->howMany = $3;
|
||||
n->portalname = $4;
|
||||
@ -1536,19 +1565,27 @@ FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name
|
||||
}
|
||||
;
|
||||
|
||||
opt_direction: FORWARD { $$ = FORWARD; }
|
||||
| BACKWARD { $$ = BACKWARD; }
|
||||
| /*EMPTY*/ { $$ = FORWARD; /* default */ }
|
||||
opt_direction: FORWARD { $$ = FORWARD; }
|
||||
| BACKWARD { $$ = BACKWARD; }
|
||||
| RELATIVE { $$ = RELATIVE; }
|
||||
| ABSOLUTE
|
||||
{
|
||||
elog(NOTICE,"FETCH/ABSOLUTE not supported, using RELATIVE");
|
||||
$$ = RELATIVE;
|
||||
}
|
||||
| /*EMPTY*/ { $$ = FORWARD; /* default */ }
|
||||
;
|
||||
|
||||
fetch_how_many: Iconst
|
||||
{ $$ = $1;
|
||||
if ($1 <= 0) elog(ERROR,"Please specify nonnegative count for fetch"); }
|
||||
fetch_how_many: Iconst { $$ = $1; }
|
||||
| '-' Iconst { $$ = - $2; }
|
||||
| ALL { $$ = 0; /* 0 means fetch all tuples*/ }
|
||||
| NEXT { $$ = 1; }
|
||||
| PRIOR { $$ = -1; }
|
||||
| /*EMPTY*/ { $$ = 1; /*default*/ }
|
||||
;
|
||||
|
||||
opt_portal_name: IN name { $$ = $2; }
|
||||
| FROM name { $$ = $2; }
|
||||
| /*EMPTY*/ { $$ = NULL; }
|
||||
;
|
||||
|
||||
@ -2460,11 +2497,12 @@ UpdateStmt: UPDATE relation_name
|
||||
* CURSOR STATEMENTS
|
||||
*
|
||||
*****************************************************************************/
|
||||
CursorStmt: DECLARE name opt_binary CURSOR FOR
|
||||
CursorStmt: DECLARE name opt_cursor CURSOR FOR
|
||||
SELECT opt_unique res_target_list2
|
||||
from_clause where_clause
|
||||
group_clause having_clause
|
||||
union_clause sort_clause
|
||||
cursor_clause
|
||||
{
|
||||
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; }
|
||||
| datetime { $$ = $1; }
|
||||
| ABSOLUTE { $$ = "absolute"; }
|
||||
| ACTION { $$ = "action"; }
|
||||
| CACHE { $$ = "cache"; }
|
||||
| CYCLE { $$ = "cycle"; }
|
||||
@ -4562,18 +4625,26 @@ ColId: IDENT { $$ = $1; }
|
||||
| FUNCTION { $$ = "function"; }
|
||||
| INCREMENT { $$ = "increment"; }
|
||||
| INDEX { $$ = "index"; }
|
||||
| INSENSITIVE { $$ = "insensitive"; }
|
||||
| KEY { $$ = "key"; }
|
||||
| LANGUAGE { $$ = "language"; }
|
||||
| LOCATION { $$ = "location"; }
|
||||
| MATCH { $$ = "match"; }
|
||||
| MAXVALUE { $$ = "maxvalue"; }
|
||||
| MINVALUE { $$ = "minvalue"; }
|
||||
| NEXT { $$ = "next"; }
|
||||
| OF { $$ = "of"; }
|
||||
| ONLY { $$ = "only"; }
|
||||
| OPERATOR { $$ = "operator"; }
|
||||
| OPTION { $$ = "option"; }
|
||||
| PASSWORD { $$ = "password"; }
|
||||
| PRIOR { $$ = "prior"; }
|
||||
| PRIVILEGES { $$ = "privileges"; }
|
||||
| READ { $$ = "read"; }
|
||||
| RECIPE { $$ = "recipe"; }
|
||||
| RELATIVE { $$ = "relative"; }
|
||||
| ROW { $$ = "row"; }
|
||||
| SCROLL { $$ = "scroll"; }
|
||||
| SERIAL { $$ = "serial"; }
|
||||
| START { $$ = "start"; }
|
||||
| STATEMENT { $$ = "statement"; }
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
static ScanKeyword ScanKeywords[] = {
|
||||
/* name value */
|
||||
/* name, value */
|
||||
{"abort", ABORT_TRANS},
|
||||
{"absolute", ABSOLUTE},
|
||||
{"action", ACTION},
|
||||
{"add", ADD},
|
||||
{"after", AFTER},
|
||||
@ -143,6 +144,7 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"natural", NATURAL},
|
||||
{"nchar", NCHAR},
|
||||
{"new", NEW},
|
||||
{"next", NEXT},
|
||||
{"no", NO},
|
||||
{"nocreatedb", NOCREATEDB},
|
||||
{"nocreateuser", NOCREATEUSER},
|
||||
@ -153,9 +155,11 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"notnull", NOTNULL},
|
||||
{"null", NULL_P},
|
||||
{"numeric", NUMERIC},
|
||||
{"of", OF},
|
||||
{"oids", OIDS},
|
||||
{"old", CURRENT},
|
||||
{"on", ON},
|
||||
{"only", ONLY},
|
||||
{"operator", OPERATOR},
|
||||
{"option", OPTION},
|
||||
{"or", OR},
|
||||
@ -166,12 +170,15 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"position", POSITION},
|
||||
{"precision", PRECISION},
|
||||
{"primary", PRIMARY},
|
||||
{"prior", PRIOR},
|
||||
{"privileges", PRIVILEGES},
|
||||
{"procedural", PROCEDURAL},
|
||||
{"procedure", PROCEDURE},
|
||||
{"public", PUBLIC},
|
||||
{"read", READ},
|
||||
{"recipe", RECIPE},
|
||||
{"references", REFERENCES},
|
||||
{"relative", RELATIVE},
|
||||
{"rename", RENAME},
|
||||
{"reset", RESET},
|
||||
{"returns", RETURNS},
|
||||
@ -180,6 +187,7 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"rollback", ROLLBACK},
|
||||
{"row", ROW},
|
||||
{"rule", RULE},
|
||||
{"scroll", SCROLL},
|
||||
{"second", SECOND_P},
|
||||
{"select", SELECT},
|
||||
{"sequence", SEQUENCE},
|
||||
|
@ -29,208 +29,217 @@ typedef union
|
||||
RuleStmt *rstmt;
|
||||
InsertStmt *astmt;
|
||||
} YYSTYPE;
|
||||
#define ACTION 258
|
||||
#define ADD 259
|
||||
#define ALL 260
|
||||
#define ALTER 261
|
||||
#define AND 262
|
||||
#define ANY 263
|
||||
#define AS 264
|
||||
#define ASC 265
|
||||
#define BEGIN_TRANS 266
|
||||
#define BETWEEN 267
|
||||
#define BOTH 268
|
||||
#define BY 269
|
||||
#define CASCADE 270
|
||||
#define CAST 271
|
||||
#define CHAR 272
|
||||
#define CHARACTER 273
|
||||
#define CHECK 274
|
||||
#define CLOSE 275
|
||||
#define COLLATE 276
|
||||
#define COLUMN 277
|
||||
#define COMMIT 278
|
||||
#define CONSTRAINT 279
|
||||
#define CREATE 280
|
||||
#define CROSS 281
|
||||
#define CURRENT 282
|
||||
#define CURRENT_DATE 283
|
||||
#define CURRENT_TIME 284
|
||||
#define CURRENT_TIMESTAMP 285
|
||||
#define CURRENT_USER 286
|
||||
#define CURSOR 287
|
||||
#define DAY_P 288
|
||||
#define DECIMAL 289
|
||||
#define DECLARE 290
|
||||
#define DEFAULT 291
|
||||
#define DELETE 292
|
||||
#define DESC 293
|
||||
#define DISTINCT 294
|
||||
#define DOUBLE 295
|
||||
#define DROP 296
|
||||
#define END_TRANS 297
|
||||
#define EXECUTE 298
|
||||
#define EXISTS 299
|
||||
#define EXTRACT 300
|
||||
#define FETCH 301
|
||||
#define FLOAT 302
|
||||
#define FOR 303
|
||||
#define FOREIGN 304
|
||||
#define FROM 305
|
||||
#define FULL 306
|
||||
#define GRANT 307
|
||||
#define GROUP 308
|
||||
#define HAVING 309
|
||||
#define HOUR_P 310
|
||||
#define IN 311
|
||||
#define INNER_P 312
|
||||
#define INSERT 313
|
||||
#define INTERVAL 314
|
||||
#define INTO 315
|
||||
#define IS 316
|
||||
#define JOIN 317
|
||||
#define KEY 318
|
||||
#define LANGUAGE 319
|
||||
#define LEADING 320
|
||||
#define LEFT 321
|
||||
#define LIKE 322
|
||||
#define LOCAL 323
|
||||
#define MATCH 324
|
||||
#define MINUTE_P 325
|
||||
#define MONTH_P 326
|
||||
#define NAMES 327
|
||||
#define NATIONAL 328
|
||||
#define NATURAL 329
|
||||
#define NCHAR 330
|
||||
#define NO 331
|
||||
#define NOT 332
|
||||
#define NOTIFY 333
|
||||
#define NULL_P 334
|
||||
#define NUMERIC 335
|
||||
#define ON 336
|
||||
#define OPTION 337
|
||||
#define OR 338
|
||||
#define ORDER 339
|
||||
#define OUTER_P 340
|
||||
#define PARTIAL 341
|
||||
#define POSITION 342
|
||||
#define PRECISION 343
|
||||
#define PRIMARY 344
|
||||
#define PRIVILEGES 345
|
||||
#define PROCEDURE 346
|
||||
#define PUBLIC 347
|
||||
#define REFERENCES 348
|
||||
#define REVOKE 349
|
||||
#define RIGHT 350
|
||||
#define ROLLBACK 351
|
||||
#define SECOND_P 352
|
||||
#define SELECT 353
|
||||
#define SET 354
|
||||
#define SUBSTRING 355
|
||||
#define TABLE 356
|
||||
#define TIME 357
|
||||
#define TIMESTAMP 358
|
||||
#define TIMEZONE_HOUR 359
|
||||
#define TIMEZONE_MINUTE 360
|
||||
#define TO 361
|
||||
#define TRAILING 362
|
||||
#define TRANSACTION 363
|
||||
#define TRIM 364
|
||||
#define UNION 365
|
||||
#define UNIQUE 366
|
||||
#define UPDATE 367
|
||||
#define USER 368
|
||||
#define USING 369
|
||||
#define VALUES 370
|
||||
#define VARCHAR 371
|
||||
#define VARYING 372
|
||||
#define VIEW 373
|
||||
#define WHERE 374
|
||||
#define WITH 375
|
||||
#define WORK 376
|
||||
#define YEAR_P 377
|
||||
#define ZONE 378
|
||||
#define FALSE_P 379
|
||||
#define TRIGGER 380
|
||||
#define TRUE_P 381
|
||||
#define TYPE_P 382
|
||||
#define ABORT_TRANS 383
|
||||
#define AFTER 384
|
||||
#define AGGREGATE 385
|
||||
#define ANALYZE 386
|
||||
#define BACKWARD 387
|
||||
#define BEFORE 388
|
||||
#define BINARY 389
|
||||
#define CACHE 390
|
||||
#define CLUSTER 391
|
||||
#define COPY 392
|
||||
#define CYCLE 393
|
||||
#define DATABASE 394
|
||||
#define DELIMITERS 395
|
||||
#define DO 396
|
||||
#define EACH 397
|
||||
#define EXPLAIN 398
|
||||
#define EXTEND 399
|
||||
#define FORWARD 400
|
||||
#define FUNCTION 401
|
||||
#define HANDLER 402
|
||||
#define INCREMENT 403
|
||||
#define INDEX 404
|
||||
#define INHERITS 405
|
||||
#define INSTEAD 406
|
||||
#define ISNULL 407
|
||||
#define LANCOMPILER 408
|
||||
#define LISTEN 409
|
||||
#define LOAD 410
|
||||
#define LOCK_P 411
|
||||
#define LOCATION 412
|
||||
#define MAXVALUE 413
|
||||
#define MINVALUE 414
|
||||
#define MOVE 415
|
||||
#define NEW 416
|
||||
#define NONE 417
|
||||
#define NOTHING 418
|
||||
#define NOTNULL 419
|
||||
#define OIDS 420
|
||||
#define OPERATOR 421
|
||||
#define PROCEDURAL 422
|
||||
#define RECIPE 423
|
||||
#define RENAME 424
|
||||
#define RESET 425
|
||||
#define RETURNS 426
|
||||
#define ROW 427
|
||||
#define RULE 428
|
||||
#define SEQUENCE 429
|
||||
#define SERIAL 430
|
||||
#define SETOF 431
|
||||
#define SHOW 432
|
||||
#define START 433
|
||||
#define STATEMENT 434
|
||||
#define STDIN 435
|
||||
#define STDOUT 436
|
||||
#define TRUSTED 437
|
||||
#define VACUUM 438
|
||||
#define VERBOSE 439
|
||||
#define VERSION 440
|
||||
#define ENCODING 441
|
||||
#define UNLISTEN 442
|
||||
#define ARCHIVE 443
|
||||
#define PASSWORD 444
|
||||
#define CREATEDB 445
|
||||
#define NOCREATEDB 446
|
||||
#define CREATEUSER 447
|
||||
#define NOCREATEUSER 448
|
||||
#define VALID 449
|
||||
#define UNTIL 450
|
||||
#define IDENT 451
|
||||
#define SCONST 452
|
||||
#define Op 453
|
||||
#define ICONST 454
|
||||
#define PARAM 455
|
||||
#define FCONST 456
|
||||
#define OP 457
|
||||
#define UMINUS 458
|
||||
#define TYPECAST 459
|
||||
#define ABSOLUTE 258
|
||||
#define ACTION 259
|
||||
#define ADD 260
|
||||
#define ALL 261
|
||||
#define ALTER 262
|
||||
#define AND 263
|
||||
#define ANY 264
|
||||
#define AS 265
|
||||
#define ASC 266
|
||||
#define BEGIN_TRANS 267
|
||||
#define BETWEEN 268
|
||||
#define BOTH 269
|
||||
#define BY 270
|
||||
#define CASCADE 271
|
||||
#define CAST 272
|
||||
#define CHAR 273
|
||||
#define CHARACTER 274
|
||||
#define CHECK 275
|
||||
#define CLOSE 276
|
||||
#define COLLATE 277
|
||||
#define COLUMN 278
|
||||
#define COMMIT 279
|
||||
#define CONSTRAINT 280
|
||||
#define CREATE 281
|
||||
#define CROSS 282
|
||||
#define CURRENT 283
|
||||
#define CURRENT_DATE 284
|
||||
#define CURRENT_TIME 285
|
||||
#define CURRENT_TIMESTAMP 286
|
||||
#define CURRENT_USER 287
|
||||
#define CURSOR 288
|
||||
#define DAY_P 289
|
||||
#define DECIMAL 290
|
||||
#define DECLARE 291
|
||||
#define DEFAULT 292
|
||||
#define DELETE 293
|
||||
#define DESC 294
|
||||
#define DISTINCT 295
|
||||
#define DOUBLE 296
|
||||
#define DROP 297
|
||||
#define END_TRANS 298
|
||||
#define EXECUTE 299
|
||||
#define EXISTS 300
|
||||
#define EXTRACT 301
|
||||
#define FETCH 302
|
||||
#define FLOAT 303
|
||||
#define FOR 304
|
||||
#define FOREIGN 305
|
||||
#define FROM 306
|
||||
#define FULL 307
|
||||
#define GRANT 308
|
||||
#define GROUP 309
|
||||
#define HAVING 310
|
||||
#define HOUR_P 311
|
||||
#define IN 312
|
||||
#define INNER_P 313
|
||||
#define INSENSITIVE 314
|
||||
#define INSERT 315
|
||||
#define INTERVAL 316
|
||||
#define INTO 317
|
||||
#define IS 318
|
||||
#define JOIN 319
|
||||
#define KEY 320
|
||||
#define LANGUAGE 321
|
||||
#define LEADING 322
|
||||
#define LEFT 323
|
||||
#define LIKE 324
|
||||
#define LOCAL 325
|
||||
#define MATCH 326
|
||||
#define MINUTE_P 327
|
||||
#define MONTH_P 328
|
||||
#define NAMES 329
|
||||
#define NATIONAL 330
|
||||
#define NATURAL 331
|
||||
#define NCHAR 332
|
||||
#define NEXT 333
|
||||
#define NO 334
|
||||
#define NOT 335
|
||||
#define NOTIFY 336
|
||||
#define NULL_P 337
|
||||
#define NUMERIC 338
|
||||
#define OF 339
|
||||
#define ON 340
|
||||
#define ONLY 341
|
||||
#define OPTION 342
|
||||
#define OR 343
|
||||
#define ORDER 344
|
||||
#define OUTER_P 345
|
||||
#define PARTIAL 346
|
||||
#define POSITION 347
|
||||
#define PRECISION 348
|
||||
#define PRIMARY 349
|
||||
#define PRIOR 350
|
||||
#define PRIVILEGES 351
|
||||
#define PROCEDURE 352
|
||||
#define PUBLIC 353
|
||||
#define READ 354
|
||||
#define REFERENCES 355
|
||||
#define RELATIVE 356
|
||||
#define REVOKE 357
|
||||
#define RIGHT 358
|
||||
#define ROLLBACK 359
|
||||
#define SCROLL 360
|
||||
#define SECOND_P 361
|
||||
#define SELECT 362
|
||||
#define SET 363
|
||||
#define SUBSTRING 364
|
||||
#define TABLE 365
|
||||
#define TIME 366
|
||||
#define TIMESTAMP 367
|
||||
#define TIMEZONE_HOUR 368
|
||||
#define TIMEZONE_MINUTE 369
|
||||
#define TO 370
|
||||
#define TRAILING 371
|
||||
#define TRANSACTION 372
|
||||
#define TRIM 373
|
||||
#define UNION 374
|
||||
#define UNIQUE 375
|
||||
#define UPDATE 376
|
||||
#define USER 377
|
||||
#define USING 378
|
||||
#define VALUES 379
|
||||
#define VARCHAR 380
|
||||
#define VARYING 381
|
||||
#define VIEW 382
|
||||
#define WHERE 383
|
||||
#define WITH 384
|
||||
#define WORK 385
|
||||
#define YEAR_P 386
|
||||
#define ZONE 387
|
||||
#define FALSE_P 388
|
||||
#define TRIGGER 389
|
||||
#define TRUE_P 390
|
||||
#define TYPE_P 391
|
||||
#define ABORT_TRANS 392
|
||||
#define AFTER 393
|
||||
#define AGGREGATE 394
|
||||
#define ANALYZE 395
|
||||
#define BACKWARD 396
|
||||
#define BEFORE 397
|
||||
#define BINARY 398
|
||||
#define CACHE 399
|
||||
#define CLUSTER 400
|
||||
#define COPY 401
|
||||
#define CYCLE 402
|
||||
#define DATABASE 403
|
||||
#define DELIMITERS 404
|
||||
#define DO 405
|
||||
#define EACH 406
|
||||
#define EXPLAIN 407
|
||||
#define EXTEND 408
|
||||
#define FORWARD 409
|
||||
#define FUNCTION 410
|
||||
#define HANDLER 411
|
||||
#define INCREMENT 412
|
||||
#define INDEX 413
|
||||
#define INHERITS 414
|
||||
#define INSTEAD 415
|
||||
#define ISNULL 416
|
||||
#define LANCOMPILER 417
|
||||
#define LISTEN 418
|
||||
#define LOAD 419
|
||||
#define LOCK_P 420
|
||||
#define LOCATION 421
|
||||
#define MAXVALUE 422
|
||||
#define MINVALUE 423
|
||||
#define MOVE 424
|
||||
#define NEW 425
|
||||
#define NONE 426
|
||||
#define NOTHING 427
|
||||
#define NOTNULL 428
|
||||
#define OIDS 429
|
||||
#define OPERATOR 430
|
||||
#define PROCEDURAL 431
|
||||
#define RECIPE 432
|
||||
#define RENAME 433
|
||||
#define RESET 434
|
||||
#define RETURNS 435
|
||||
#define ROW 436
|
||||
#define RULE 437
|
||||
#define SEQUENCE 438
|
||||
#define SERIAL 439
|
||||
#define SETOF 440
|
||||
#define SHOW 441
|
||||
#define START 442
|
||||
#define STATEMENT 443
|
||||
#define STDIN 444
|
||||
#define STDOUT 445
|
||||
#define TRUSTED 446
|
||||
#define VACUUM 447
|
||||
#define VERBOSE 448
|
||||
#define VERSION 449
|
||||
#define ENCODING 450
|
||||
#define UNLISTEN 451
|
||||
#define ARCHIVE 452
|
||||
#define PASSWORD 453
|
||||
#define CREATEDB 454
|
||||
#define NOCREATEDB 455
|
||||
#define CREATEUSER 456
|
||||
#define NOCREATEUSER 457
|
||||
#define VALID 458
|
||||
#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;
|
||||
|
Loading…
Reference in New Issue
Block a user