PostgreSQL Source Code: src/include/foreign/foreign.h File Reference (original) (raw)
Go to the source code of this file.
Data Structures | |
---|---|
struct | ForeignDataWrapper |
struct | ForeignServer |
struct | UserMapping |
struct | ForeignTable |
Macros | |
---|---|
#define | MappingUserName(userid) (OidIsValid(userid) ? GetUserNameFromId(userid, false) : "public") |
#define | FSV_MISSING_OK 0x01 |
#define | FDW_MISSING_OK 0x01 |
Typedefs | |
---|---|
typedef struct ForeignDataWrapper | ForeignDataWrapper |
typedef struct ForeignServer | ForeignServer |
typedef struct UserMapping | UserMapping |
typedef struct ForeignTable | ForeignTable |
Functions | |
---|---|
ForeignServer * | GetForeignServer (Oid serverid) |
ForeignServer * | GetForeignServerExtended (Oid serverid, bits16 flags) |
ForeignServer * | GetForeignServerByName (const char *srvname, bool missing_ok) |
UserMapping * | GetUserMapping (Oid userid, Oid serverid) |
ForeignDataWrapper * | GetForeignDataWrapper (Oid fdwid) |
ForeignDataWrapper * | GetForeignDataWrapperExtended (Oid fdwid, bits16 flags) |
ForeignDataWrapper * | GetForeignDataWrapperByName (const char *fdwname, bool missing_ok) |
ForeignTable * | GetForeignTable (Oid relid) |
List * | GetForeignColumnOptions (Oid relid, AttrNumber attnum) |
Oid | get_foreign_data_wrapper_oid (const char *fdwname, bool missing_ok) |
Oid | get_foreign_server_oid (const char *servername, bool missing_ok) |
◆ FDW_MISSING_OK
#define FDW_MISSING_OK 0x01
◆ FSV_MISSING_OK
#define FSV_MISSING_OK 0x01
◆ MappingUserName
◆ ForeignDataWrapper
◆ ForeignServer
◆ ForeignTable
◆ UserMapping
◆ get_foreign_data_wrapper_oid()
Oid get_foreign_data_wrapper_oid | ( | const char * | fdwname, |
---|---|---|---|
bool | missing_ok | ||
) |
Definition at line 682 of file foreign.c.
683{
685
687 Anum_pg_foreign_data_wrapper_oid,
691 (errcode(ERRCODE_UNDEFINED_OBJECT),
692 errmsg("foreign-data wrapper \"%s\" does not exist",
693 fdwname)));
694 return oid;
695}
#define OidIsValid(objectId)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
static Datum CStringGetDatum(const char *X)
#define GetSysCacheOid1(cacheId, oidcol, key1)
References CStringGetDatum(), ereport, errcode(), errmsg(), ERROR, GetSysCacheOid1, and OidIsValid.
Referenced by convert_foreign_data_wrapper_name(), get_object_address_unqualified(), and GetForeignDataWrapperByName().
◆ get_foreign_server_oid()
Oid get_foreign_server_oid | ( | const char * | servername, |
---|---|---|---|
bool | missing_ok | ||
) |
Definition at line 705 of file foreign.c.
706{
708
709 oid = GetSysCacheOid1(FOREIGNSERVERNAME, Anum_pg_foreign_server_oid,
713 (errcode(ERRCODE_UNDEFINED_OBJECT),
714 errmsg("server \"%s\" does not exist", servername)));
715 return oid;
716}
References CStringGetDatum(), ereport, errcode(), errmsg(), ERROR, GetSysCacheOid1, and OidIsValid.
Referenced by convert_server_name(), CreateForeignServer(), get_object_address_unqualified(), and GetForeignServerByName().
◆ GetForeignColumnOptions()
Definition at line 293 of file foreign.c.
294{
298 bool isnull;
299
304 elog(ERROR, "cache lookup failed for attribute %d of relation %u",
307 tp,
308 Anum_pg_attribute_attfdwoptions,
309 &isnull);
310 if (isnull)
312 else
314
316
318}
#define HeapTupleIsValid(tuple)
static Datum Int16GetDatum(int16 X)
static Datum ObjectIdGetDatum(Oid X)
List * untransformRelOptions(Datum options)
void ReleaseSysCache(HeapTuple tuple)
Datum SysCacheGetAttr(int cacheId, HeapTuple tup, AttrNumber attributeNumber, bool *isNull)
HeapTuple SearchSysCache2(int cacheId, Datum key1, Datum key2)
References attnum, elog, ERROR, HeapTupleIsValid, Int16GetDatum(), NIL, ObjectIdGetDatum(), options, ReleaseSysCache(), SearchSysCache2(), SysCacheGetAttr(), and untransformRelOptions().
Referenced by deparseAnalyzeSql(), deparseColumnRef(), and get_file_fdw_attribute_options().
◆ GetForeignDataWrapper()
Definition at line 38 of file foreign.c.
39{
41}
ForeignDataWrapper * GetForeignDataWrapperExtended(Oid fdwid, bits16 flags)
References GetForeignDataWrapperExtended().
Referenced by AlterForeignServer(), AlterForeignServerOwner_internal(), AlterUserMapping(), ATExecAlterColumnGenericOptions(), ATExecGenericOptions(), CreateForeignTable(), CreateUserMapping(), fileGetOptions(), get_connect_string(), GetForeignDataWrapperByName(), and ImportForeignSchema().
◆ GetForeignDataWrapperByName()
ForeignDataWrapper * GetForeignDataWrapperByName | ( | const char * | fdwname, |
---|---|---|---|
bool | missing_ok | ||
) |
◆ GetForeignDataWrapperExtended()
Definition at line 50 of file foreign.c.
51{
56 bool isnull;
57
59
61 {
63 elog(ERROR, "cache lookup failed for foreign-data wrapper %u", fdwid);
64 return NULL;
65 }
66
68
70 fdw->fdwid = fdwid;
71 fdw->owner = fdwform->fdwowner;
73 fdw->fdwhandler = fdwform->fdwhandler;
75
76
78 tp,
79 Anum_pg_foreign_data_wrapper_fdwoptions,
80 &isnull);
81 if (isnull)
83 else
85
87
88 return fdw;
89}
static void * GETSTRUCT(const HeapTupleData *tuple)
char * pstrdup(const char *in)
FormData_pg_foreign_data_wrapper * Form_pg_foreign_data_wrapper
HeapTuple SearchSysCache1(int cacheId, Datum key1)
References elog, ERROR, FDW_MISSING_OK, ForeignDataWrapper::fdwhandler, ForeignDataWrapper::fdwid, ForeignDataWrapper::fdwname, ForeignDataWrapper::fdwvalidator, GETSTRUCT(), HeapTupleIsValid, NameStr, NIL, ObjectIdGetDatum(), ForeignDataWrapper::options, ForeignDataWrapper::owner, palloc(), pstrdup(), ReleaseSysCache(), SearchSysCache1(), SysCacheGetAttr(), and untransformRelOptions().
Referenced by GetForeignDataWrapper(), getObjectDescription(), and getObjectIdentityParts().
◆ GetForeignServer()
Definition at line 112 of file foreign.c.
113{
115}
ForeignServer * GetForeignServerExtended(Oid serverid, bits16 flags)
References GetForeignServerExtended().
Referenced by ATExecAlterColumnGenericOptions(), ATExecGenericOptions(), fileGetOptions(), get_batch_size_option(), GetForeignServerByName(), getObjectDescription(), getObjectIdentityParts(), GetUserMapping(), make_new_connection(), pgfdw_reject_incomplete_xact_state_change(), postgresAcquireSampleRowsFunc(), postgresExecForeignTruncate(), postgresGetForeignRelSize(), postgresImportForeignSchema(), and postgresIsForeignRelUpdatable().
◆ GetForeignServerByName()
ForeignServer * GetForeignServerByName | ( | const char * | srvname, |
---|---|---|---|
bool | missing_ok | ||
) |
Definition at line 183 of file foreign.c.
184{
186
188 return NULL;
189
191}
Oid get_foreign_server_oid(const char *servername, bool missing_ok)
ForeignServer * GetForeignServer(Oid serverid)
References get_foreign_server_oid(), GetForeignServer(), and OidIsValid.
Referenced by AlterUserMapping(), CreateForeignTable(), CreateUserMapping(), get_connect_string(), get_object_address_usermapping(), ImportForeignSchema(), postgres_fdw_disconnect(), and RemoveUserMapping().
◆ GetForeignServerExtended()
Definition at line 124 of file foreign.c.
125{
130 bool isnull;
131
133
135 {
137 elog(ERROR, "cache lookup failed for foreign server %u", serverid);
138 return NULL;
139 }
140
142
146 server->owner = serverform->srvowner;
147 server->fdwid = serverform->srvfdw;
148
149
151 tp,
152 Anum_pg_foreign_server_srvtype,
153 &isnull);
155
156
158 tp,
159 Anum_pg_foreign_server_srvversion,
160 &isnull);
162
163
165 tp,
166 Anum_pg_foreign_server_srvoptions,
167 &isnull);
168 if (isnull)
170 else
172
174
175 return server;
176}
#define TextDatumGetCString(d)
FormData_pg_foreign_server * Form_pg_foreign_server
References elog, ERROR, ForeignServer::fdwid, FSV_MISSING_OK, GETSTRUCT(), HeapTupleIsValid, NameStr, NIL, ObjectIdGetDatum(), ForeignServer::options, ForeignServer::owner, palloc(), pstrdup(), ReleaseSysCache(), SearchSysCache1(), ForeignServer::serverid, ForeignServer::servername, ForeignServer::servertype, ForeignServer::serverversion, SysCacheGetAttr(), TextDatumGetCString, and untransformRelOptions().
Referenced by disconnect_cached_connections(), GetForeignServer(), getObjectDescription(), getObjectIdentityParts(), and postgres_fdw_get_connections_internal().
◆ GetForeignTable()
Definition at line 255 of file foreign.c.
256{
261 bool isnull;
262
265 elog(ERROR, "cache lookup failed for foreign table %u", relid);
267
269 ft->relid = relid;
270 ft->serverid = tableform->ftserver;
271
272
274 tp,
275 Anum_pg_foreign_table_ftoptions,
276 &isnull);
277 if (isnull)
279 else
281
283
284 return ft;
285}
FormData_pg_foreign_table * Form_pg_foreign_table
References elog, ERROR, GETSTRUCT(), HeapTupleIsValid, NIL, ObjectIdGetDatum(), ForeignTable::options, palloc(), ReleaseSysCache(), ForeignTable::relid, SearchSysCache1(), ForeignTable::serverid, SysCacheGetAttr(), and untransformRelOptions().
Referenced by check_selective_binary_conversion(), create_foreign_modify(), deparseRelation(), fileGetOptions(), get_batch_size_option(), postgresAcquireSampleRowsFunc(), postgresAnalyzeForeignTable(), postgresBeginDirectModify(), postgresBeginForeignScan(), postgresExecForeignTruncate(), postgresGetAnalyzeInfoForForeignTable(), postgresGetForeignRelSize(), and postgresIsForeignRelUpdatable().
◆ GetUserMapping()
Definition at line 201 of file foreign.c.
202{
205 bool isnull;
207
211
213 {
214
218 }
219
221 {
223
225 (errcode(ERRCODE_UNDEFINED_OBJECT),
226 errmsg("user mapping not found for user \"%s\", server \"%s\"",
228 }
229
234
235
237 tp,
238 Anum_pg_user_mapping_umoptions,
239 &isnull);
240 if (isnull)
242 else
244
246
247 return um;
248}
#define MappingUserName(userid)
FormData_pg_user_mapping * Form_pg_user_mapping
References ereport, errcode(), errmsg(), ERROR, GetForeignServer(), GETSTRUCT(), HeapTupleIsValid, InvalidOid, MappingUserName, NIL, ObjectIdGetDatum(), UserMapping::options, palloc(), ReleaseSysCache(), SearchSysCache2(), UserMapping::serverid, ForeignServer::servername, SysCacheGetAttr(), UserMapping::umid, untransformRelOptions(), and UserMapping::userid.
Referenced by create_foreign_modify(), get_connect_string(), postgresAcquireSampleRowsFunc(), postgresAnalyzeForeignTable(), postgresBeginDirectModify(), postgresBeginForeignScan(), postgresExecForeignTruncate(), postgresGetAnalyzeInfoForForeignTable(), postgresGetForeignRelSize(), and postgresImportForeignSchema().