mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	Inheritance overhaul by Chris Bitmead <chris@bitmead.com>
This commit is contained in:
		| @@ -8,7 +8,7 @@ | ||||
|  * | ||||
|  * | ||||
|  * IDENTIFICATION | ||||
|  *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.26 2000/04/08 12:20:27 meskes Exp $ | ||||
|  *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.27 2000/06/09 01:44:31 momjian Exp $ | ||||
|  * | ||||
|  *------------------------------------------------------------------------- | ||||
|  */ | ||||
| @@ -246,6 +246,7 @@ static ScanKeyword ScanKeywords[] = { | ||||
| 	{"truncate", TRUNCATE}, | ||||
| 	{"trusted", TRUSTED}, | ||||
| 	{"type", TYPE_P}, | ||||
| 	{"under", UNDER}, | ||||
| 	{"union", UNION}, | ||||
| 	{"unique", UNIQUE}, | ||||
| 	{"unlisten", UNLISTEN}, | ||||
|   | ||||
| @@ -236,7 +236,7 @@ make_name(void) | ||||
|                 REINDEX, RENAME, RESET, RETURNS, ROW, RULE, | ||||
|                 SEQUENCE, SERIAL, SETOF, SHARE, SHOW, START, STATEMENT, STDIN, STDOUT, SYSID | ||||
| 		TEMP, TRUNCATE, TRUSTED, | ||||
|                 UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION | ||||
|                 UNDER, UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION | ||||
|  | ||||
| /* Special keywords, not in the query language - see the "lex" file */ | ||||
| %token <str>    IDENT SCONST Op CSTRING CVARIABLE CPP_LINE | ||||
| @@ -276,7 +276,7 @@ make_name(void) | ||||
|  | ||||
| %type  <str>	Iconst Fconst Sconst TransactionStmt CreateStmt UserId | ||||
| %type  <str>	CreateAsElement OptCreateAs CreateAsList CreateAsStmt | ||||
| %type  <str>	OptInherit key_reference comment_text ConstraintDeferrabilitySpec | ||||
| %type  <str>	OptUnder key_reference comment_text ConstraintDeferrabilitySpec | ||||
| %type  <str>    key_match ColLabel SpecialRuleRelation ColId columnDef | ||||
| %type  <str>    ColConstraint ColConstraintElem NumericOnly FloatOnly | ||||
| %type  <str>    OptTableElementList OptTableElement TableConstraint | ||||
| @@ -995,7 +995,7 @@ copy_null:	WITH NULL_P AS Sconst	{ $$ = cat2_str(make_str("with null as"), $4); | ||||
|  *****************************************************************************/ | ||||
|  | ||||
| CreateStmt:  CREATE OptTemp TABLE relation_name '(' OptTableElementList ')' | ||||
| 				OptInherit | ||||
| 				OptUnder | ||||
| 				{ | ||||
| 					$$ = cat_str(8, make_str("create"), $2, make_str("table"), $4, make_str("("), $6, make_str(")"), $8); | ||||
| 				} | ||||
| @@ -1192,7 +1192,8 @@ key_reference:  NO ACTION	{ $$ = make_str("no action"); } | ||||
| 		| SET NULL_P	{ $$ = make_str("set null"); } | ||||
| 		; | ||||
|  | ||||
| OptInherit:  INHERITS '(' relation_name_list ')' { $$ = cat_str(3, make_str("inherits ("), $3, make_str(")")); } | ||||
| OptUnder: UNDER relation_name_list { $$ = cat_str(2, make_str("under "), $2); } | ||||
|         | INHERITS '(' relation_name_list ')' { $$ = cat_str(3, make_str("inherits ("), $3, make_str(")")); } | ||||
| 		| /*EMPTY*/ { $$ = EMPTY; } | ||||
| 		; | ||||
|  | ||||
| @@ -2877,6 +2878,11 @@ relation_expr:	relation_name | ||||
| 					/* inheritance query */ | ||||
| 					$$ = cat2_str($1, make_str("*")); | ||||
| 				} | ||||
| 		| ONLY relation_name 				  %prec '=' | ||||
| 				{ | ||||
| 					/* inheritance query */ | ||||
|                   $$ = cat2_str(make_str("ONLY "), $2); | ||||
| 				} | ||||
|  | ||||
| opt_array_bounds:  '[' ']' opt_array_bounds | ||||
| 			{ | ||||
| @@ -5081,6 +5087,7 @@ 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"); } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user