From 74a2dfee2255a1bace9b0053d014c4efa2823f4d Mon Sep 17 00:00:00 2001 From: Etsuro Fujita Date: Thu, 3 Aug 2023 17:45:00 +0900 Subject: [PATCH] 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 --- doc/src/sgml/custom-scan.sgml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/custom-scan.sgml b/doc/src/sgml/custom-scan.sgml index 93d96f2f566..cd989e7d3c4 100644 --- a/doc/src/sgml/custom-scan.sgml +++ b/doc/src/sgml/custom-scan.sgml @@ -90,7 +90,7 @@ typedef struct CustomPath by nodeToString, so that debugging routines that attempt to print the custom path will work as designed. methods 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. @@ -130,6 +130,23 @@ Plan *(*PlanCustomPath) (PlannerInfo *root, be a CustomScan object, which the callback must allocate and initialize. See for more details. + + + +List *(*ReparameterizeCustomPathByChild) (PlannerInfo *root, + List *custom_private, + RelOptInfo *child_rel); + + This callback is called while converting a path parameterized by the + top-most parent of the given child relation child_rel + to be parameterized by the child relation. The callback is used to + reparameterize any paths or translate any expression nodes saved in the + given custom_private member of a + CustomPath. The callback may use + reparameterize_path_by_child, + adjust_appendrel_attrs or + adjust_appendrel_attrs_multilevel as required. +