Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
plancat.h81 linesDownload Raw Back to optimizer
1/*-------------------------------------------------------------------------2 *3 * plancat.h4 *	  prototypes for plancat.c.5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/optimizer/plancat.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef PLANCAT_H15#define PLANCAT_H16 17#include "nodes/pathnodes.h"18#include "utils/relcache.h"19 20/* Hook for plugins to get control in get_relation_info() */21typedef void (*get_relation_info_hook_type) (PlannerInfo *root,22											 Oid relationObjectId,23											 bool inhparent,24											 RelOptInfo *rel);25extern PGDLLIMPORT get_relation_info_hook_type get_relation_info_hook;26 27 28extern void get_relation_info(PlannerInfo *root, Oid relationObjectId,29							  bool inhparent, RelOptInfo *rel);30 31extern List *infer_arbiter_indexes(PlannerInfo *root);32 33extern void estimate_rel_size(Relation rel, int32 *attr_widths,34							  BlockNumber *pages, double *tuples, double *allvisfrac);35 36extern int32 get_rel_data_width(Relation rel, int32 *attr_widths);37extern int32 get_relation_data_width(Oid relid, int32 *attr_widths);38 39extern bool relation_excluded_by_constraints(PlannerInfo *root,40											 RelOptInfo *rel, RangeTblEntry *rte);41 42extern List *build_physical_tlist(PlannerInfo *root, RelOptInfo *rel);43 44extern bool has_unique_index(RelOptInfo *rel, AttrNumber attno);45 46extern Selectivity restriction_selectivity(PlannerInfo *root,47										   Oid operatorid,48										   List *args,49										   Oid inputcollid,50										   int varRelid);51 52extern Selectivity join_selectivity(PlannerInfo *root,53									Oid operatorid,54									List *args,55									Oid inputcollid,56									JoinType jointype,57									SpecialJoinInfo *sjinfo);58 59extern Selectivity function_selectivity(PlannerInfo *root,60										Oid funcid,61										List *args,62										Oid inputcollid,63										bool is_join,64										int varRelid,65										JoinType jointype,66										SpecialJoinInfo *sjinfo);67 68extern void add_function_cost(PlannerInfo *root, Oid funcid, Node *node,69							  QualCost *cost);70 71extern double get_function_rows(PlannerInfo *root, Oid funcid, Node *node);72 73extern bool has_row_triggers(PlannerInfo *root, Index rti, CmdType event);74 75extern bool has_stored_generated_columns(PlannerInfo *root, Index rti);76 77extern Bitmapset *get_dependent_generated_columns(PlannerInfo *root, Index rti,78												  Bitmapset *target_cols);79 80#endif							/* PLANCAT_H */81 
codekingpro/portable-devtools · Team Ai