10
10
*
11
11
*
12
12
* 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 $
14
14
*
15
15
* HISTORY
16
16
* AUTHOR DATE MAJOR EVENT
@@ -124,8 +124,7 @@ static char *FlattenStringList(List *list);
124
124
125
125
%type <str> relation_name, copy_file_name, copy_delimiter, def_name,
126
126
database_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
129
128
130
129
%type <constrdef> ConstraintElem, ConstraintDef
131
130
@@ -173,7 +172,7 @@ static char *FlattenStringList(List *list);
173
172
%type <astmt> insert_rest
174
173
175
174
%type <typnam> Typename, typname, opt_type
176
- %type <coldef> columnDef
175
+ %type <coldef> columnDef, alter_clause
177
176
%type <defelt> def_elem
178
177
%type <node> def_arg, columnElem, where_clause,
179
178
a_expr, a_expr_or_null, AexprConst,
@@ -321,18 +320,18 @@ stmt : AddAttrStmt
321
320
/*****************************************************************************
322
321
*
323
322
* Set PG internal variable
324
- * SET var_name TO 'var_value'
323
+ * SET name TO 'var_value'
325
324
*
326
325
*****************************************************************************/
327
326
328
- VariableSetStmt: SET var_name TO var_value
327
+ VariableSetStmt: SET Id TO var_value
329
328
{
330
329
VariableSetStmt *n = makeNode(VariableSetStmt);
331
330
n->name = $2;
332
331
n->value = $4;
333
332
$$ = (Node *) n;
334
333
}
335
- | SET var_name '=' var_value
334
+ | SET Id '=' var_value
336
335
{
337
336
VariableSetStmt *n = makeNode(VariableSetStmt);
338
337
n->name = $2;
@@ -348,22 +347,22 @@ VariableSetStmt: SET var_name TO var_value
348
347
}
349
348
;
350
349
351
- var_value: Sconst { $$ = $1; }
350
+ var_value: Sconst { $$ = $1; }
352
351
;
353
352
354
- zone_value: Sconst { $$ = $1; }
355
- | LOCAL { $$ = NULL; }
353
+ zone_value: Sconst { $$ = $1; }
354
+ | LOCAL { $$ = NULL; }
356
355
;
357
356
358
- VariableShowStmt: SHOW var_name
357
+ VariableShowStmt: SHOW Id
359
358
{
360
359
VariableShowStmt *n = makeNode(VariableShowStmt);
361
360
n->name = $2;
362
361
$$ = (Node *) n;
363
362
}
364
363
;
365
364
366
- VariableResetStmt: RESET var_name
365
+ VariableResetStmt: RESET Id
367
366
{
368
367
VariableResetStmt *n = makeNode(VariableResetStmt);
369
368
n->name = $2;
@@ -378,16 +377,30 @@ VariableResetStmt: RESET var_name
378
377
*
379
378
*****************************************************************************/
380
379
381
- AddAttrStmt: ALTER TABLE relation_name opt_inh_star ADD COLUMN columnDef
380
+ AddAttrStmt: ALTER TABLE relation_name opt_inh_star alter_clause
382
381
{
383
382
AddAttrStmt *n = makeNode(AddAttrStmt);
384
383
n->relname = $3;
385
384
n->inh = $4;
386
- n->colDef = $7 ;
385
+ n->colDef = $5 ;
387
386
$$ = (Node *)n;
388
387
}
389
388
;
390
389
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
+
391
404
/* Column definition might include WITH TIME ZONE, but only for the data types
392
405
* called out in SQL92 date/time definitions. So, check explicitly for "timestamp"
393
406
* and "time". - thomas 1997-07-14
@@ -2070,12 +2083,12 @@ opt_inh_star: '*' { $$ = TRUE; }
2070
2083
| /*EMPTY*/ { $$ = FALSE; }
2071
2084
;
2072
2085
2073
- relation_name_list: name_list ;
2086
+ relation_name_list: name_list;
2074
2087
2075
2088
name_list: name
2076
- { $$= lcons(makeString($1),NIL); }
2089
+ { $$ = lcons(makeString($1),NIL); }
2077
2090
| name_list ',' name
2078
- { $$= lappend($1,makeString($3)); }
2091
+ { $$ = lappend($1,makeString($3)); }
2079
2092
;
2080
2093
2081
2094
group_clause: GROUP BY groupby_list { $$ = $3; }
@@ -2141,13 +2154,13 @@ from_list: from_list ',' from_val
2141
2154
{ $$ = lcons($1, NIL); }
2142
2155
;
2143
2156
2144
- from_val: relation_expr AS var_name
2157
+ from_val: relation_expr AS Id
2145
2158
{
2146
2159
$$ = makeNode(RangeVar);
2147
2160
$$->relExpr = $1;
2148
2161
$$->name = $3;
2149
2162
}
2150
- | relation_expr var_name
2163
+ | relation_expr Id
2151
2164
{
2152
2165
$$ = makeNode(RangeVar);
2153
2166
$$->relExpr = $1;
@@ -2971,7 +2984,6 @@ access_method: Id { $$ = $1; };
2971
2984
attr_name: ColId { $$ = $1; };
2972
2985
class: Id { $$ = $1; };
2973
2986
index_name: Id { $$ = $1; };
2974
- var_name: Id { $$ = $1; };
2975
2987
name: Id { $$ = $1; };
2976
2988
2977
2989
date: Sconst { $$ = $1; };
0 commit comments