aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtsuro Fujita <efujita@postgresql.org>2023-08-03 17:45:06 +0900
committerEtsuro Fujita <efujita@postgresql.org>2023-08-03 17:45:06 +0900
commitcc20236d15b373839657af3a33c8c52ac694f25c (patch)
treeba852f3383989f9d25f6f141ac5e4966ec12a308
parent4eb8b9c28256f9470c846452ec3d2e082626e136 (diff)
downloadpostgresql-cc20236d15b373839657af3a33c8c52ac694f25c.tar.gz
postgresql-cc20236d15b373839657af3a33c8c52ac694f25c.zip
Doc: update documentation for creating custom scan paths.
Commit f49842d1e added a new callback for custom scan paths, but missed updating the documentation. Back-patch to all supported branches. Discussion: https://postgr.es/m/CAPmGK15ODkN%2B%3DhkBCufj1HBW0x5OTb65Xuy7ryXchMdiCMpx_g%40mail.gmail.com
-rw-r--r--doc/src/sgml/custom-scan.sgml19
1 files changed, 18 insertions, 1 deletions
diff --git a/doc/src/sgml/custom-scan.sgml b/doc/src/sgml/custom-scan.sgml
index 239ba29de72..68c0dda038d 100644
--- a/doc/src/sgml/custom-scan.sgml
+++ b/doc/src/sgml/custom-scan.sgml
@@ -83,7 +83,7 @@ typedef struct CustomPath
by <literal>nodeToString</literal>, so that debugging routines that attempt to
print the custom path will work as designed. <structfield>methods</structfield> must
point to a (usually statically allocated) object implementing the required
- custom path methods, of which there is currently only one.
+ custom path methods, which are further detailed below.
</para>
<para>
@@ -123,6 +123,23 @@ Plan *(*PlanCustomPath) (PlannerInfo *root,
be a <literal>CustomScan</literal> object, which the callback must allocate and
initialize. See <xref linkend="custom-scan-plan"/> for more details.
</para>
+
+ <para>
+<programlisting>
+List *(*ReparameterizeCustomPathByChild) (PlannerInfo *root,
+ List *custom_private,
+ RelOptInfo *child_rel);
+</programlisting>
+ This callback is called while converting a path parameterized by the
+ top-most parent of the given child relation <literal>child_rel</literal>
+ to be parameterized by the child relation. The callback is used to
+ reparameterize any paths or translate any expression nodes saved in the
+ given <literal>custom_private</literal> member of a
+ <structname>CustomPath</structname>. The callback may use
+ <literal>reparameterize_path_by_child</literal>,
+ <literal>adjust_appendrel_attrs</literal> or
+ <literal>adjust_appendrel_attrs_multilevel</literal> as required.
+ </para>
</sect2>
</sect1>