summaryrefslogtreecommitdiff
path: root/src/backend/foreign/postgresql/postgresql_fdw.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/foreign/postgresql/postgresql_fdw.c')
-rw-r--r--src/backend/foreign/postgresql/postgresql_fdw.c123
1 files changed, 0 insertions, 123 deletions
diff --git a/src/backend/foreign/postgresql/postgresql_fdw.c b/src/backend/foreign/postgresql/postgresql_fdw.c
deleted file mode 100644
index 3fb4d2f8631..00000000000
--- a/src/backend/foreign/postgresql/postgresql_fdw.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * postgresql_fdw.c
- * foreign-data wrapper for postgresql (libpq) connections.
- *
- * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
- *
- * IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/foreign/postgresql/postgresql_fdw.c,v 1.2 2009/01/01 17:23:42 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres.h"
-
-#include "fmgr.h"
-#include "lib/stringinfo.h"
-#include "nodes/value.h"
-#include "nodes/parsenodes.h"
-#include "nodes/makefuncs.h"
-#include "foreign/foreign.h"
-
-PG_MODULE_MAGIC;
-
-
-/*
- * Describes the valid options for postgresql FDW, server and user mapping.
- */
-typedef struct ConnectionOptions {
- const char *optname; /* Option name */
- GenericOptionFlags optflags; /* Option usage bitmap */
-} ConnectionOptions;
-
-/*
- * Copied from fe-connect.c PQconninfoOptions.
- *
- * The list is small - don't bother with bsearch if it stays so.
- */
-static ConnectionOptions libpq_conninfo_options[] = {
- { "authtype", ServerOpt },
- { "service", ServerOpt },
- { "user", UserMappingOpt },
- { "password", UserMappingOpt },
- { "connect_timeout", ServerOpt },
- { "dbname", ServerOpt },
- { "host", ServerOpt },
- { "hostaddr", ServerOpt },
- { "port", ServerOpt },
- { "tty", ServerOpt },
- { "options", ServerOpt },
- { "requiressl", ServerOpt },
- { "sslmode", ServerOpt },
- { "gsslib", ServerOpt },
- { NULL, InvalidOpt }
-};
-
-void _PG_fini(void);
-
-
-/*
- * Check if the provided option is one of libpq conninfo options.
- * We look at only options with matching flags.
- */
-static bool
-is_conninfo_option(const char *option, GenericOptionFlags flags)
-{
- ConnectionOptions *opt;
-
- for (opt = libpq_conninfo_options; opt->optname != NULL; opt++)
- if (flags & opt->optflags && strcmp(opt->optname, option) == 0)
- return true;
- return false;
-}
-
-/*
- * Validate the generic option given to SERVER or USER MAPPING.
- * Raise an ERROR if the option or its value is considered
- * invalid.
- *
- * Valid server options are all libpq conninfo options except
- * user and password -- these may only appear in USER MAPPING options.
- */
-void
-_pg_validateOptionList(ForeignDataWrapper *fdw, GenericOptionFlags flags,
- List *options)
-{
- ListCell *cell;
-
- foreach (cell, options)
- {
- DefElem *def = lfirst(cell);
-
- if (!is_conninfo_option(def->defname, flags))
- {
- ConnectionOptions *opt;
- StringInfoData buf;
- const char *objtype;
-
- /*
- * Unknown option specified, complain about it. Provide a hint
- * with list of valid options for the object.
- */
- initStringInfo(&buf);
- for (opt = libpq_conninfo_options; opt->optname != NULL; opt++)
- if (flags & opt->optflags)
- appendStringInfo(&buf, "%s%s", (buf.len > 0) ? ", " : "",
- opt->optname);
-
- if (flags & ServerOpt)
- objtype = "server";
- else if (flags & UserMappingOpt)
- objtype = "user mapping";
- else if (flags & FdwOpt)
- objtype = "foreign-data wrapper";
- else
- objtype = "???";
-
- ereport(ERROR,
- (errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("invalid option \"%s\" to %s", def->defname, objtype),
- errhint("valid %s options are: %s", objtype, buf.data)));
- }
- }
-}