diff options
| author | Tom Lane | 2001-01-05 06:34:23 +0000 |
|---|---|---|
| committer | Tom Lane | 2001-01-05 06:34:23 +0000 |
| commit | 2fb6cc904555024ef668f5ba096b5bf0ddd3ec26 (patch) | |
| tree | 267b9c28722477567b05001e1e37cf03afc7dc09 /src/interfaces | |
| parent | e62c38d0fccd16593ab2b126e97ea890ac646943 (diff) | |
Remove not-really-standard implementation of CREATE TABLE's UNDER clause,
and revert documentation to describe the existing INHERITS clause
instead, per recent discussion in pghackers. Also fix implementation
of SQL_inheritance SET variable: it is not cool to look at this var
during the initial parsing phase, only during parse_analyze(). See
recent bug report concerning misinterpretation of date constants just
after a SET TIMEZONE command. gram.y really has to be an invariant
transformation of the query string to a raw parsetree; anything that
can vary with time must be done during parse analysis.
Diffstat (limited to 'src/interfaces')
| -rw-r--r-- | src/interfaces/ecpg/preproc/keywords.c | 3 | ||||
| -rw-r--r-- | src/interfaces/ecpg/preproc/preproc.y | 21 |
2 files changed, 7 insertions, 17 deletions
diff --git a/src/interfaces/ecpg/preproc/keywords.c b/src/interfaces/ecpg/preproc/keywords.c index 3246f24769a..6f76bf64602 100644 --- a/src/interfaces/ecpg/preproc/keywords.c +++ b/src/interfaces/ecpg/preproc/keywords.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.34 2000/12/18 11:33:55 meskes Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.35 2001/01/05 06:34:22 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -262,7 +262,6 @@ static ScanKeyword ScanKeywords[] = { {"truncate", TRUNCATE}, {"trusted", TRUSTED}, {"type", TYPE_P}, - {"under", UNDER}, {"union", UNION}, {"unique", UNIQUE}, {"unlisten", UNLISTEN}, diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 2312d0ccc74..8520a378e0d 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -232,7 +232,7 @@ make_name(void) OPERATOR, OWNER, PASSWORD, PROCEDURAL, REINDEX, RENAME, RESET, RETURNS, ROW, RULE, SEQUENCE, SERIAL, SETOF, SHARE, SHOW, START, STATEMENT, STDIN, STDOUT, SYSID TEMP, - TEMPLATE, TOAST, TRUNCATE, TRUSTED, UNDER, UNLISTEN, UNTIL, VACUUM, + TEMPLATE, TOAST, TRUNCATE, TRUSTED, UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION /* The grammar thinks these are keywords, but they are not in the keywords.c @@ -281,7 +281,7 @@ make_name(void) %type <str> Iconst Fconst Sconst TransactionStmt CreateStmt UserId %type <str> CreateAsElement OptCreateAs CreateAsList CreateAsStmt -%type <str> OptUnder key_reference comment_text ConstraintDeferrabilitySpec +%type <str> key_reference comment_text ConstraintDeferrabilitySpec %type <str> key_match ColLabel SpecialRuleRelation ColId columnDef %type <str> ColConstraint ColConstraintElem drop_type Bitconst %type <str> OptTableElementList OptTableElement TableConstraint @@ -1043,10 +1043,10 @@ copy_null: WITH NULL_P AS StringConst { $$ = cat2_str(make_str("with null as"), * *****************************************************************************/ -CreateStmt: CREATE OptTemp TABLE relation_name OptUnder '(' OptTableElementList ')' +CreateStmt: CREATE OptTemp TABLE relation_name '(' OptTableElementList ')' OptInherit { - $$ = cat_str(9, make_str("create"), $2, make_str("table"), $4, $5, make_str("("), $7, make_str(")"), $9); + $$ = cat_str(8, make_str("create"), $2, make_str("table"), $4, make_str("("), $6, make_str(")"), $8); } ; @@ -1241,15 +1241,10 @@ key_reference: NO ACTION { $$ = make_str("no action"); } | SET NULL_P { $$ = make_str("set null"); } ; -OptUnder: UNDER relation_name_list { $$ = cat2_str(make_str("under"), $2); } - | /*EMPTY*/ { $$ = EMPTY; } - ; - opt_only: ONLY { $$ = make_str("only"); } | /*EMPTY*/ { $$ = EMPTY; } ; -/* INHERITS is Deprecated */ OptInherit: INHERITS '(' relation_name_list ')' { $$ = cat_str(3, make_str("inherits ("), $3, make_str(")")); } | /*EMPTY*/ { $$ = EMPTY; } ; @@ -1259,15 +1254,12 @@ OptInherit: INHERITS '(' relation_name_list ')' { $$ = cat_str(3 * SELECT ... INTO. */ -CreateAsStmt: CREATE OptTemp TABLE relation_name OptUnder OptCreateAs AS SelectStmt +CreateAsStmt: CREATE OptTemp TABLE relation_name OptCreateAs AS SelectStmt { if (FoundInto == 1) mmerror(ET_ERROR, "CREATE TABLE/AS SELECT may not specify INTO"); - if (strlen($5) > 0) - mmerror(ET_ERROR, "CREATE TABLE/AS SELECT does not support UNDER"); - - $$ = cat_str(8, make_str("create"), $2, make_str("table"), $4, $5, $6, make_str("as"), $8); + $$ = cat_str(7, make_str("create"), $2, make_str("table"), $4, $5, make_str("as"), $7); } ; @@ -5084,7 +5076,6 @@ TokenId: ABSOLUTE { $$ = make_str("absolute"); } | TRIGGER { $$ = make_str("trigger"); } | TRUNCATE { $$ = make_str("truncate"); } | TRUSTED { $$ = make_str("trusted"); } - | UNDER { $$ = make_str("under"); } | UNLISTEN { $$ = make_str("unlisten"); } | UNTIL { $$ = make_str("until"); } | UPDATE { $$ = make_str("update"); } |
