/* *Restrictionclauses,dividedintosafeandunsafetopushdownsubsets. *AllentriesintheselistsshouldhaveRestrictInfowrappers;that *improvesefficiencyofselectivityandcostestimation.
*/
List *remote_conds;
List *local_conds;
/* Actual remote restriction clauses for scan (sans RestrictInfos) */
List *final_remote_exprs;
/* Bitmap of attr numbers we need to fetch from the remote server. */
Bitmapset *attrs_used;
/* True means that the query_pathkeys is safe to push down */ bool qp_is_pushdown_safe;
/* Cost and selectivity of local_conds. */
QualCost local_conds_cost;
Selectivity local_conds_sel;
/* Selectivity of join conditions */
Selectivity joinclause_sel;
/* Estimated size and cost for a scan, join, or grouping/aggregation. */ double rows; int width; int disabled_nodes;
Cost startup_cost;
Cost total_cost;
/* Join information */
RelOptInfo *outerrel;
RelOptInfo *innerrel;
JoinType jointype; /* joinclauses contains only JOIN/ON conditions for an outer join */
List *joinclauses; /* List of RestrictInfo */
/* Upper relation information */
UpperRelationKind stage;
/* Grouping information */
List *grouped_tlist;
/* Subquery information */ bool make_outerrel_subquery; /* do we deparse outerrel as a
* subquery? */ bool make_innerrel_subquery; /* do we deparse innerrel as a
* subquery? */
Relids lower_subquery_rels; /* all relids appearing in lower
* subqueries */
Relids hidden_subquery_rels; /* relids, which can't be referred to *fromupperrelations,used *internallyforequivalencemember
* search */
/* *Indexoftherelation.Itisusedtocreateanaliastoasubquery *representingtherelation.
*/ int relation_index;
} PgFdwRelationInfo;
/* in deparse.c */ externvoid classifyConditions(PlannerInfo *root,
RelOptInfo *baserel,
List *input_conds,
List **remote_conds,
List **local_conds); externbool is_foreign_expr(PlannerInfo *root,
RelOptInfo *baserel,
Expr *expr); externbool is_foreign_param(PlannerInfo *root,
RelOptInfo *baserel,
Expr *expr); externbool is_foreign_pathkey(PlannerInfo *root,
RelOptInfo *baserel,
PathKey *pathkey); externvoid deparseInsertSql(StringInfo buf, RangeTblEntry *rte,
Index rtindex, Relation rel,
List *targetAttrs, bool doNothing,
List *withCheckOptionList, List *returningList,
List **retrieved_attrs, int *values_end_len); externvoid rebuildInsertSql(StringInfo buf, Relation rel, char *orig_query, List *target_attrs, int values_end_len, int num_params, int num_rows); externvoid deparseUpdateSql(StringInfo buf, RangeTblEntry *rte,
Index rtindex, Relation rel,
List *targetAttrs,
List *withCheckOptionList, List *returningList,
List **retrieved_attrs); externvoid deparseDirectUpdateSql(StringInfo buf, PlannerInfo *root,
Index rtindex, Relation rel,
RelOptInfo *foreignrel,
List *targetlist,
List *targetAttrs,
List *remote_conds,
List **params_list,
List *returningList,
List **retrieved_attrs); externvoid deparseDeleteSql(StringInfo buf, RangeTblEntry *rte,
Index rtindex, Relation rel,
List *returningList,
List **retrieved_attrs); externvoid deparseDirectDeleteSql(StringInfo buf, PlannerInfo *root,
Index rtindex, Relation rel,
RelOptInfo *foreignrel,
List *remote_conds,
List **params_list,
List *returningList,
List **retrieved_attrs); externvoid deparseAnalyzeSizeSql(StringInfo buf, Relation rel); externvoid deparseAnalyzeInfoSql(StringInfo buf, Relation rel); externvoid deparseAnalyzeSql(StringInfo buf, Relation rel,
PgFdwSamplingMethod sample_method, double sample_frac,
List **retrieved_attrs); externvoid deparseTruncateSql(StringInfo buf,
List *rels,
DropBehavior behavior, bool restart_seqs); externvoid deparseStringLiteral(StringInfo buf, constchar *val); extern EquivalenceMember *find_em_for_rel(PlannerInfo *root,
EquivalenceClass *ec,
RelOptInfo *rel); extern EquivalenceMember *find_em_for_rel_target(PlannerInfo *root,
EquivalenceClass *ec,
RelOptInfo *rel); extern List *build_tlist_to_deparse(RelOptInfo *foreignrel); externvoid deparseSelectStmtForRel(StringInfo buf, PlannerInfo *root,
RelOptInfo *rel, List *tlist,
List *remote_conds, List *pathkeys, bool has_final_sort, bool has_limit, bool is_subquery,
List **retrieved_attrs, List **params_list); externconstchar *get_jointype_name(JoinType jointype);
/* in shippable.c */ externbool is_builtin(Oid objectId); externbool is_shippable(Oid objectId, Oid classId, PgFdwRelationInfo *fpinfo);
#endif/* POSTGRES_FDW_H */
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.14Bemerkung:
(vorverarbeitet am 2026-08-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.