diff options
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/custom-scan.sgml | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/doc/src/sgml/custom-scan.sgml b/doc/src/sgml/custom-scan.sgml index 239ba29de72..93d96f2f566 100644 --- a/doc/src/sgml/custom-scan.sgml +++ b/doc/src/sgml/custom-scan.sgml @@ -71,10 +71,17 @@ typedef struct CustomPath <para> <structfield>path</structfield> must be initialized as for any other path, including the row-count estimate, start and total cost, and sort ordering provided - by this path. <structfield>flags</structfield> is a bit mask, which should include + by this path. <structfield>flags</structfield> is a bit mask, which + specifies whether the scan provider can support certain optional + capabilities. <structfield>flags</structfield> should include <literal>CUSTOMPATH_SUPPORT_BACKWARD_SCAN</literal> if the custom path can support - a backward scan and <literal>CUSTOMPATH_SUPPORT_MARK_RESTORE</literal> if it - can support mark and restore. Both capabilities are optional. + a backward scan, <literal>CUSTOMPATH_SUPPORT_MARK_RESTORE</literal> if it + can support mark and restore, + and <literal>CUSTOMPATH_SUPPORT_PROJECTION</literal> if it can perform + projections. (If <literal>CUSTOMPATH_SUPPORT_PROJECTION</literal> is not + set, the scan node will only be asked to produce Vars of the scanned + relation; while if that flag is set, the scan node must be able to + evaluate scalar expressions over these Vars.) An optional <structfield>custom_paths</structfield> is a list of <structname>Path</structname> nodes used by this custom-path node; these will be transformed into <structname>Plan</structname> nodes by planner. |