mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 00:03:23 -04:00
These functions were added in commits fbe5a3fb7 and a104a017f, but commit 45639a052 removed their only callers. Put the related code in foreign.c back to the way it was in 9.5, to avoid pointless cross-version diffs. Etsuro Fujita Patch: <d674a3f1-6b63-519c-ef3f-f3188ed6a178@lab.ntt.co.jp>
86 lines
2.6 KiB
C
86 lines
2.6 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* foreign.h
|
|
* support for foreign-data wrappers, servers and user mappings.
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
|
|
*
|
|
* src/include/foreign/foreign.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef FOREIGN_H
|
|
#define FOREIGN_H
|
|
|
|
#include "nodes/parsenodes.h"
|
|
|
|
|
|
/* Helper for obtaining username for user mapping */
|
|
#define MappingUserName(userid) \
|
|
(OidIsValid(userid) ? GetUserNameFromId(userid, false) : "public")
|
|
|
|
|
|
/*
|
|
* Generic option types for validation.
|
|
* NB! Thes are treated as flags, so use only powers of two here.
|
|
*/
|
|
typedef enum
|
|
{
|
|
ServerOpt = 1, /* options applicable to SERVER */
|
|
UserMappingOpt = 2, /* options for USER MAPPING */
|
|
FdwOpt = 4 /* options for FOREIGN DATA WRAPPER */
|
|
} GenericOptionFlags;
|
|
|
|
typedef struct ForeignDataWrapper
|
|
{
|
|
Oid fdwid; /* FDW Oid */
|
|
Oid owner; /* FDW owner user Oid */
|
|
char *fdwname; /* Name of the FDW */
|
|
Oid fdwhandler; /* Oid of handler function, or 0 */
|
|
Oid fdwvalidator; /* Oid of validator function, or 0 */
|
|
List *options; /* fdwoptions as DefElem list */
|
|
} ForeignDataWrapper;
|
|
|
|
typedef struct ForeignServer
|
|
{
|
|
Oid serverid; /* server Oid */
|
|
Oid fdwid; /* foreign-data wrapper */
|
|
Oid owner; /* server owner user Oid */
|
|
char *servername; /* name of the server */
|
|
char *servertype; /* server type, optional */
|
|
char *serverversion; /* server version, optional */
|
|
List *options; /* srvoptions as DefElem list */
|
|
} ForeignServer;
|
|
|
|
typedef struct UserMapping
|
|
{
|
|
Oid umid; /* Oid of user mapping */
|
|
Oid userid; /* local user Oid */
|
|
Oid serverid; /* server Oid */
|
|
List *options; /* useoptions as DefElem list */
|
|
} UserMapping;
|
|
|
|
typedef struct ForeignTable
|
|
{
|
|
Oid relid; /* relation Oid */
|
|
Oid serverid; /* server Oid */
|
|
List *options; /* ftoptions as DefElem list */
|
|
} ForeignTable;
|
|
|
|
|
|
extern ForeignServer *GetForeignServer(Oid serverid);
|
|
extern ForeignServer *GetForeignServerByName(const char *name, bool missing_ok);
|
|
extern UserMapping *GetUserMapping(Oid userid, Oid serverid);
|
|
extern ForeignDataWrapper *GetForeignDataWrapper(Oid fdwid);
|
|
extern ForeignDataWrapper *GetForeignDataWrapperByName(const char *name,
|
|
bool missing_ok);
|
|
extern ForeignTable *GetForeignTable(Oid relid);
|
|
|
|
extern List *GetForeignColumnOptions(Oid relid, AttrNumber attnum);
|
|
|
|
extern Oid get_foreign_data_wrapper_oid(const char *fdwname, bool missing_ok);
|
|
extern Oid get_foreign_server_oid(const char *servername, bool missing_ok);
|
|
|
|
#endif /* FOREIGN_H */
|