Thread: rte in set_plan_rel_pathlist()

rte in set_plan_rel_pathlist()

From
"phd9110"
Date:
 
hi:

in allpath.c ,the set_plan_rel_pathlist() function has a parameter of RangeTblEntry type.
what does we use this varaible to do ?
i doesn't see any code in this function using it .

In optimizer module, it look like that we can get most information from Query . Is it right ?
so , what time use Query? what time use RangeTblEntry? Are there any rule?

Kao


136 /*
137  * set_plain_rel_pathlist
138  *        Build access paths for a plain relation (no subquery, no inheritance)
139  */
140 static void
141 set_plain_rel_pathlist(Query *root, RelOptInfo *rel, RangeTblEntry *rte)
142 {
143         /* Mark rel with estimated output rows, width, etc */
144         set_baserel_size_estimates(root, rel);
145
146         /*
147          * Generate paths and add them to the rel's pathlist.
148          *
149          * Note: add_path() will discard any paths that are dominated by another
150          * available path, keeping only those paths that are superior along at
151          * least one dimension of cost or sortedness.
152          */
153
154         /* Consider sequential scan */
155         add_path(rel, create_seqscan_path(root, rel));
156
157         /* Consider TID scans */
158         create_tidscan_paths(root, rel);
159
160         /* Consider index paths for both simple and OR index clauses */
161         create_index_paths(root, rel);
162
163         /* create_index_paths must be done before create_or_index_paths */
164         create_or_index_paths(root, rel);
165
166         /* Now find the cheapest of the paths for this rel */
167         set_cheapest(rel);
168 }
169

--