mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Teach CLUSTER to use seqscan-and-sort when it's faster than indexscan.
... or at least, when the planner's cost estimates say it will be faster. Leonardo Francalanci, reviewed by Itagaki Takahiro and Tom Lane
This commit is contained in:
@@ -84,6 +84,7 @@ extern void cost_ctescan(Path *path, PlannerInfo *root, RelOptInfo *baserel);
|
||||
extern void cost_recursive_union(Plan *runion, Plan *nrterm, Plan *rterm);
|
||||
extern void cost_sort(Path *path, PlannerInfo *root,
|
||||
List *pathkeys, Cost input_cost, double tuples, int width,
|
||||
Cost comparison_cost, int sort_mem,
|
||||
double limit_tuples);
|
||||
extern void cost_material(Path *path,
|
||||
Cost input_startup_cost, Cost input_total_cost,
|
||||
|
||||
@@ -31,6 +31,8 @@ extern void get_relation_info(PlannerInfo *root, Oid relationObjectId,
|
||||
extern void estimate_rel_size(Relation rel, int32 *attr_widths,
|
||||
BlockNumber *pages, double *tuples);
|
||||
|
||||
extern int32 get_relation_data_width(Oid relid);
|
||||
|
||||
extern bool relation_excluded_by_constraints(PlannerInfo *root,
|
||||
RelOptInfo *rel, RangeTblEntry *rte);
|
||||
|
||||
|
||||
@@ -37,4 +37,6 @@ extern Plan *subquery_planner(PlannerGlobal *glob, Query *parse,
|
||||
|
||||
extern Expr *expression_planner(Expr *expr);
|
||||
|
||||
extern bool plan_cluster_use_sort(Oid tableOid, Oid indexOid);
|
||||
|
||||
#endif /* PLANNER_H */
|
||||
|
||||
Reference in New Issue
Block a user