Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes16kdownloads
foreign.h86 linesDownload Raw Back to foreign
1/*-------------------------------------------------------------------------2 *3 * foreign.h4 *	  support for foreign-data wrappers, servers and user mappings.5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 *9 * src/include/foreign/foreign.h10 *11 *-------------------------------------------------------------------------12 */13#ifndef FOREIGN_H14#define FOREIGN_H15 16#include "nodes/parsenodes.h"17 18 19/* Helper for obtaining username for user mapping */20#define MappingUserName(userid) \21	(OidIsValid(userid) ? GetUserNameFromId(userid, false) : "public")22 23 24typedef struct ForeignDataWrapper25{26	Oid			fdwid;			/* FDW Oid */27	Oid			owner;			/* FDW owner user Oid */28	char	   *fdwname;		/* Name of the FDW */29	Oid			fdwhandler;		/* Oid of handler function, or 0 */30	Oid			fdwvalidator;	/* Oid of validator function, or 0 */31	List	   *options;		/* fdwoptions as DefElem list */32} ForeignDataWrapper;33 34typedef struct ForeignServer35{36	Oid			serverid;		/* server Oid */37	Oid			fdwid;			/* foreign-data wrapper */38	Oid			owner;			/* server owner user Oid */39	char	   *servername;		/* name of the server */40	char	   *servertype;		/* server type, optional */41	char	   *serverversion;	/* server version, optional */42	List	   *options;		/* srvoptions as DefElem list */43} ForeignServer;44 45typedef struct UserMapping46{47	Oid			umid;			/* Oid of user mapping */48	Oid			userid;			/* local user Oid */49	Oid			serverid;		/* server Oid */50	List	   *options;		/* useoptions as DefElem list */51} UserMapping;52 53typedef struct ForeignTable54{55	Oid			relid;			/* relation Oid */56	Oid			serverid;		/* server Oid */57	List	   *options;		/* ftoptions as DefElem list */58} ForeignTable;59 60/* Flags for GetForeignServerExtended */61#define FSV_MISSING_OK	0x0162 63/* Flags for GetForeignDataWrapperExtended */64#define FDW_MISSING_OK	0x0165 66 67extern ForeignServer *GetForeignServer(Oid serverid);68extern ForeignServer *GetForeignServerExtended(Oid serverid,69											   bits16 flags);70extern ForeignServer *GetForeignServerByName(const char *srvname,71											 bool missing_ok);72extern UserMapping *GetUserMapping(Oid userid, Oid serverid);73extern ForeignDataWrapper *GetForeignDataWrapper(Oid fdwid);74extern ForeignDataWrapper *GetForeignDataWrapperExtended(Oid fdwid,75														 bits16 flags);76extern ForeignDataWrapper *GetForeignDataWrapperByName(const char *fdwname,77													   bool missing_ok);78extern ForeignTable *GetForeignTable(Oid relid);79 80extern List *GetForeignColumnOptions(Oid relid, AttrNumber attnum);81 82extern Oid	get_foreign_data_wrapper_oid(const char *fdwname, bool missing_ok);83extern Oid	get_foreign_server_oid(const char *servername, bool missing_ok);84 85#endif							/* FOREIGN_H */86 
codekingpro/portable-devtools · Team Ai