⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xfunc.h

📁 关系型数据库 Postgresql 6.5.2
💻 H
字号:
/*------------------------------------------------------------------------- * * xfunc.h *	  prototypes for xfunc.c and predmig.c. * * * Copyright (c) 1994, Regents of the University of California * * $Id: xfunc.h,v 1.18 1999/05/25 22:43:14 momjian Exp $ * *------------------------------------------------------------------------- */#ifndef XFUNC_H#define XFUNC_H#include <utils/rel.h>#include <nodes/relation.h>/* command line arg flags */#define XFUNC_OFF -1			/* do no optimization of expensive preds */#define XFUNC_NOR 2				/* do no optimization of OR clauses */#define XFUNC_NOPULL 4			/* never pull restrictions above joins */#define XFUNC_NOPM 8			/* don't do predicate migration */#define XFUNC_WAIT 16			/* don't do pullup until predicate								 * migration */#define XFUNC_PULLALL 32		/* pull all expensive restrictions up,								 * always *//* constants for local and join predicates */#define XFUNC_LOCPRD 1#define XFUNC_JOINPRD 2#define XFUNC_UNKNOWN 0extern int	XfuncMode;			/* defined in tcop/postgres.c *//* defaults for function attributes used for expensive function calculations */#define BYTE_PCT 100#define PERBYTE_CPU 0#define PERCALL_CPU 0#define OUTIN_RATIO 100/* default width assumed for variable length attributes */#define VARLEN_DEFAULT 128;/* Macro to get group rank out of group cost and group sel */#define get_grouprank(a) ((get_groupsel(a) - 1) / get_groupcost(a))/* Macro to see if a path node is actually a Join */#define is_join(pathnode) (length(get_relids(get_parent(pathnode))) > 1 ? 1 : 0)/* function prototypes from planner/path/xfunc.c */extern void xfunc_trypullup(RelOptInfo *rel);extern int xfunc_shouldpull(Path *childpath, JoinPath *parentpath,				 int whichchild, RestrictInfo *maxcinfopt);extern RestrictInfo *xfunc_pullup(Path *childpath, JoinPath *parentpath, RestrictInfo *cinfo,			 int whichchild, int clausetype);extern Cost xfunc_rank(Expr *clause);extern Cost xfunc_expense(Query *queryInfo, Expr *clause);extern Cost xfunc_join_expense(JoinPath *path, int whichchild);extern Cost xfunc_local_expense(Expr *clause);extern Cost xfunc_func_expense(Expr *node, List *args);extern int	xfunc_width(Expr *clause);/* static, moved to xfunc.c *//* extern int xfunc_card_unreferenced(Expr *clause, Relids referenced); */extern int	xfunc_card_product(Relids relids);extern List *xfunc_find_references(List *clause);extern List *xfunc_primary_join(JoinPath *pathnode);extern Cost xfunc_get_path_cost(Path *pathnode);extern Cost xfunc_total_path_cost(JoinPath *pathnode);extern Cost xfunc_expense_per_tuple(JoinPath *joinnode, int whichchild);extern void xfunc_fixvars(Expr *clause, RelOptInfo *rel, int varno);extern int	xfunc_cinfo_compare(void *arg1, void *arg2);extern int	xfunc_clause_compare(void *arg1, void *arg2);extern void xfunc_disjunct_sort(List *clause_list);extern int	xfunc_disjunct_compare(void *arg1, void *arg2);extern int	xfunc_func_width(RegProcedure funcid, List *args);extern int	xfunc_tuple_width(Relation rd);extern int	xfunc_num_join_clauses(JoinPath *path);extern List *xfunc_LispRemove(List *foo, List *bar);extern bool xfunc_copyrel(RelOptInfo *from, RelOptInfo **to);/* * function prototypes for path/predmig.c */extern bool xfunc_do_predmig(Path root);#endif	 /* XFUNC_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -