|
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 |
|