mirror of
https://github.com/postgres/postgres.git
synced 2025-11-18 02:02:55 +03:00
Make sequential scans parallel-aware.
In addition, this path fills in a number of missing bits and pieces in the parallel infrastructure. Paths and plans now have a parallel_aware flag indicating whether whatever parallel-aware logic they have should be engaged. It is believed that we will need this flag for a number of path/plan types, not just sequential scans, which is why the flag is generic rather than part of the SeqScan structures specifically. Also, execParallel.c now gives parallel nodes a chance to initialize their PlanState nodes from the DSM during parallel worker startup. Amit Kapila, with a fair amount of adjustment by me. Review of previous patch versions by Haribabu Kommi and others.
This commit is contained in:
@@ -72,7 +72,7 @@ extern double clamp_row_est(double nrows);
|
||||
extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
|
||||
double index_pages, PlannerInfo *root);
|
||||
extern void cost_seqscan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
||||
ParamPathInfo *param_info);
|
||||
ParamPathInfo *param_info, int nworkers);
|
||||
extern void cost_samplescan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
||||
ParamPathInfo *param_info);
|
||||
extern void cost_index(IndexPath *path, PlannerInfo *root,
|
||||
|
||||
@@ -31,7 +31,7 @@ extern bool add_path_precheck(RelOptInfo *parent_rel,
|
||||
List *pathkeys, Relids required_outer);
|
||||
|
||||
extern Path *create_seqscan_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
Relids required_outer);
|
||||
Relids required_outer, int nworkers);
|
||||
extern Path *create_samplescan_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
Relids required_outer);
|
||||
extern IndexPath *create_index_path(PlannerInfo *root,
|
||||
|
||||
Reference in New Issue
Block a user