@@ -90,7 +90,7 @@ typedef struct CustomPath
9090 by <literal>nodeToString</literal>, so that debugging routines that attempt to
9191 print the custom path will work as designed. <structfield>methods</structfield> must
9292 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 .
9494 </para>
9595
9696 <para>
@@ -130,6 +130,23 @@ Plan *(*PlanCustomPath) (PlannerInfo *root,
130130 be a <literal>CustomScan</literal> object, which the callback must allocate and
131131 initialize. See <xref linkend="custom-scan-plan"/> for more details.
132132 </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>
133150 </sect2>
134151 </sect1>
135152
0 commit comments