aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/custom-scan.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/custom-scan.sgml')
-rw-r--r--doc/src/sgml/custom-scan.sgml10
1 files changed, 9 insertions, 1 deletions
diff --git a/doc/src/sgml/custom-scan.sgml b/doc/src/sgml/custom-scan.sgml
index 62a8a3305bb..dc327b11b21 100644
--- a/doc/src/sgml/custom-scan.sgml
+++ b/doc/src/sgml/custom-scan.sgml
@@ -60,6 +60,7 @@ typedef struct CustomPath
{
Path path;
uint32 flags;
+ List *custom_paths;
List *custom_private;
const CustomPathMethods *methods;
} CustomPath;
@@ -73,6 +74,9 @@ typedef struct CustomPath
<literal>CUSTOMPATH_SUPPORT_BACKWARD_SCAN</> if the custom path can support
a backward scan and <literal>CUSTOMPATH_SUPPORT_MARK_RESTORE</> if it
can support mark and restore. Both capabilities are optional.
+ An optional <structfield>custom_paths</> is a list of <structname>Path</>
+ nodes used by this custom-path node; these will be transformed into
+ <structname>Plan</> nodes by planner.
<structfield>custom_private</> can be used to store the custom path's
private data. Private data should be stored in a form that can be handled
by <literal>nodeToString</>, so that debugging routines that attempt to
@@ -112,7 +116,8 @@ Plan *(*PlanCustomPath) (PlannerInfo *root,
RelOptInfo *rel,
CustomPath *best_path,
List *tlist,
- List *clauses);
+ List *clauses,
+ List *custom_plans);
</programlisting>
Convert a custom path to a finished plan. The return value will generally
be a <literal>CustomScan</> object, which the callback must allocate and
@@ -145,6 +150,7 @@ typedef struct CustomScan
{
Scan scan;
uint32 flags;
+ List *custom_plans;
List *custom_exprs;
List *custom_private;
List *custom_scan_tlist;
@@ -159,6 +165,8 @@ typedef struct CustomScan
estimated costs, target lists, qualifications, and so on.
<structfield>flags</> is a bitmask with the same meaning as in
<structname>CustomPath</>.
+ <structfield>custom_plans</> can be used to store child
+ <structname>Plan</> nodes.
<structfield>custom_exprs</> should be used to
store expression trees that will need to be fixed up by
<filename>setrefs.c</> and <filename>subselect.c</>, while