Heikki Linnakangas wrote:
> The callers of transformGenericOptions-function in foreigncmds.c use
> OidIsValid to check the return value of transformGenericOptions, but it
> returns an array, not an Oid. I committed a fix for that, we'll see if
> it heals the buildfarm.
> 

Thanks for that. There was an additional use of the Datum as Oid in
AlterForeignDataWrapper, namely the assignment to repl_vals.

Another bug was uncovered on orca -- a missing semicolon in gram.y:3004

Fixes attached.

regards,
Martin

*** a/src/backend/commands/foreigncmds.c
--- b/src/backend/commands/foreigncmds.c
***************
*** 466,472 **** AlterForeignDataWrapper(AlterFdwStmt *stmt)
  										NULL, fdwlib->validateOptionList);
  
  		if (PointerIsValid(DatumGetPointer(datum)))
! 			repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = ObjectIdGetDatum(datum);
  		else
  			repl_null[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = true;
  
--- 466,472 ----
  										NULL, fdwlib->validateOptionList);
  
  		if (PointerIsValid(DatumGetPointer(datum)))
! 			repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = datum;
  		else
  			repl_null[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = true;
  
*** a/src/backend/parser/gram.y
--- b/src/backend/parser/gram.y
***************
*** 3001,3007 **** CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_gen
  auth_ident:
  			CURRENT_USER 	{ $$ = "current_user"; }
  		|	USER			{ $$ = "current_user"; }
! 		|	RoleId 			{ $$ = (strcmp($1, "public") == 0) ? NULL : $1 }
  		;
  
  /*****************************************************************************
--- 3001,3007 ----
  auth_ident:
  			CURRENT_USER 	{ $$ = "current_user"; }
  		|	USER			{ $$ = "current_user"; }
! 		|	RoleId 			{ $$ = (strcmp($1, "public") == 0) ? NULL : $1; }
  		;
  
  /*****************************************************************************
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to