Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc407a38

Browse files
author
Thomas G. Lockhart
committed
Add syntax and warnings for unsupported ALTER TABLE commands
including DROP COLUMN, SET CONSTRAINT, etc.
1 parent359cd68 commitc407a38

File tree

1 file changed

+32
-20
lines changed

1 file changed

+32
-20
lines changed

‎src/backend/parser/gram.y

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
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,
126126
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
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,
179178
a_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
{
330329
VariableSetStmt *n = makeNode(VariableSetStmt);
331330
n->name = $2;
332331
n->value = $4;
333332
$$ = (Node *) n;
334333
}
335-
| SETvar_name '=' var_value
334+
| SETId '=' var_value
336335
{
337336
VariableSetStmt *n = makeNode(VariableSetStmt);
338337
n->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
{
360359
VariableShowStmt *n = makeNode(VariableShowStmt);
361360
n->name = $2;
362361
$$ = (Node *) n;
363362
}
364363
;
365364

366-
VariableResetStmt:RESETvar_name
365+
VariableResetStmt:RESETId
367366
{
368367
VariableResetStmt *n = makeNode(VariableResetStmt);
369368
n->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
{
383382
AddAttrStmt *n = makeNode(AddAttrStmt);
384383
n->relname = $3;
385384
n->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

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

20812094
group_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; };
29712984
attr_name:ColId{ $$ = $1; };
29722985
class:Id{ $$ = $1; };
29732986
index_name:Id{ $$ = $1; };
2974-
var_name:Id{ $$ = $1; };
29752987
name:Id{ $$ = $1; };
29762988

29772989
date:Sconst{ $$ = $1; };

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp