1010 *
1111 *
1212 * IDENTIFICATION
13- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.46 1997/09/16 16:11:20 thomas Exp $
13+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.47 1997/09/18 03:46:18 thomas Exp $
1414 *
1515 * HISTORY
1616 * AUTHORDATEMAJOR EVENT
@@ -124,8 +124,7 @@ static char *FlattenStringList(List *list);
124124
125125%type <str>relation_name, copy_file_name, copy_delimiter, def_name,
126126database_name, access_method_clause, access_method, attr_name,
127- class, index_name, name, file_name, recipe_name,
128- var_name, aggr_argtype
127+ class, index_name, name, file_name, recipe_name, aggr_argtype
129128
130129%type <constrdef>ConstraintElem, ConstraintDef
131130
@@ -173,7 +172,7 @@ static char *FlattenStringList(List *list);
173172%type <astmt>insert_rest
174173
175174%type <typnam>Typename, typname, opt_type
176- %type <coldef>columnDef
175+ %type <coldef>columnDef, alter_clause
177176%type <defelt>def_elem
178177%type <node>def_arg, columnElem, where_clause,
179178a_expr, a_expr_or_null, AexprConst,
@@ -321,18 +320,18 @@ stmt : AddAttrStmt
321320/*****************************************************************************
322321 *
323322 * Set PG internal variable
324- * SETvar_name TO 'var_value'
323+ * SETname TO 'var_value'
325324 *
326325 *****************************************************************************/
327326
328- VariableSetStmt: SETvar_name TO var_value
327+ VariableSetStmt: SETId TO var_value
329328{
330329VariableSetStmt *n = makeNode(VariableSetStmt);
331330n->name = $2;
332331n->value = $4;
333332$$ = (Node *) n;
334333}
335- | SETvar_name '=' var_value
334+ | SETId '=' var_value
336335{
337336VariableSetStmt *n = makeNode(VariableSetStmt);
338337n->name = $2;
@@ -348,22 +347,22 @@ VariableSetStmt: SET var_name TO var_value
348347}
349348;
350349
351- var_value: Sconst{ $$ = $1; }
350+ var_value: Sconst{ $$ = $1; }
352351;
353352
354- zone_value: Sconst { $$ = $1; }
355- | LOCAL { $$ = NULL; }
353+ zone_value: Sconst{ $$ = $1; }
354+ | LOCAL{ $$ = NULL; }
356355;
357356
358- VariableShowStmt: SHOWvar_name
357+ VariableShowStmt: SHOWId
359358{
360359VariableShowStmt *n = makeNode(VariableShowStmt);
361360n->name = $2;
362361$$ = (Node *) n;
363362}
364363;
365364
366- VariableResetStmt:RESETvar_name
365+ VariableResetStmt:RESETId
367366{
368367VariableResetStmt *n = makeNode(VariableResetStmt);
369368n->name = $2;
@@ -378,16 +377,30 @@ VariableResetStmt:RESET var_name
378377 *
379378 *****************************************************************************/
380379
381- AddAttrStmt: ALTER TABLE relation_name opt_inh_starADD COLUMN columnDef
380+ AddAttrStmt: ALTER TABLE relation_name opt_inh_staralter_clause
382381{
383382AddAttrStmt *n = makeNode(AddAttrStmt);
384383n->relname = $3;
385384n->inh = $4;
386- n->colDef = $7 ;
385+ n->colDef = $5 ;
387386$$ = (Node *)n;
388387}
389388;
390389
390+ alter_clause: ADD opt_column columnDef
391+ {
392+ $$ = $3;
393+ }
394+ | DROP opt_column Id
395+ {elog(WARN,"ALTER TABLE/DROP COLUMN not yet implemented",NULL); }
396+ | ALTER opt_column Id SET opt_default
397+ {elog(WARN,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented",NULL); }
398+ | ALTER opt_column Id DROP DEFAULT
399+ {elog(WARN,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented",NULL); }
400+ | ADD ConstraintElem
401+ {elog(WARN,"ALTER TABLE/ADD CONSTRAINT not yet implemented",NULL); }
402+ ;
403+
391404/* Column definition might include WITH TIME ZONE, but only for the data types
392405 * called out in SQL92 date/time definitions. So, check explicitly for "timestamp"
393406 * and "time". - thomas 1997-07-14
@@ -2070,12 +2083,12 @@ opt_inh_star: '*'{ $$ = TRUE; }
20702083| /*EMPTY*/{ $$ = FALSE; }
20712084;
20722085
2073- relation_name_list: name_list ;
2086+ relation_name_list:name_list;
20742087
20752088name_list: name
2076- { $$= lcons(makeString($1),NIL); }
2089+ {$$ = lcons(makeString($1),NIL); }
20772090| name_list ',' name
2078- { $$= lappend($1,makeString($3)); }
2091+ {$$ = lappend($1,makeString($3)); }
20792092;
20802093
20812094group_clause: GROUP BY groupby_list{ $$ = $3; }
@@ -2141,13 +2154,13 @@ from_list:from_list ',' from_val
21412154{ $$ = lcons($1, NIL); }
21422155;
21432156
2144- from_val: relation_expr ASvar_name
2157+ from_val: relation_expr ASId
21452158{
21462159$$ = makeNode(RangeVar);
21472160$$->relExpr = $1;
21482161$$->name = $3;
21492162}
2150- | relation_exprvar_name
2163+ | relation_exprId
21512164{
21522165$$ = makeNode(RangeVar);
21532166$$->relExpr = $1;
@@ -2971,7 +2984,6 @@ access_method:Id{ $$ = $1; };
29712984attr_name:ColId{ $$ = $1; };
29722985class:Id{ $$ = $1; };
29732986index_name:Id{ $$ = $1; };
2974- var_name:Id{ $$ = $1; };
29752987name:Id{ $$ = $1; };
29762988
29772989date:Sconst{ $$ = $1; };