@@ -123,12 +123,16 @@ pathman_join_pathlist_hook(PlannerInfo *root,
123123void
124124pathman_rel_pathlist_hook (PlannerInfo * root ,RelOptInfo * rel ,Index rti ,RangeTblEntry * rte )
125125{
126- PartRelationInfo * prel = NULL ;
127- RelOptInfo * * new_rel_array ;
128- RangeTblEntry * * new_rte_array ;
129- int len ;
130- bool found ;
131- int first_child_relid = 0 ;
126+ PartRelationInfo * prel = NULL ;
127+ RangeTblEntry * * new_rte_array ;
128+ RelOptInfo * * new_rel_array ;
129+ bool found ;
130+ int len ;
131+ int first_child_relid = 0 ;
132+
133+ /* Invoke original hook if needed */
134+ if (set_rel_pathlist_hook_next != NULL )
135+ set_rel_pathlist_hook_next (root ,rel ,rti ,rte );
132136
133137if (!pg_pathman_enable )
134138return ;
@@ -262,6 +266,9 @@ pathman_rel_pathlist_hook(PlannerInfo *root, RelOptInfo *rel, Index rti, RangeTb
262266set_append_rel_pathlist (root ,rel ,rti ,rte ,pathkeyAsc ,pathkeyDesc );
263267set_append_rel_size (root ,rel ,rti ,rte );
264268
269+ if (!pg_pathman_enable_pickyappend )
270+ return ;
271+
265272foreach (lc ,rel -> pathlist )
266273{
267274AppendPath * cur_path = (AppendPath * )lfirst (lc );
@@ -277,7 +284,7 @@ pathman_rel_pathlist_hook(PlannerInfo *root, RelOptInfo *rel, Index rti, RangeTb
277284{
278285continue ;
279286}
280-
287+
281288foreach (subpath_cell ,cur_path -> subpaths )
282289{
283290Path * subpath = (Path * )lfirst (subpath_cell );
@@ -323,9 +330,4 @@ pathman_rel_pathlist_hook(PlannerInfo *root, RelOptInfo *rel, Index rti, RangeTb
323330add_path (rel ,inner_path );
324331}
325332}
326-
327- /* Invoke original hook if needed */
328- if (set_rel_pathlist_hook_next != NULL )
329- set_rel_pathlist_hook_next (root ,rel ,rti ,rte );
330333}
331-