PostgreSQL Source Code git master
|
#include "postgres.h"
#include "access/htup_details.h"
#include "access/reloptions.h"
#include "catalog/pg_foreign_data_wrapper.h"
#include "catalog/pg_foreign_server.h"
#include "catalog/pg_foreign_table.h"
#include "catalog/pg_user_mapping.h"
#include "foreign/fdwapi.h"
#include "foreign/foreign.h"
#include "funcapi.h"
#include "miscadmin.h"
#include "tcop/tcopprot.h"
#include "utils/builtins.h"
#include "utils/memutils.h"
#include "utils/rel.h"
#include "utils/syscache.h"
#include "utils/varlena.h"
Go to the source code of this file.
Data Structures | |
struct | ConnectionOption |
Variables | |
static const struct ConnectionOption | libpq_conninfo_options [] |
Oid get_foreign_data_wrapper_oid | ( | const char * | fdwname, |
bool | missing_ok | ||
) |
Definition at line 681 of file foreign.c.
References CStringGetDatum(), ereport, errcode(), errmsg(), ERROR, GetSysCacheOid1, and OidIsValid.
Referenced by convert_foreign_data_wrapper_name(), get_object_address_unqualified(), and GetForeignDataWrapperByName().
Oid get_foreign_server_oid | ( | const char * | servername, |
bool | missing_ok | ||
) |
Definition at line 704 of file foreign.c.
References CStringGetDatum(), ereport, errcode(), errmsg(), ERROR, GetSysCacheOid1, and OidIsValid.
Referenced by convert_server_name(), CreateForeignServer(), get_object_address_unqualified(), and GetForeignServerByName().
Path * GetExistingLocalJoinPath | ( | RelOptInfo * | joinrel | ) |
Definition at line 741 of file foreign.c.
References Assert, ForeignPath::fdw_outerpath, if(), JoinPath::innerjoinpath, IS_JOIN_REL, IsA, lfirst, makeNode, JoinPath::outerjoinpath, ForeignPath::path, RelOptInfo::pathlist, and Path::pathtype.
Referenced by postgresGetForeignJoinPaths().
FdwRoutine * GetFdwRoutine | ( | Oid | fdwhandler | ) |
Definition at line 325 of file foreign.c.
References DatumGetPointer(), elog, ereport, errcode(), errmsg(), ERROR, IsA, OidFunctionCall0, restrict_nonsystem_relation_kind, RESTRICT_RELKIND_FOREIGN_TABLE, and unlikely.
Referenced by GetFdwRoutineByServerId(), and ImportForeignSchema().
FdwRoutine * GetFdwRoutineByRelId | ( | Oid | relid | ) |
Definition at line 419 of file foreign.c.
References GetFdwRoutineByServerId(), and GetForeignServerIdByRelId().
Referenced by GetFdwRoutineForRelation(), make_modifytable(), and select_rowmark_type().
FdwRoutine * GetFdwRoutineByServerId | ( | Oid | serverid | ) |
Definition at line 377 of file foreign.c.
References elog, ereport, errcode(), errmsg(), ERROR, GetFdwRoutine(), GETSTRUCT(), HeapTupleIsValid, NameStr, ObjectIdGetDatum(), OidIsValid, ReleaseSysCache(), and SearchSysCache1().
Referenced by ExecInitForeignScan(), ExecuteTruncateGuts(), GetFdwRoutineByRelId(), and truncate_check_rel().
FdwRoutine * GetFdwRoutineForRelation | ( | Relation | relation, |
bool | makecopy | ||
) |
Definition at line 442 of file foreign.c.
References CacheMemoryContext, GetFdwRoutineByRelId(), MemoryContextAlloc(), palloc(), RelationData::rd_fdwroutine, and RelationGetRelid.
Referenced by acquire_inherited_sample_rows(), add_row_identity_columns(), analyze_rel(), CheckValidRowMarkRel(), EvalPlanQualFetchRowMark(), ExecInitForeignScan(), ExecLockRows(), get_relation_info(), InitResultRelInfo(), and relation_is_updatable().
List * GetForeignColumnOptions | ( | Oid | relid, |
AttrNumber | attnum | ||
) |
Definition at line 292 of file foreign.c.
References attnum, elog, ERROR, HeapTupleIsValid, Int16GetDatum(), NIL, ObjectIdGetDatum(), options, ReleaseSysCache(), SearchSysCache2(), SysCacheGetAttr(), and untransformRelOptions().
Referenced by deparseAnalyzeSql(), deparseColumnRef(), and get_file_fdw_attribute_options().
ForeignDataWrapper * GetForeignDataWrapper | ( | Oid | fdwid | ) |
Definition at line 37 of file foreign.c.
References GetForeignDataWrapperExtended().
Referenced by AlterForeignServer(), AlterForeignServerOwner_internal(), AlterUserMapping(), ATExecAlterColumnGenericOptions(), ATExecGenericOptions(), CreateForeignTable(), CreateUserMapping(), fileGetOptions(), get_connect_string(), GetForeignDataWrapperByName(), and ImportForeignSchema().
ForeignDataWrapper * GetForeignDataWrapperByName | ( | const char * | fdwname, |
bool | missing_ok | ||
) |
Definition at line 96 of file foreign.c.
References get_foreign_data_wrapper_oid(), GetForeignDataWrapper(), and OidIsValid.
Referenced by CreateForeignDataWrapper(), and CreateForeignServer().
ForeignDataWrapper * GetForeignDataWrapperExtended | ( | Oid | fdwid, |
bits16 | flags | ||
) |
Definition at line 49 of file foreign.c.
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().
ForeignServer * GetForeignServer | ( | Oid | serverid | ) |
Definition at line 111 of file foreign.c.
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().
ForeignServer * GetForeignServerByName | ( | const char * | srvname, |
bool | missing_ok | ||
) |
Definition at line 182 of file foreign.c.
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().
ForeignServer * GetForeignServerExtended | ( | Oid | serverid, |
bits16 | flags | ||
) |
Definition at line 123 of file foreign.c.
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().
Definition at line 355 of file foreign.c.
References elog, ERROR, GETSTRUCT(), HeapTupleIsValid, ObjectIdGetDatum(), ReleaseSysCache(), and SearchSysCache1().
Referenced by ExecuteTruncateGuts(), get_relation_info(), GetFdwRoutineByRelId(), and truncate_check_rel().
ForeignTable * GetForeignTable | ( | Oid | relid | ) |
Definition at line 254 of file foreign.c.
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().
UserMapping * GetUserMapping | ( | Oid | userid, |
Oid | serverid | ||
) |
Definition at line 200 of file foreign.c.
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().
|
static |
Definition at line 601 of file foreign.c.
References libpq_conninfo_options, ConnectionOption::optcontext, and ConnectionOption::optname.
Referenced by postgresql_fdw_validator().
bool IsImportableForeignTable | ( | const char * | tablename, |
ImportForeignSchemaStmt * | stmt | ||
) |
Definition at line 482 of file foreign.c.
References FDW_IMPORT_SCHEMA_ALL, FDW_IMPORT_SCHEMA_EXCEPT, FDW_IMPORT_SCHEMA_LIMIT_TO, lfirst, RangeVar::relname, and stmt.
Referenced by ImportForeignSchema().
Datum pg_options_to_table | ( | PG_FUNCTION_ARGS | ) |
Definition at line 522 of file foreign.c.
References DefElem::arg, CStringGetTextDatum, DefElem::defname, InitMaterializedSRF(), lfirst, MAT_SRF_USE_EXPECTED_DESC, options, PG_GETARG_DATUM, ReturnSetInfo::setDesc, ReturnSetInfo::setResult, strVal, tuplestore_putvalues(), untransformRelOptions(), and values.
Datum postgresql_fdw_validator | ( | PG_FUNCTION_ARGS | ) |
Definition at line 625 of file foreign.c.
References DefElem::defname, ereport, errcode(), errhint(), errmsg(), ERROR, getClosestMatch(), initClosestMatch(), is_conninfo_option(), lfirst, libpq_conninfo_options, match_state, ConnectionOption::optcontext, ConnectionOption::optname, PG_GETARG_DATUM, PG_GETARG_OID, PG_RETURN_BOOL, untransformRelOptions(), and updateClosestMatch().
|
static |
Definition at line 575 of file foreign.c.
Referenced by is_conninfo_option(), and postgresql_fdw_validator().