1- /* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.288 2004/06/20 10:45:47 meskes Exp $ */
1+ /* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.289 2004/06/27 12:28:42 meskes Exp $ */
22
33/* Copyright comment */
44%{
@@ -542,7 +542,7 @@ add_additional_variables(char *name, bool insert)
542542%type <str> inf_val_list inf_col_list using_descriptor into_descriptor
543543%type <str> ecpg_into_using prepared_name struct_union_type_with_symbol
544544%type <str> ECPGunreserved ECPGunreserved_interval cvariable
545- %type <str> AlterDbOwnerStmt OptTableSpaceOwner CreateTableSpaceStmt
545+ %type <str> AlterOwnerStmt OptTableSpaceOwner CreateTableSpaceStmt
546546%type <str> DropTableSpaceStmt indirection indirection_el
547547
548548%type <struct_union> s_struct_union_symbol
@@ -578,7 +578,7 @@ statement: ecpgstart opt_at stmt ';' { connection = NULL; }
578578 | c_thing { fprintf(yyout, " %s" , $1 ); free($1 ); }
579579 | CPP_LINE { fprintf(yyout, " %s" , $1 ); free($1 ); }
580580 | ' {' { braces_open++; fputs(" {" , yyout); }
581- | ' }' { remove_variables(braces_open--); fputs(" }" , yyout); }
581+ | ' }' { remove_typedefs(braces_open); remove_variables(braces_open--); fputs(" }" , yyout); }
582582 ;
583583
584584opt_at : AT connection_target
@@ -594,9 +594,9 @@ opt_at: AT connection_target
594594 };
595595
596596stmt : AlterDatabaseSetStmt { output_statement($1 , 0 , connection); }
597- | AlterDbOwnerStmt { output_statement($1 , 0 , connection); }
598597 | AlterDomainStmt { output_statement($1 , 0 , connection); }
599598 | AlterGroupStmt { output_statement($1 , 0 , connection); }
599+ | AlterOwnerStmt { output_statement($1 , 0 , connection); }
600600 | AlterSeqStmt { output_statement($1 , 0 , connection); }
601601 | AlterTableStmt { output_statement($1 , 0 , connection); }
602602 | AlterUserSetStmt { output_statement($1 , 0 , connection); }
@@ -2385,12 +2385,42 @@ RenameStmt: ALTER AGGREGATE func_name '(' aggr_argtype ')' RENAME TO name
23852385 { $$ = cat_str(6 , make_str(" alter trigger" ), $3 , make_str(" on" ), $5 , make_str(" rename to" ), $8 ); }
23862386 | ALTER USER UserId RENAME TO UserId
23872387 { $$ = cat_str(4 , make_str(" alter user" ), $3 , make_str(" rename to" ), $6 ); }
2388+ | ALTER TABLESPACE name RENAME TO name
2389+ { $$ = cat_str(4 , make_str(" alter tablespace" ), $3 , make_str(" rename to" ), $6 ); }
23882390 ;
23892391
23902392opt_column : COLUMN { $$ = make_str(" column" ); }
23912393 | /* EMPTY*/ { $$ = EMPTY; }
23922394 ;
23932395
2396+ /* ****************************************************************************
2397+ *
2398+ * ALTER THING name OWNER TO newname.
2399+ *
2400+ *****************************************************************************/
2401+
2402+ AlterOwnerStmt : ALTER AGGREGATE func_name ' (' aggr_argtype ' )' OWNER TO UserId
2403+ { $$ = cat_str(6 , make_str(" alter aggregate" ), $3 , make_str(" (" ), $5 , make_str(" ) owner to" ), $9 ); }
2404+ | ALTER CONVERSION_P any_name OWNER TO UserId
2405+ { $$ = cat_str(4 , make_str(" alter conversion" ), $3 , make_str(" owner to" ), $6 ); }
2406+ | ALTER DATABASE database_name OWNER TO UserId
2407+ { $$ = cat_str(4 , make_str(" alter database" ), $3 , make_str(" owner to" ), $6 ); }
2408+ | ALTER DOMAIN_P database_name OWNER TO UserId
2409+ { $$ = cat_str(4 , make_str(" alter domain" ), $3 , make_str(" owner to" ), $6 ); }
2410+ | ALTER FUNCTION func_name func_args OWNER TO UserId
2411+ { $$ = cat_str(5 , make_str(" alter function" ), $3 , $4 , make_str(" owner to" ), $7 ); }
2412+ | ALTER OPERATOR any_operator ' (' oper_argtypes ' )' OWNER TO UserId
2413+ { $$ = cat_str(6 , make_str(" alter operator" ), $3 , make_str(" (" ), $5 , make_str(" ) owner to" ), $9 ); }
2414+ | ALTER OPERATOR CLASS any_name USING access_method OWNER TO UserId
2415+ { $$ = cat_str(6 , make_str(" alter operator class" ), $4 , make_str(" using" ), $6 , make_str(" owner to" ), $9 ); }
2416+ | ALTER SCHEMA name OWNER TO UserId
2417+ { $$ = cat_str(4 , make_str(" alter schema" ), $3 , make_str(" owner to" ), $6 ); }
2418+ | ALTER TYPE_P any_name OWNER TO UserId
2419+ { $$ = cat_str(4 , make_str(" alter type" ), $3 , make_str(" owner to" ), $6 ); }
2420+ | ALTER TABLESPACE name OWNER TO UserId
2421+ { $$ = cat_str(4 , make_str(" alter tablespace" ), $3 , make_str(" owner to" ), $6 ); }
2422+ ;
2423+
23942424
23952425/* ****************************************************************************
23962426 *
@@ -2589,8 +2619,6 @@ opt_equal: '=' { $$ = make_str("="); }
25892619 *
25902620 *****************************************************************************/
25912621
2592- AlterDbOwnerStmt : ALTER DATABASE database_name OWNER TO UserId
2593- { $$ = cat_str(4 , make_str(" alter database" ), $3 , make_str(" owner to" ), $6 ); }
25942622AlterDatabaseSetStmt : ALTER DATABASE database_name SET set_rest
25952623 { $$ = cat_str(4 , make_str(" alter database" ), $3 , make_str(" set" ), $5 ); }
25962624 | ALTER DATABASE database_name VariableResetStmt
@@ -2632,8 +2660,6 @@ AlterDomainStmt:
26322660 { $$ = cat_str(4 , make_str(" alter domain" ), $3 , make_str(" add" ), $5 ); }
26332661 | ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior
26342662 { $$ = cat_str(5 , make_str(" alter domain" ), $3 , make_str(" drop constraint" ), $6 , $7 ); }
2635- | ALTER DOMAIN_P any_name OWNER TO UserId
2636- { $$ = cat_str(4 , make_str(" alter domain" ), $3 , make_str(" owner to" ), $6 ); }
26372663 ;
26382664
26392665opt_as : AS {$$ = make_str(" as" ); }
@@ -4582,6 +4608,7 @@ type_declaration: S_TYPEDEF
45824608 /* initial definition */
45834609 this ->next = types;
45844610 this ->name = $5 ;
4611+ this ->brace_level = braces_open;
45854612 this ->type = (struct this_type *) mm_alloc(sizeof (struct this_type ));
45864613 this ->type->type_enum = $3 .type_enum;
45874614 this ->type->type_str = mm_strdup($5 );
@@ -4897,6 +4924,7 @@ struct_union_type_with_symbol: s_struct_union_symbol
48974924 /* initial definition */
48984925 this ->next = types;
48994926 this ->name = mm_strdup(su_type.type_str);
4927+ this ->brace_level = braces_open;
49004928 this ->type = (struct this_type *) mm_alloc(sizeof (struct this_type ));
49014929 this ->type->type_enum = su_type.type_enum;
49024930 this ->type->type_str = mm_strdup(su_type.type_str);
@@ -5417,6 +5445,7 @@ ECPGTypedef: TYPE_P
54175445 /* initial definition */
54185446 this ->next = types;
54195447 this ->name = $3 ;
5448+ this ->brace_level = braces_open;
54205449 this ->type = (struct this_type *) mm_alloc(sizeof (struct this_type ));
54215450 this ->type->type_enum = $5 .type_enum;
54225451 this ->type->type_str = mm_strdup($3 );
0 commit comments