diff options
Diffstat (limited to 'src/include/nodes/pathnodes.h')
-rw-r--r-- | src/include/nodes/pathnodes.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h index a1dc1d07e18..5702fbba60c 100644 --- a/src/include/nodes/pathnodes.h +++ b/src/include/nodes/pathnodes.h @@ -1822,6 +1822,10 @@ typedef struct SubqueryScanPath * ForeignPath represents a potential scan of a foreign table, foreign join * or foreign upper-relation. * + * In the case of a foreign join, fdw_restrictinfo stores the RestrictInfos to + * apply to the join, which are used by createplan.c to get pseudoconstant + * clauses evaluated as one-time quals in a gating Result plan node. + * * fdw_private stores FDW private data about the scan. While fdw_private is * not actually touched by the core code during normal operations, it's * generally a good idea to use a representation that can be dumped by @@ -1832,6 +1836,7 @@ typedef struct ForeignPath { Path path; Path *fdw_outerpath; + List *fdw_restrictinfo; List *fdw_private; } ForeignPath; @@ -1849,6 +1854,10 @@ typedef struct ForeignPath * relation by set_rel_pathlist_hook or set_join_pathlist_hook functions, * respectively. * + * In the case of a table join, custom_restrictinfo stores the RestrictInfos + * to apply to the join, which are used by createplan.c to get pseudoconstant + * clauses evaluated as one-time quals in a gating Result plan node. + * * Core code must avoid assuming that the CustomPath is only as large as * the structure declared here; providers are allowed to make it the first * element in a larger structure. (Since the planner never copies Paths, @@ -1865,6 +1874,7 @@ typedef struct CustomPath uint32 flags; /* mask of CUSTOMPATH_* flags, see * nodes/extensible.h */ List *custom_paths; /* list of child Path nodes, if any */ + List *custom_restrictinfo; List *custom_private; const struct CustomPathMethods *methods; } CustomPath; |