Patches for gram.y and keywords.c - Mailing list pgsql-hackers
From | Thomas G. Lockhart |
---|---|
Subject | Patches for gram.y and keywords.c |
Date | |
Msg-id | 3611C77F.F4079956@alumni.caltech.edu Whole thread Raw |
List | pgsql-hackers |
Hi Michael. Here are the patches I just applied to the main parser. I'm not sure how ecpg builds, but I also updated gram.c and parse.h to get things properly self-consistant. Thanks for looking at this... - Tom *** ../src/backend/parser/gram.y.orig Fri Sep 25 13:55:16 1998 --- ../src/backend/parser/gram.y Tue Sep 29 04:42:43 1998 *************** *** 257,313 **** */ /* Keywords (in SQL92 reserved words) */ ! %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, CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, DAY_P, DECIMAL, DECLARE, DEFAULT, DELETE, DESC, DISTINCT, DOUBLE, DROP, END_TRANS, EXECUTE, EXISTS, EXTRACT, ! FETCH, FLOAT, FOR, FOREIGN, FROM, FULL, GRANT, GROUP, HAVING, HOUR_P, IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS, JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL, MATCH, MINUTE_P, MONTH_P, NAMES, ! 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, VALUES, VARCHAR, VARYING, VIEW, WHERE, WITH, WORK, YEAR_P, ZONE /* Keywords (in SQL3 reserved words) */ ! %token FALSE_P, TRIGGER, TRUE_P /* Keywords (in SQL92 non-reserved words) */ %token TYPE_P ! /* Keywords for Postgres support (not in SQL92 reserved words) */ ! %token ABORT_TRANS, AFTER, AGGREGATE, ANALYZE, ! BACKWARD, BEFORE, BINARY, CACHE, CLUSTER, COPY, CYCLE, ! DATABASE, DELIMITERS, DO, EACH, EXPLAIN, EXTEND, FORWARD, FUNCTION, HANDLER, INCREMENT, INDEX, INHERITS, INSTEAD, ISNULL, ! LANCOMPILER, LISTEN, LOAD, LOCK_P, LOCATION, MAXVALUE, MINVALUE, MOVE, ! NEW, NONE, NOTHING, NOTNULL, OIDS, OPERATOR, PROCEDURAL, RECIPE, RENAME, RESET, RETURNS, ROW, RULE, SEQUENCE, SERIAL, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED, ! VACUUM, VERBOSE, VERSION, ENCODING, UNLISTEN ! ! /* Keywords (obsolete; retain through next version for parser - thomas 1997-12-04) */ ! %token ARCHIVE ! ! /* ! * Tokens for pg_passwd support. The CREATEDB and CREATEUSER tokens should go away ! * when some sort of pg_privileges relation is introduced. ! * ! * Todd A. Brandys ! */ ! %token PASSWORD, CREATEDB, NOCREATEDB, CREATEUSER, NOCREATEUSER, VALID, UNTIL /* Special keywords, not in the query language - see the "lex" file */ %token <str> IDENT, SCONST, Op --- 257,308 ---- */ /* Keywords (in SQL92 reserved words) */ ! %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, CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, DAY_P, DECIMAL, DECLARE, DEFAULT, DELETE, DESC, DISTINCT, DOUBLE, DROP, END_TRANS, EXECUTE, EXISTS, EXTRACT, ! FALSE_P, FETCH, FLOAT, FOR, FOREIGN, FROM, FULL, GRANT, GROUP, HAVING, HOUR_P, IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS, JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL, MATCH, MINUTE_P, MONTH_P, NAMES, ! NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, 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, TRUE_P, UNION, UNIQUE, UPDATE, USER, USING, VALUES, VARCHAR, VARYING, VIEW, WHERE, WITH, WORK, YEAR_P, ZONE /* Keywords (in SQL3 reserved words) */ ! %token TRIGGER /* Keywords (in SQL92 non-reserved words) */ %token TYPE_P ! /* Keywords for Postgres support (not in SQL92 reserved words) ! * ! * The CREATEDB and CREATEUSER tokens should go away ! * when some sort of pg_privileges relation is introduced. ! * - Todd A. Brandys 1998-01-01? ! */ ! %token ABORT_TRANS, AFTER, AGGREGATE, ANALYZE, BACKWARD, BEFORE, BINARY, ! CACHE, CLUSTER, COPY, CREATEDB, CREATEUSER, CYCLE, ! DATABASE, DELIMITERS, DO, EACH, ENCODING, EXPLAIN, EXTEND, FORWARD, FUNCTION, HANDLER, INCREMENT, INDEX, INHERITS, INSTEAD, ISNULL, ! LANCOMPILER, LISTEN, LOAD, LOCATION, LOCK_P, MAXVALUE, MINVALUE, MOVE, ! NEW, NOCREATEDB, NOCREATEUSER, NONE, NOTHING, NOTIFY, NOTNULL, ! OIDS, OPERATOR, PASSWORD, PROCEDURAL, RECIPE, RENAME, RESET, RETURNS, ROW, RULE, SEQUENCE, SERIAL, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED, ! UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION /* Special keywords, not in the query language - see the "lex" file */ %token <str> IDENT, SCONST, Op *************** *** 709,715 **** *****************************************************************************/ CreateStmt: CREATE TABLE relation_name '(' OptTableElementList ')' ! OptInherit OptArchiveType { CreateStmt *n = makeNode(CreateStmt); n->relname = $3; --- 704,710 ---- *****************************************************************************/ CreateStmt: CREATE TABLE relation_name '(' OptTableElementList ')' ! OptInherit { CreateStmt *n = makeNode(CreateStmt); n->relname = $3; *************** *** 1197,1210 **** | /*EMPTY*/ { $$ = NIL; } ; - /* - * "ARCHIVE" keyword was removed in 6.3, but we keep it for now - * so people can upgrade with old pg_dump scripts. - momjian 1997-11-20(?) - */ - OptArchiveType: ARCHIVE '=' NONE { } - | /*EMPTY*/ { } - ; - CreateAsStmt: CREATE TABLE relation_name OptCreateAs AS SubSelect { SelectStmt *n = (SelectStmt *)$6; --- 1192,1197 ---- *************** *** 4646,4688 **** --- 4633,4700 ---- | datetime { $$ = $1; } | ABSOLUTE { $$ = "absolute"; } | ACTION { $$ = "action"; } + | AFTER { $$ = "after"; } + | AGGREGATE { $$ = "aggregate"; } + | BACKWARD { $$ = "backward"; } + | BEFORE { $$ = "before"; } | CACHE { $$ = "cache"; } + | CREATEDB { $$ = "createdb"; } + | CREATEUSER { $$ = "createuser"; } | CYCLE { $$ = "cycle"; } | DATABASE { $$ = "database"; } | DELIMITERS { $$ = "delimiters"; } | DOUBLE { $$ = "double"; } | EACH { $$ = "each"; } | ENCODING { $$ = "encoding"; } + | FORWARD { $$ = "forward"; } | FUNCTION { $$ = "function"; } + | HANDLER { $$ = "handler"; } | INCREMENT { $$ = "increment"; } | INDEX { $$ = "index"; } + | INHERITS { $$ = "inherits"; } | INSENSITIVE { $$ = "insensitive"; } + | INSTEAD { $$ = "instead"; } + | ISNULL { $$ = "isnull"; } | KEY { $$ = "key"; } | LANGUAGE { $$ = "language"; } + | LANCOMPILER { $$ = "lancompiler"; } | LOCATION { $$ = "location"; } | MATCH { $$ = "match"; } | MAXVALUE { $$ = "maxvalue"; } | MINVALUE { $$ = "minvalue"; } | NEXT { $$ = "next"; } + | NOCREATEDB { $$ = "nocreatedb"; } + | NOCREATEUSER { $$ = "nocreateuser"; } + | NOTHING { $$ = "nothing"; } + | NOTNULL { $$ = "notnull"; } | OF { $$ = "of"; } + | OIDS { $$ = "oids"; } | ONLY { $$ = "only"; } | OPERATOR { $$ = "operator"; } | OPTION { $$ = "option"; } | PASSWORD { $$ = "password"; } | PRIOR { $$ = "prior"; } | PRIVILEGES { $$ = "privileges"; } + | PROCEDURAL { $$ = "procedural"; } | READ { $$ = "read"; } | RECIPE { $$ = "recipe"; } | RELATIVE { $$ = "relative"; } + | RENAME { $$ = "rename"; } + | RETURNS { $$ = "returns"; } | ROW { $$ = "row"; } + | RULE { $$ = "rule"; } | SCROLL { $$ = "scroll"; } + | SEQUENCE { $$ = "sequence"; } | SERIAL { $$ = "serial"; } | START { $$ = "start"; } | STATEMENT { $$ = "statement"; } + | STDIN { $$ = "stdin"; } + | STDOUT { $$ = "stdout"; } | TIME { $$ = "time"; } | TIMEZONE_HOUR { $$ = "timezone_hour"; } | TIMEZONE_MINUTE { $$ = "timezone_minute"; } | TRIGGER { $$ = "trigger"; } + | TRUSTED { $$ = "trusted"; } | TYPE_P { $$ = "type"; } | VALID { $$ = "valid"; } | VERSION { $$ = "version"; } *************** *** 4700,4719 **** * when used as a full identifier. - thomas 1997-11-06 */ ColLabel: ColId { $$ = $1; } ! | ARCHIVE { $$ = "archive"; } | CLUSTER { $$ = "cluster"; } | CONSTRAINT { $$ = "constraint"; } | CROSS { $$ = "cross"; } | FOREIGN { $$ = "foreign"; } | GROUP { $$ = "group"; } | LOAD { $$ = "load"; } | ORDER { $$ = "order"; } | POSITION { $$ = "position"; } | PRECISION { $$ = "precision"; } | TABLE { $$ = "table"; } | TRANSACTION { $$ = "transaction"; } | TRUE_P { $$ = "true"; } ! | FALSE_P { $$ = "false"; } ; SpecialRuleRelation: CURRENT --- 4712,4748 ---- * when used as a full identifier. - thomas 1997-11-06 */ ColLabel: ColId { $$ = $1; } ! | ABORT_TRANS { $$ = "abort"; } ! | ANALYZE { $$ = "analyze"; } ! | BINARY { $$ = "binary"; } | CLUSTER { $$ = "cluster"; } | CONSTRAINT { $$ = "constraint"; } + | COPY { $$ = "copy"; } | CROSS { $$ = "cross"; } + | CURRENT { $$ = "current"; } + | DO { $$ = "do"; } + | EXPLAIN { $$ = "explain"; } + | EXTEND { $$ = "extend"; } + | FALSE_P { $$ = "false"; } | FOREIGN { $$ = "foreign"; } | GROUP { $$ = "group"; } + | LISTEN { $$ = "listen"; } | LOAD { $$ = "load"; } + | LOCK_P { $$ = "lock"; } + | MOVE { $$ = "move"; } + | NEW { $$ = "new"; } + | NONE { $$ = "none"; } | ORDER { $$ = "order"; } | POSITION { $$ = "position"; } | PRECISION { $$ = "precision"; } + | RESET { $$ = "reset"; } + | SETOF { $$ = "setof"; } + | SHOW { $$ = "show"; } | TABLE { $$ = "table"; } | TRANSACTION { $$ = "transaction"; } | TRUE_P { $$ = "true"; } ! | VACUUM { $$ = "vacuum"; } ! | VERBOSE { $$ = "verbose"; } ; SpecialRuleRelation: CURRENT *** ../src/backend/parser/keywords.c.orig Sun Sep 13 04:35:12 1998 --- ../src/backend/parser/keywords.c Mon Sep 28 05:59:20 1998 *************** *** 40,46 **** {"analyze", ANALYZE}, {"and", AND}, {"any", ANY}, - {"archive", ARCHIVE}, {"as", AS}, {"asc", ASC}, {"backward", BACKWARD}, --- 40,45 ---- *************** *** 116,121 **** --- 115,121 ---- {"inherits", INHERITS}, {"inner", INNER_P}, {"insert", INSERT}, + {"insensitive", INSENSITIVE}, {"instead", INSTEAD}, {"interval", INTERVAL}, {"into", INTO}, *************** *** 202,207 **** --- 202,208 ---- {"substring", SUBSTRING}, {"table", TABLE}, {"time", TIME}, + {"timestamp", TIMESTAMP}, {"timezone_hour", TIMEZONE_HOUR}, {"timezone_minute", TIMEZONE_MINUTE}, {"to", TO},
pgsql-hackers by date: