diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/commands/foreigncmds.c | 32 | ||||
-rw-r--r-- | src/backend/foreign/foreign.c | 6 |
2 files changed, 26 insertions, 12 deletions
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c index 79706b0837b..6ae81ebc9a3 100644 --- a/src/backend/commands/foreigncmds.c +++ b/src/backend/commands/foreigncmds.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/foreigncmds.c,v 1.8 2009/06/11 14:48:55 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/foreigncmds.c,v 1.8.2.1 2009/12/23 12:24:02 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -88,7 +88,8 @@ optionListToArray(List *options) * This is used by CREATE/ALTER of FOREIGN DATA WRAPPER/SERVER/USER MAPPING. */ static Datum -transformGenericOptions(Datum oldOptions, +transformGenericOptions(Oid catalogId, + Datum oldOptions, List *options, Oid fdwvalidator) { @@ -162,7 +163,7 @@ transformGenericOptions(Datum oldOptions, result = optionListToArray(resultOptions); if (fdwvalidator) - OidFunctionCall2(fdwvalidator, result, (Datum) 0); + OidFunctionCall2(fdwvalidator, result, ObjectIdGetDatum(catalogId)); return result; } @@ -384,7 +385,9 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt) nulls[Anum_pg_foreign_data_wrapper_fdwacl - 1] = true; - fdwoptions = transformGenericOptions(PointerGetDatum(NULL), stmt->options, + fdwoptions = transformGenericOptions(ForeignDataWrapperRelationId, + PointerGetDatum(NULL), + stmt->options, fdwvalidator); if (PointerIsValid(DatumGetPointer(fdwoptions))) @@ -501,7 +504,10 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt) datum = PointerGetDatum(NULL); /* Transform the options */ - datum = transformGenericOptions(datum, stmt->options, fdwvalidator); + datum = transformGenericOptions(ForeignDataWrapperRelationId, + datum, + stmt->options, + fdwvalidator); if (PointerIsValid(DatumGetPointer(datum))) repl_val[Anum_pg_foreign_data_wrapper_fdwoptions - 1] = datum; @@ -667,7 +673,9 @@ CreateForeignServer(CreateForeignServerStmt *stmt) nulls[Anum_pg_foreign_server_srvacl - 1] = true; /* Add server options */ - srvoptions = transformGenericOptions(PointerGetDatum(NULL), stmt->options, + srvoptions = transformGenericOptions(ForeignServerRelationId, + PointerGetDatum(NULL), + stmt->options, fdw->fdwvalidator); if (PointerIsValid(DatumGetPointer(srvoptions))) @@ -765,7 +773,9 @@ AlterForeignServer(AlterForeignServerStmt *stmt) datum = PointerGetDatum(NULL); /* Prepare the options array */ - datum = transformGenericOptions(datum, stmt->options, + datum = transformGenericOptions(ForeignServerRelationId, + datum, + stmt->options, fdw->fdwvalidator); if (PointerIsValid(DatumGetPointer(datum))) @@ -936,7 +946,9 @@ CreateUserMapping(CreateUserMappingStmt *stmt) values[Anum_pg_user_mapping_umserver - 1] = ObjectIdGetDatum(srv->serverid); /* Add user options */ - useoptions = transformGenericOptions(PointerGetDatum(NULL), stmt->options, + useoptions = transformGenericOptions(UserMappingRelationId, + PointerGetDatum(NULL), + stmt->options, fdw->fdwvalidator); if (PointerIsValid(DatumGetPointer(useoptions))) @@ -1031,7 +1043,9 @@ AlterUserMapping(AlterUserMappingStmt *stmt) datum = PointerGetDatum(NULL); /* Prepare the options array */ - datum = transformGenericOptions(datum, stmt->options, + datum = transformGenericOptions(UserMappingRelationId, + datum, + stmt->options, fdw->fdwvalidator); if (PointerIsValid(DatumGetPointer(datum))) diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index 04f0d348fb4..f32a296f5b3 100644 --- a/src/backend/foreign/foreign.c +++ b/src/backend/foreign/foreign.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/foreign/foreign.c,v 1.5 2009/06/11 16:14:18 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/foreign/foreign.c,v 1.5.2.1 2009/12/23 12:24:15 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -372,7 +372,7 @@ is_conninfo_option(const char *option, Oid context) struct ConnectionOption *opt; for (opt = libpq_conninfo_options; opt->optname; opt++) - if ((context == opt->optcontext || context == InvalidOid) && strcmp(opt->optname, option) == 0) + if (context == opt->optcontext && strcmp(opt->optname, option) == 0) return true; return false; } @@ -409,7 +409,7 @@ postgresql_fdw_validator(PG_FUNCTION_ARGS) */ initStringInfo(&buf); for (opt = libpq_conninfo_options; opt->optname; opt++) - if (catalog == InvalidOid || catalog == opt->optcontext) + if (catalog == opt->optcontext) appendStringInfo(&buf, "%s%s", (buf.len > 0) ? ", " : "", opt->optname); |