Don't use OidIsValid to check the return value of transformGenericOptions,
because transformGenericOptions returns an array, not an Oid. I'm not sure if this fixes the crashes seen in buildfarm, but it should be fixed anyway.
This commit is contained in:
parent
ea7d5199e5
commit
cef8efc62d
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/foreigncmds.c,v 1.1 2008/12/19 16:25:17 petere Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/foreigncmds.c,v 1.2 2008/12/20 09:40:56 heikki Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -316,7 +316,7 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
|
|||||||
bool nulls[Natts_pg_foreign_data_wrapper];
|
bool nulls[Natts_pg_foreign_data_wrapper];
|
||||||
HeapTuple tuple;
|
HeapTuple tuple;
|
||||||
Oid fdwId;
|
Oid fdwId;
|
||||||
Datum fdwoptions = InvalidOid;
|
Datum fdwoptions;
|
||||||
Oid ownerId;
|
Oid ownerId;
|
||||||
ForeignDataWrapperLibrary *fdwlib;
|
ForeignDataWrapperLibrary *fdwlib;
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
|
|||||||
fdwoptions = transformGenericOptions(0, stmt->options, FdwOpt, NULL,
|
fdwoptions = transformGenericOptions(0, stmt->options, FdwOpt, NULL,
|
||||||
fdwlib->validateOptionList);
|
fdwlib->validateOptionList);
|
||||||
|
|
||||||
if (OidIsValid(fdwoptions))
|
if (PointerIsValid(DatumGetPointer(fdwoptions)))
|
||||||
values[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = fdwoptions;
|
values[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = fdwoptions;
|
||||||
else
|
else
|
||||||
nulls[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = true;
|
nulls[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = true;
|
||||||
@ -465,7 +465,7 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
|
|||||||
datum = transformGenericOptions(datum, stmt->options, FdwOpt,
|
datum = transformGenericOptions(datum, stmt->options, FdwOpt,
|
||||||
NULL, fdwlib->validateOptionList);
|
NULL, fdwlib->validateOptionList);
|
||||||
|
|
||||||
if (OidIsValid(datum))
|
if (PointerIsValid(DatumGetPointer(datum)))
|
||||||
repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = ObjectIdGetDatum(datum);
|
repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = ObjectIdGetDatum(datum);
|
||||||
else
|
else
|
||||||
repl_null[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = true;
|
repl_null[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = true;
|
||||||
@ -565,7 +565,7 @@ void
|
|||||||
CreateForeignServer(CreateForeignServerStmt *stmt)
|
CreateForeignServer(CreateForeignServerStmt *stmt)
|
||||||
{
|
{
|
||||||
Relation rel;
|
Relation rel;
|
||||||
Datum srvoptions = InvalidOid;
|
Datum srvoptions;
|
||||||
Datum values[Natts_pg_foreign_server];
|
Datum values[Natts_pg_foreign_server];
|
||||||
bool nulls[Natts_pg_foreign_server];
|
bool nulls[Natts_pg_foreign_server];
|
||||||
HeapTuple tuple;
|
HeapTuple tuple;
|
||||||
@ -631,7 +631,7 @@ CreateForeignServer(CreateForeignServerStmt *stmt)
|
|||||||
srvoptions = transformGenericOptions(0, stmt->options, ServerOpt, fdw,
|
srvoptions = transformGenericOptions(0, stmt->options, ServerOpt, fdw,
|
||||||
fdw->lib->validateOptionList);
|
fdw->lib->validateOptionList);
|
||||||
|
|
||||||
if (OidIsValid(srvoptions))
|
if (PointerIsValid(DatumGetPointer(srvoptions)))
|
||||||
values[Anum_pg_foreign_server_srvoptions - 1] = srvoptions;
|
values[Anum_pg_foreign_server_srvoptions - 1] = srvoptions;
|
||||||
else
|
else
|
||||||
nulls[Anum_pg_foreign_server_srvoptions - 1] = true;
|
nulls[Anum_pg_foreign_server_srvoptions - 1] = true;
|
||||||
@ -727,7 +727,7 @@ AlterForeignServer(AlterForeignServerStmt *stmt)
|
|||||||
datum = transformGenericOptions(datum, stmt->options, ServerOpt,
|
datum = transformGenericOptions(datum, stmt->options, ServerOpt,
|
||||||
fdw, fdw->lib->validateOptionList);
|
fdw, fdw->lib->validateOptionList);
|
||||||
|
|
||||||
if (OidIsValid(datum))
|
if (PointerIsValid(DatumGetPointer(datum)))
|
||||||
repl_val[Anum_pg_foreign_server_srvoptions - 1] = datum;
|
repl_val[Anum_pg_foreign_server_srvoptions - 1] = datum;
|
||||||
else
|
else
|
||||||
repl_null[Anum_pg_foreign_server_srvoptions - 1] = true;
|
repl_null[Anum_pg_foreign_server_srvoptions - 1] = true;
|
||||||
@ -822,7 +822,7 @@ void
|
|||||||
CreateUserMapping(CreateUserMappingStmt *stmt)
|
CreateUserMapping(CreateUserMappingStmt *stmt)
|
||||||
{
|
{
|
||||||
Relation rel;
|
Relation rel;
|
||||||
Datum useoptions = InvalidOid;
|
Datum useoptions;
|
||||||
Datum values[Natts_pg_user_mapping];
|
Datum values[Natts_pg_user_mapping];
|
||||||
bool nulls[Natts_pg_user_mapping];
|
bool nulls[Natts_pg_user_mapping];
|
||||||
HeapTuple tuple;
|
HeapTuple tuple;
|
||||||
@ -877,7 +877,7 @@ CreateUserMapping(CreateUserMappingStmt *stmt)
|
|||||||
useoptions = transformGenericOptions(0, stmt->options, UserMappingOpt,
|
useoptions = transformGenericOptions(0, stmt->options, UserMappingOpt,
|
||||||
fdw, fdw->lib->validateOptionList);
|
fdw, fdw->lib->validateOptionList);
|
||||||
|
|
||||||
if (OidIsValid(useoptions))
|
if (PointerIsValid(DatumGetPointer(useoptions)))
|
||||||
values[Anum_pg_user_mapping_umoptions - 1] = useoptions;
|
values[Anum_pg_user_mapping_umoptions - 1] = useoptions;
|
||||||
else
|
else
|
||||||
nulls[Anum_pg_user_mapping_umoptions - 1] = true;
|
nulls[Anum_pg_user_mapping_umoptions - 1] = true;
|
||||||
@ -977,7 +977,7 @@ AlterUserMapping(AlterUserMappingStmt *stmt)
|
|||||||
datum = transformGenericOptions(datum, stmt->options, UserMappingOpt,
|
datum = transformGenericOptions(datum, stmt->options, UserMappingOpt,
|
||||||
fdw, fdw->lib->validateOptionList);
|
fdw, fdw->lib->validateOptionList);
|
||||||
|
|
||||||
if (OidIsValid(datum))
|
if (PointerIsValid(DatumGetPointer(datum)))
|
||||||
repl_val[Anum_pg_user_mapping_umoptions - 1] = datum;
|
repl_val[Anum_pg_user_mapping_umoptions - 1] = datum;
|
||||||
else
|
else
|
||||||
repl_null[Anum_pg_user_mapping_umoptions - 1] = true;
|
repl_null[Anum_pg_user_mapping_umoptions - 1] = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user