38
38
A custom scan provider will typically add paths for a base relation by
39
39
setting the following hook, which is called after the core code has
40
40
generated all the access paths it can for the relation (except for
41
- Gather paths, which are made after this call so that they can use
42
- partial paths added by the hook):
41
+ Gather and Gather Merge paths, which are made after this call so that
42
+ they can use partial paths added by the hook):
43
43
<programlisting>
44
44
typedef void (*set_rel_pathlist_hook_type) (PlannerInfo *root,
45
45
RelOptInfo *rel,
@@ -53,9 +53,10 @@ extern PGDLLIMPORT set_rel_pathlist_hook_type set_rel_pathlist_hook;
53
53
Although this hook function can be used to examine, modify, or remove
54
54
paths generated by the core system, a custom scan provider will typically
55
55
confine itself to generating <structname>CustomPath</structname> objects and adding
56
- them to <literal>rel</literal> using <function>add_path</function>. The custom scan
57
- provider is responsible for initializing the <structname>CustomPath</structname>
58
- object, which is declared like this:
56
+ them to <literal>rel</literal> using <function>add_path</function>, or
57
+ <function>add_partial_path</function> if they are partial paths. The
58
+ custom scan provider is responsible for initializing the
59
+ <structname>CustomPath</structname> object, which is declared like this:
59
60
<programlisting>
60
61
typedef struct CustomPath
61
62
{
0 commit comments