aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/commands/foreigncmds.c32
-rw-r--r--src/backend/foreign/foreign.c6
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);