@@ -90,7 +90,7 @@ typedef struct CustomPath
90
90
by <literal>nodeToString</literal>, so that debugging routines that attempt to
91
91
print the custom path will work as designed. <structfield>methods</structfield> must
92
92
point to a (usually statically allocated) object implementing the required
93
- custom path methods, of which there is currently only one .
93
+ custom path methods, which are further detailed below .
94
94
</para>
95
95
96
96
<para>
@@ -130,6 +130,23 @@ Plan *(*PlanCustomPath) (PlannerInfo *root,
130
130
be a <literal>CustomScan</literal> object, which the callback must allocate and
131
131
initialize. See <xref linkend="custom-scan-plan"/> for more details.
132
132
</para>
133
+
134
+ <para>
135
+ <programlisting>
136
+ List *(*ReparameterizeCustomPathByChild) (PlannerInfo *root,
137
+ List *custom_private,
138
+ RelOptInfo *child_rel);
139
+ </programlisting>
140
+ This callback is called while converting a path parameterized by the
141
+ top-most parent of the given child relation <literal>child_rel</literal>
142
+ to be parameterized by the child relation. The callback is used to
143
+ reparameterize any paths or translate any expression nodes saved in the
144
+ given <literal>custom_private</literal> member of a
145
+ <structname>CustomPath</structname>. The callback may use
146
+ <literal>reparameterize_path_by_child</literal>,
147
+ <literal>adjust_appendrel_attrs</literal> or
148
+ <literal>adjust_appendrel_attrs_multilevel</literal> as required.
149
+ </para>
133
150
</sect2>
134
151
</sect1>
135
152
0 commit comments