|
11 | 11 | *
|
12 | 12 | *
|
13 | 13 | * IDENTIFICATION
|
14 |
| - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.317 2002/05/17 18:32:52 petere Exp $ |
| 14 | + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.318 2002/05/19 15:16:55 petere Exp $ |
15 | 15 | *
|
16 | 16 | * HISTORY
|
17 | 17 | * AUTHORDATEMAJOR EVENT
|
@@ -308,89 +308,77 @@ static void doNegateFloat(Value *v);
|
308 | 308 |
|
309 | 309 |
|
310 | 310 | /*
|
311 |
| - * If you make any token changes, remember to: |
312 |
| - *- use "yacc -d" and update parse.h |
313 |
| - *- update the keyword table in parser/keywords.c |
314 |
| -*/ |
315 |
| - |
316 |
| -/* Reserved word tokens |
317 |
| - * SQL92 syntax has many type-specific constructs. |
318 |
| - * So, go ahead and make these types reserved words, |
319 |
| - * and call-out the syntax explicitly. |
320 |
| - * This gets annoying when trying to also retain Postgres' nice |
321 |
| - * type-extensible features, but we don't really have a choice. |
322 |
| - * - thomas 1997-10-11 |
323 |
| - * NOTE: don't forget to add new keywords to the appropriate one of |
| 311 | + * If you make any token changes, update the keyword table in |
| 312 | + * parser/keywords.c and add new keywords to the appropriate one of |
324 | 313 | * the reserved-or-not-so-reserved keyword lists, below.
|
325 | 314 | */
|
326 | 315 |
|
327 |
| -/* Keywords (in SQL92 reserved words)*/ |
328 |
| -%token<keyword>ABSOLUTE,ACTION,ADD,ALL,ALTER,AND,ANY,AS,ASC,AT, |
329 |
| -AUTHORIZATION,BEGIN_TRANS,BETWEEN,BOTH,BY, |
330 |
| -CASCADE,CASE,CAST,CHAR,CHARACTER,CHECK,CLOSE, |
331 |
| -COALESCE,COLLATE,COLUMN,COMMIT, |
332 |
| -CONSTRAINT,CONSTRAINTS,CREATE,CROSS,CURRENT_DATE, |
333 |
| -CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR, |
334 |
| -DAY_P,DEC,DECIMAL,DECLARE,DEFAULT,DELETE,DESC, |
335 |
| -DISTINCT,DOUBLE,DROP, |
336 |
| -ELSE,ENCRYPTED,END_TRANS,ESCAPE,EXCEPT,EXECUTE,EXISTS,EXTRACT, |
337 |
| -FALSE_P,FETCH,FLOAT,FOR,FOREIGN,FROM,FULL, |
338 |
| -GLOBAL,GRANT,GROUP,HAVING,HOUR_P, |
339 |
| -IN,INNER_P,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL, |
340 |
| -INTO,IS,ISOLATION, |
341 |
| -JOIN,KEY,LANGUAGE,LEADING,LEFT,LEVEL,LIKE,LOCAL, |
342 |
| -MATCH,MINUTE_P,MONTH_P,NAMES, |
343 |
| -NATIONAL,NATURAL,NCHAR,NEXT,NO,NOT,NULLIF,NULL_P,NUMERIC, |
344 |
| -OF,OLD,ON,ONLY,OPTION,OR,ORDER,OUTER_P,OVERLAPS, |
345 |
| -PARTIAL,POSITION,PRECISION,PRIMARY,PRIOR,PRIVILEGES,PROCEDURE, |
346 |
| -READ,REAL,REFERENCES,RELATIVE,REVOKE,RIGHT,ROLLBACK, |
347 |
| -SCHEMA,SCROLL,SECOND_P,SELECT,SESSION,SESSION_USER,SET, |
348 |
| -SMALLINT,SOME,SUBSTRING, |
349 |
| -TABLE,TEMPORARY,THEN,TIME,TIMESTAMP, |
350 |
| -TO,TRAILING,TRANSACTION,TRIM,TRUE_P, |
351 |
| -UNENCRYPTED,UNION,UNIQUE,UNKNOWN,UPDATE,USAGE,USER,USING, |
352 |
| -VALUES,VARCHAR,VARYING,VIEW, |
353 |
| -WHEN,WHERE,WITH,WORK,YEAR_P,ZONE |
354 |
| - |
355 |
| -/* Keywords (in SQL99 reserved words)*/ |
356 |
| -%token<keyword>ASSERTION,BINARY,BIT,BOOLEAN, |
357 |
| -CHAIN,CHARACTERISTICS, |
358 |
| -DEFERRABLE,DEFERRED, |
359 |
| -IMMEDIATE,INITIALLY,INOUT, |
360 |
| -OFF,OUT, |
361 |
| -PATH_P,PENDANT, |
362 |
| -REPLACE,RESTRICT, |
363 |
| -TRIGGER, |
364 |
| -WITHOUT |
365 |
| - |
366 |
| -/* Keywords (in SQL92 non-reserved words)*/ |
367 |
| -%token<keyword>COMMITTED,SERIALIZABLE,TYPE_P,DOMAIN_P |
368 |
| - |
369 |
| -/* Keywords for Postgres support (not in SQL92 reserved words) |
370 |
| - * |
371 |
| - * The CREATEDB and CREATEUSER tokens should go away |
372 |
| - * when some sort of pg_privileges relation is introduced. |
373 |
| - * - Todd A. Brandys 1998-01-01? |
374 |
| -*/ |
375 |
| -%token<keyword>ABORT_TRANS,ACCESS,AFTER,AGGREGATE,ANALYSE,ANALYZE, |
376 |
| -BACKWARD,BEFORE,BIGINT, |
377 |
| -CACHE,CHECKPOINT,CLUSTER,COMMENT,COPY,CREATEDB,CREATEUSER,CYCLE, |
378 |
| -DATABASE,DELIMITERS,DO, |
379 |
| -EACH,ENCODING,EXCLUSIVE,EXPLAIN, |
380 |
| -FORCE,FORWARD,FREEZE,FUNCTION,HANDLER, |
381 |
| -ILIKE,INCREMENT,INDEX,INHERITS,INSTEAD,ISNULL, |
382 |
| -LANCOMPILER,LIMIT,LISTEN,LOAD,LOCATION,LOCK_P, |
383 |
| -MAXVALUE,MINVALUE,MODE,MOVE, |
384 |
| -NEW,NOCREATEDB,NOCREATEUSER,NONE,NOTHING,NOTIFY,NOTNULL, |
385 |
| -OFFSET,OIDS,OPERATOR,OWNER,PASSWORD,PROCEDURAL, |
386 |
| -REINDEX,RENAME,RESET,RETURNS,ROW,RULE, |
387 |
| -SEQUENCE,SETOF,SHARE,SHOW,START,STATEMENT, |
388 |
| -STATISTICS,STDIN,STDOUT,STORAGE,SYSID, |
389 |
| -TEMP,TEMPLATE,TOAST,TRUNCATE,TRUSTED, |
390 |
| -UNLISTEN,UNTIL,VACUUM,VALID,VERBOSE,VERSION |
391 |
| - |
392 |
| -%token<keyword>CALLED,DEFINER,EXTERNAL,IMMUTABLE,IMPLICIT,INPUT, |
393 |
| -INVOKER,SECURITY,STABLE,STRICT,VOLATILE |
| 316 | +/* ordinary key words in alphabetical order*/ |
| 317 | +%token<keyword>ABORT_TRANS,ABSOLUTE,ACCESS,ACTION,ADD,AFTER, |
| 318 | +AGGREGATE, ALL, ALTER, ANALYSE, ANALYZE, AND, ANY, AS, ASC, ASSERTION, |
| 319 | +AT, AUTHORIZATION, |
| 320 | + |
| 321 | +BACKWARD, BEFORE, BEGIN_TRANS, BETWEEN, BIGINT, BINARY, BIT, BOTH, |
| 322 | +BOOLEAN, BY, |
| 323 | + |
| 324 | +CACHE, CALLED, CASCADE, CASE, CAST, CHAIN, CHAR, CHARACTER, |
| 325 | +CHARACTERISTICS, CHECK, CHECKPOINT, CLOSE, CLUSTER, COALESCE, COLLATE, |
| 326 | +COLUMN, COMMENT, COMMIT, COMMITTED, CONSTRAINT, CONSTRAINTS, COPY, |
| 327 | +CREATE, CREATEDB, CREATEUSER, CROSS, CURRENT_DATE, CURRENT_TIME, |
| 328 | +CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, CYCLE, |
| 329 | + |
| 330 | +DATABASE, DAY_P, DEC, DECIMAL, DECLARE, DEFAULT, DEFERRABLE, DEFERRED, |
| 331 | +DEFINER, DELETE, DELIMITERS, DESC, DISTINCT, DO, DOMAIN_P, DOUBLE, DROP, |
| 332 | + |
| 333 | +EACH, ELSE, ENCODING, ENCRYPTED, END_TRANS, ESCAPE, EXCEPT, EXCLUSIVE, |
| 334 | +EXECUTE, EXISTS, EXPLAIN, EXTERNAL, EXTRACT, |
| 335 | + |
| 336 | +FALSE_P, FETCH, FLOAT, FOR, FORCE, FOREIGN, FORWARD, FREEZE, FROM, |
| 337 | +FULL, FUNCTION, |
| 338 | + |
| 339 | +GLOBAL, GRANT, GROUP, |
| 340 | +HANDLER, HAVING, HOUR_P, |
| 341 | + |
| 342 | +ILIKE, IMMEDIATE, IMMUTABLE, IMPLICIT, IN, INCREMENT, INDEX, INHERITS, |
| 343 | +INITIALLY, INNER_P, INOUT, INPUT, INSENSITIVE, INSERT, INSTEAD, INT, |
| 344 | +INTEGER, INTERSECT, INTERVAL, INTO, INVOKER, IS, ISNULL, ISOLATION, |
| 345 | + |
| 346 | +JOIN, |
| 347 | +KEY, |
| 348 | + |
| 349 | +LANCOMPILER, LANGUAGE, LEADING, LEFT, LEVEL, LIKE, LIMIT, LISTEN, |
| 350 | +LOAD, LOCAL, LOCATION, LOCK_P, |
| 351 | + |
| 352 | +MATCH, MAXVALUE, MINUTE_P, MINVALUE, MODE, MONTH_P, MOVE, |
| 353 | + |
| 354 | +NAMES, NATIONAL, NATURAL, NCHAR, NEW, NEXT, NO, NOCREATEDB, |
| 355 | +NOCREATEUSER, NONE, NOT, NOTHING, NOTIFY, NOTNULL, NULL_P, NULLIF, |
| 356 | +NUMERIC, |
| 357 | + |
| 358 | +OF, OFF, OFFSET, OIDS, OLD, ON, ONLY, OPERATOR, OPTION, OR, ORDER, |
| 359 | +OUT, OUTER_P, OVERLAPS, OWNER, |
| 360 | + |
| 361 | +PARTIAL, PASSWORD, PATH_P, PENDANT, POSITION, PRECISION, PRIMARY, |
| 362 | +PRIOR, PRIVILEGES, PROCEDURE, PROCEDURAL, |
| 363 | + |
| 364 | +READ, REAL, REFERENCES, REINDEX, RELATIVE, RENAME, REPLACE, RESET, |
| 365 | +RESTRICT, RETURNS, REVOKE, RIGHT, ROLLBACK, ROW, RULE, |
| 366 | + |
| 367 | +SCHEMA, SCROLL, SECOND_P, SECURITY, SELECT, SEQUENCE, SERIALIZABLE, |
| 368 | +SESSION, SESSION_USER, SET, SETOF, SHARE, SHOW, SMALLINT, SOME, |
| 369 | +STABLE, START, STATEMENT, STATISTICS, STDIN, STDOUT, STORAGE, STRICT, |
| 370 | +SUBSTRING, SYSID, |
| 371 | + |
| 372 | +TABLE, TEMP, TEMPLATE, TEMPORARY, THEN, TIME, TIMESTAMP, TO, TOAST, |
| 373 | +TRAILING, TRANSACTION, TRIGGER, TRIM, TRUE_P, TRUNCATE, TRUSTED, TYPE_P, |
| 374 | + |
| 375 | +UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UNLISTEN, UNTIL, UPDATE, USAGE, |
| 376 | +USER, USING, |
| 377 | + |
| 378 | +VACUUM, VALID, VALUES, VARCHAR, VARYING, VERBOSE, VERSION, VIEW, VOLATILE, |
| 379 | +WHEN, WHERE, WITH, WITHOUT, WORK, |
| 380 | +YEAR_P, |
| 381 | +ZONE |
394 | 382 |
|
395 | 383 | /* The grammar thinks these are keywords, but they are not in the keywords.c
|
396 | 384 | * list and so can never be entered directly. The filter in parser.c
|
|