10
10
*
11
11
*
12
12
* IDENTIFICATION
13
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.32 1998/09/25 13:36:01 thomas Exp $
13
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.33 1998/09/30 05:47:56 thomas Exp $
14
14
*
15
15
* HISTORY
16
16
* AUTHORDATEMAJOR EVENT
@@ -257,57 +257,52 @@ Oidparam_type(int t); /* used in parse_expr.c */
257
257
*/
258
258
259
259
/* Keywords (in SQL92 reserved words) */
260
- %tokenABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY AS, ASC,
260
+ %tokenABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY, AS, ASC,
261
261
BEGIN_TRANS, BETWEEN, BOTH, BY,
262
262
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
263
263
CONSTRAINT, CREATE, CROSS, CURRENT, CURRENT_DATE, CURRENT_TIME,
264
264
CURRENT_TIMESTAMP, CURRENT_USER, CURSOR,
265
265
DAY_P, DECIMAL, DECLARE, DEFAULT, DELETE, DESC, DISTINCT, DOUBLE, DROP,
266
266
END_TRANS, EXECUTE, EXISTS, EXTRACT,
267
- FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
267
+ FALSE_P, FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
268
268
GRANT, GROUP, HAVING, HOUR_P,
269
269
IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS,
270
270
JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL,
271
271
MATCH, MINUTE_P, MONTH_P, NAMES,
272
- NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT,NOTIFY, NULL_P, NUMERIC,
272
+ NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NULL_P, NUMERIC,
273
273
OF, ON, ONLY, OPTION, OR, ORDER, OUTER_P,
274
274
PARTIAL, POSITION, PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC,
275
275
READ, REFERENCES, RELATIVE, REVOKE, RIGHT, ROLLBACK,
276
276
SCROLL, SECOND_P, SELECT, SET, SUBSTRING,
277
277
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
278
- TO, TRAILING, TRANSACTION, TRIM,
278
+ TO, TRAILING, TRANSACTION, TRIM, TRUE_P,
279
279
UNION, UNIQUE, UPDATE, USER, USING,
280
280
VALUES, VARCHAR, VARYING, VIEW,
281
281
WHERE, WITH, WORK, YEAR_P, ZONE
282
282
283
283
/* Keywords (in SQL3 reserved words) */
284
- %tokenFALSE_P, TRIGGER, TRUE_P
284
+ %tokenTRIGGER
285
285
286
286
/* Keywords (in SQL92 non-reserved words) */
287
287
%tokenTYPE_P
288
288
289
- /* Keywords for Postgres support (not in SQL92 reserved words) */
290
- %tokenABORT_TRANS, AFTER, AGGREGATE, ANALYZE,
291
- BACKWARD, BEFORE, BINARY, CACHE, CLUSTER, COPY, CYCLE,
292
- DATABASE, DELIMITERS, DO, EACH, EXPLAIN, EXTEND,
289
+ /* Keywords for Postgres support (not in SQL92 reserved words)
290
+ *
291
+ * The CREATEDB and CREATEUSER tokens should go away
292
+ * when some sort of pg_privileges relation is introduced.
293
+ * - Todd A. Brandys 1998-01-01?
294
+ */
295
+ %tokenABORT_TRANS, AFTER, AGGREGATE, ANALYZE, BACKWARD, BEFORE, BINARY,
296
+ CACHE, CLUSTER, COPY, CREATEDB, CREATEUSER, CYCLE,
297
+ DATABASE, DELIMITERS, DO, EACH, ENCODING, EXPLAIN, EXTEND,
293
298
FORWARD, FUNCTION, HANDLER,
294
299
INCREMENT, INDEX, INHERITS, INSTEAD, ISNULL,
295
- LANCOMPILER, LISTEN, LOAD, LOCK_P, LOCATION, MAXVALUE, MINVALUE, MOVE,
296
- NEW, NONE, NOTHING, NOTNULL, OIDS, OPERATOR, PROCEDURAL,
300
+ LANCOMPILER, LISTEN, LOAD, LOCATION, LOCK_P, MAXVALUE, MINVALUE, MOVE,
301
+ NEW, NOCREATEDB, NOCREATEUSER, NONE, NOTHING, NOTIFY, NOTNULL,
302
+ OIDS, OPERATOR, PASSWORD, PROCEDURAL,
297
303
RECIPE, RENAME, RESET, RETURNS, ROW, RULE,
298
304
SEQUENCE, SERIAL, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED,
299
- VACUUM, VERBOSE, VERSION, ENCODING, UNLISTEN
300
-
301
- /* Keywords (obsolete; retain through next version for parser - thomas 1997-12-04) */
302
- %tokenARCHIVE
303
-
304
- /*
305
- * Tokens for pg_passwd support. The CREATEDB and CREATEUSER tokens should go away
306
- * when some sort of pg_privileges relation is introduced.
307
- *
308
- * Todd A. Brandys
309
- */
310
- %tokenPASSWORD, CREATEDB, NOCREATEDB, CREATEUSER, NOCREATEUSER, VALID, UNTIL
305
+ UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION
311
306
312
307
/* Special keywords, not in the query language - see the "lex" file */
313
308
%token <str>IDENT, SCONST, Op
@@ -709,7 +704,7 @@ copy_delimiter: USING DELIMITERS Sconst{ $$ = $3; }
709
704
*****************************************************************************/
710
705
711
706
CreateStmt: CREATE TABLE relation_name '(' OptTableElementList ')'
712
- OptInherit OptArchiveType
707
+ OptInherit
713
708
{
714
709
CreateStmt *n = makeNode(CreateStmt);
715
710
n->relname = $3;
@@ -1197,14 +1192,6 @@ OptInherit: INHERITS '(' relation_name_list ')'{ $$ = $3; }
1197
1192
| /*EMPTY*/{ $$ = NIL; }
1198
1193
;
1199
1194
1200
- /*
1201
- *"ARCHIVE" keyword was removed in 6.3, but we keep it for now
1202
- * so people can upgrade with old pg_dump scripts. - momjian 1997-11-20(?)
1203
- */
1204
- OptArchiveType: ARCHIVE '=' NONE{ }
1205
- | /*EMPTY*/{ }
1206
- ;
1207
-
1208
1195
CreateAsStmt: CREATE TABLE relation_name OptCreateAs AS SubSelect
1209
1196
{
1210
1197
SelectStmt *n = (SelectStmt *)$6;
@@ -4646,43 +4633,68 @@ ColId: IDENT{ $$ = $1; }
4646
4633
| datetime{ $$ = $1; }
4647
4634
| ABSOLUTE{ $$ = "absolute"; }
4648
4635
| ACTION{ $$ = "action"; }
4636
+ | AFTER{ $$ = "after"; }
4637
+ | AGGREGATE{ $$ = "aggregate"; }
4638
+ | BACKWARD{ $$ = "backward"; }
4639
+ | BEFORE{ $$ = "before"; }
4649
4640
| CACHE{ $$ = "cache"; }
4641
+ | CREATEDB{ $$ = "createdb"; }
4642
+ | CREATEUSER{ $$ = "createuser"; }
4650
4643
| CYCLE{ $$ = "cycle"; }
4651
4644
| DATABASE{ $$ = "database"; }
4652
4645
| DELIMITERS{ $$ = "delimiters"; }
4653
4646
| DOUBLE{ $$ = "double"; }
4654
4647
| EACH{ $$ = "each"; }
4655
4648
| ENCODING{ $$ = "encoding"; }
4649
+ | FORWARD{ $$ = "forward"; }
4656
4650
| FUNCTION{ $$ = "function"; }
4651
+ | HANDLER{ $$ = "handler"; }
4657
4652
| INCREMENT{ $$ = "increment"; }
4658
4653
| INDEX{ $$ = "index"; }
4654
+ | INHERITS{ $$ = "inherits"; }
4659
4655
| INSENSITIVE{ $$ = "insensitive"; }
4656
+ | INSTEAD{ $$ = "instead"; }
4657
+ | ISNULL{ $$ = "isnull"; }
4660
4658
| KEY{ $$ = "key"; }
4661
4659
| LANGUAGE{ $$ = "language"; }
4660
+ | LANCOMPILER{ $$ = "lancompiler"; }
4662
4661
| LOCATION{ $$ = "location"; }
4663
4662
| MATCH{ $$ = "match"; }
4664
4663
| MAXVALUE{ $$ = "maxvalue"; }
4665
4664
| MINVALUE{ $$ = "minvalue"; }
4666
4665
| NEXT{ $$ = "next"; }
4666
+ | NOCREATEDB{ $$ = "nocreatedb"; }
4667
+ | NOCREATEUSER{ $$ = "nocreateuser"; }
4668
+ | NOTHING{ $$ = "nothing"; }
4669
+ | NOTNULL{ $$ = "notnull"; }
4667
4670
| OF{ $$ = "of"; }
4671
+ | OIDS{ $$ = "oids"; }
4668
4672
| ONLY{ $$ = "only"; }
4669
4673
| OPERATOR{ $$ = "operator"; }
4670
4674
| OPTION{ $$ = "option"; }
4671
4675
| PASSWORD{ $$ = "password"; }
4672
4676
| PRIOR{ $$ = "prior"; }
4673
4677
| PRIVILEGES{ $$ = "privileges"; }
4678
+ | PROCEDURAL{ $$ = "procedural"; }
4674
4679
| READ{ $$ = "read"; }
4675
4680
| RECIPE{ $$ = "recipe"; }
4676
4681
| RELATIVE{ $$ = "relative"; }
4682
+ | RENAME{ $$ = "rename"; }
4683
+ | RETURNS{ $$ = "returns"; }
4677
4684
| ROW{ $$ = "row"; }
4685
+ | RULE{ $$ = "rule"; }
4678
4686
| SCROLL{ $$ = "scroll"; }
4687
+ | SEQUENCE{ $$ = "sequence"; }
4679
4688
| SERIAL{ $$ = "serial"; }
4680
4689
| START{ $$ = "start"; }
4681
4690
| STATEMENT{ $$ = "statement"; }
4691
+ | STDIN{ $$ = "stdin"; }
4692
+ | STDOUT{ $$ = "stdout"; }
4682
4693
| TIME{ $$ = "time"; }
4683
4694
| TIMEZONE_HOUR{ $$ = "timezone_hour"; }
4684
4695
| TIMEZONE_MINUTE{ $$ = "timezone_minute"; }
4685
4696
| TRIGGER{ $$ = "trigger"; }
4697
+ | TRUSTED{ $$ = "trusted"; }
4686
4698
| TYPE_P{ $$ = "type"; }
4687
4699
| VALID{ $$ = "valid"; }
4688
4700
| VERSION{ $$ = "version"; }
@@ -4700,20 +4712,37 @@ ColId: IDENT{ $$ = $1; }
4700
4712
* when used as a full identifier. - thomas 1997-11-06
4701
4713
*/
4702
4714
ColLabel: ColId{ $$ = $1; }
4703
- | ARCHIVE{ $$ = "archive"; }
4715
+ | ABORT_TRANS{ $$ = "abort"; }
4716
+ | ANALYZE{ $$ = "analyze"; }
4717
+ | BINARY{ $$ = "binary"; }
4704
4718
| CLUSTER{ $$ = "cluster"; }
4705
4719
| CONSTRAINT{ $$ = "constraint"; }
4720
+ | COPY{ $$ = "copy"; }
4706
4721
| CROSS{ $$ = "cross"; }
4722
+ | CURRENT{ $$ = "current"; }
4723
+ | DO{ $$ = "do"; }
4724
+ | EXPLAIN{ $$ = "explain"; }
4725
+ | EXTEND{ $$ = "extend"; }
4726
+ | FALSE_P{ $$ = "false"; }
4707
4727
| FOREIGN{ $$ = "foreign"; }
4708
4728
| GROUP{ $$ = "group"; }
4729
+ | LISTEN{ $$ = "listen"; }
4709
4730
| LOAD{ $$ = "load"; }
4731
+ | LOCK_P{ $$ = "lock"; }
4732
+ | MOVE{ $$ = "move"; }
4733
+ | NEW{ $$ = "new"; }
4734
+ | NONE{ $$ = "none"; }
4710
4735
| ORDER{ $$ = "order"; }
4711
4736
| POSITION{ $$ = "position"; }
4712
4737
| PRECISION{ $$ = "precision"; }
4738
+ | RESET{ $$ = "reset"; }
4739
+ | SETOF{ $$ = "setof"; }
4740
+ | SHOW{ $$ = "show"; }
4713
4741
| TABLE{ $$ = "table"; }
4714
4742
| TRANSACTION{ $$ = "transaction"; }
4715
4743
| TRUE_P{ $$ = "true"; }
4716
- | FALSE_P{ $$ = "false"; }
4744
+ | VACUUM{ $$ = "vacuum"; }
4745
+ | VERBOSE{ $$ = "verbose"; }
4717
4746
;
4718
4747
4719
4748
SpecialRuleRelation: CURRENT