=== Applying patches on top of PostgreSQL commit ID c462b054ba605d23c1ec139fcca3d758ac139026 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Tue Mar 18 05:18:25 UTC 2025 On branch cf/4458 nothing to commit, working tree clean === using 'git am' to apply patch ./v4-0001-Retiring-is_pushed_down.patch === Applying: Retiring is_pushed_down Using index info to reconstruct a base tree... M contrib/postgres_fdw/postgres_fdw.c M src/backend/optimizer/path/costsize.c M src/backend/optimizer/path/equivclass.c M src/backend/optimizer/path/joinpath.c M src/backend/optimizer/path/joinrels.c M src/backend/optimizer/plan/analyzejoins.c M src/backend/optimizer/plan/createplan.c M src/backend/optimizer/plan/initsplan.c M src/backend/optimizer/plan/subselect.c M src/backend/optimizer/util/inherit.c M src/backend/optimizer/util/joininfo.c M src/backend/optimizer/util/orclauses.c M src/backend/optimizer/util/pathnode.c M src/backend/optimizer/util/relnode.c M src/backend/optimizer/util/restrictinfo.c M src/include/nodes/pathnodes.h M src/include/optimizer/cost.h M src/include/optimizer/restrictinfo.h Falling back to patching base and 3-way merge... Auto-merging src/include/optimizer/restrictinfo.h Auto-merging src/include/optimizer/cost.h Auto-merging src/include/nodes/pathnodes.h Auto-merging src/backend/optimizer/util/restrictinfo.c CONFLICT (content): Merge conflict in src/backend/optimizer/util/restrictinfo.c Auto-merging src/backend/optimizer/util/relnode.c CONFLICT (content): Merge conflict in src/backend/optimizer/util/relnode.c Auto-merging src/backend/optimizer/util/pathnode.c Auto-merging src/backend/optimizer/util/orclauses.c Auto-merging src/backend/optimizer/util/joininfo.c Auto-merging src/backend/optimizer/util/inherit.c Auto-merging src/backend/optimizer/plan/subselect.c Auto-merging src/backend/optimizer/plan/initsplan.c Auto-merging src/backend/optimizer/plan/createplan.c Auto-merging src/backend/optimizer/plan/analyzejoins.c Auto-merging src/backend/optimizer/path/joinrels.c Auto-merging src/backend/optimizer/path/joinpath.c Auto-merging src/backend/optimizer/path/equivclass.c Auto-merging src/backend/optimizer/path/costsize.c Auto-merging contrib/postgres_fdw/postgres_fdw.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 Retiring is_pushed_down When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Unstaged changes after reset: M contrib/postgres_fdw/postgres_fdw.c M src/backend/optimizer/path/costsize.c M src/backend/optimizer/path/equivclass.c M src/backend/optimizer/path/joinpath.c M src/backend/optimizer/path/joinrels.c M src/backend/optimizer/plan/analyzejoins.c M src/backend/optimizer/plan/createplan.c M src/backend/optimizer/plan/initsplan.c M src/backend/optimizer/plan/subselect.c M src/backend/optimizer/util/inherit.c M src/backend/optimizer/util/joininfo.c M src/backend/optimizer/util/orclauses.c M src/backend/optimizer/util/pathnode.c M src/backend/optimizer/util/relnode.c M src/backend/optimizer/util/restrictinfo.c M src/include/nodes/pathnodes.h M src/include/optimizer/cost.h M src/include/optimizer/restrictinfo.h === using patch(1) to apply patch ./v4-0001-Retiring-is_pushed_down.patch === patch: unrecognized option `--no-backup-if-mismatch' usage: patch [-bCcEeflNnRstuv] [-B backup-prefix] [-D symbol] [-d directory] [-F max-fuzz] [-i patchfile] [-o out-file] [-p strip-count] [-r rej-name] [-V t | nil | never | none] [-x number] [-z backup-ext] [--posix] [origfile [patchfile]] patch part_scheme; + bool pk_known_equal[PARTITION_MAX_KEYS]; + int num_equal_pks; ListCell *lc; ++<<<<<<< ours ++======= + int cnt_pks; + bool pk_has_clause[PARTITION_MAX_KEYS]; + bool strict_op; + Relids ojrelids = CALC_OUTER_JOIN_RELIDS(joinrel->relids, + rel1->relids, + rel2->relids); ++>>>>>>> theirs /* * This function must only be called when the joined relations have same diff --cc src/backend/optimizer/util/restrictinfo.c index a80083d2323,5d05287bf3c..00000000000 --- a/src/backend/optimizer/util/restrictinfo.c +++ b/src/backend/optimizer/util/restrictinfo.c @@@ -21,9 -21,18 +21,21 @@@ #include "optimizer/restrictinfo.h" ++<<<<<<< ours ++======= + static RestrictInfo *make_restrictinfo_internal(PlannerInfo *root, + Expr *clause, + Expr *orclause, + bool has_clone, + bool is_clone, + bool pseudoconstant, + Index security_level, + Relids required_relids, + Relids incompatible_relids, + Relids outer_relids); ++>>>>>>> theirs static Expr *make_sub_restrictinfos(PlannerInfo *root, Expr *clause, - bool is_pushed_down, bool has_clone, bool is_clone, bool pseudoconstant, @@@ -79,38 -86,34 +89,65 @@@ make_restrictinfo(PlannerInfo *root /* Shouldn't be an AND clause, else AND/OR flattening messed up */ Assert(!is_andclause(clause)); ++<<<<<<< ours + return make_plain_restrictinfo(root, + clause, + NULL, + is_pushed_down, + has_clone, + is_clone, + pseudoconstant, + security_level, + required_relids, + incompatible_relids, + outer_relids); ++======= + return make_restrictinfo_internal(root, + clause, + NULL, + has_clone, + is_clone, + pseudoconstant, + security_level, + required_relids, + incompatible_relids, + outer_relids); ++>>>>>>> theirs } /* - * make_restrictinfo_internal + * make_plain_restrictinfo * - * Common code for the main entry points and the recursive cases. + * Common code for the main entry points and the recursive cases. Also, + * useful while constructing RestrictInfos above OR clause, which already has + * RestrictInfos above its subclauses. */ ++<<<<<<< ours +RestrictInfo * +make_plain_restrictinfo(PlannerInfo *root, + Expr *clause, + Expr *orclause, + bool is_pushed_down, + bool has_clone, + bool is_clone, + bool pseudoconstant, + Index security_level, + Relids required_relids, + Relids incompatible_relids, + Relids outer_relids) ++======= + static RestrictInfo * + make_restrictinfo_internal(PlannerInfo *root, + Expr *clause, + Expr *orclause, + bool has_clone, + bool is_clone, + bool pseudoconstant, + Index security_level, + Relids required_relids, + Relids incompatible_relids, + Relids outer_relids) ++>>>>>>> theirs { RestrictInfo *restrictinfo = makeNode(RestrictInfo); Relids baserels; @@@ -287,17 -287,16 +321,30 @@@ make_sub_restrictinfos(PlannerInfo *roo NULL, incompatible_relids, outer_relids)); ++<<<<<<< ours + return (Expr *) make_plain_restrictinfo(root, + clause, + make_orclause(orlist), + is_pushed_down, + has_clone, + is_clone, + pseudoconstant, + security_level, + required_relids, + incompatible_relids, + outer_relids); ++======= + return (Expr *) make_restrictinfo_internal(root, + clause, + make_orclause(orlist), + has_clone, + is_clone, + pseudoconstant, + security_level, + required_relids, + incompatible_relids, + outer_relids); ++>>>>>>> theirs } else if (is_andclause(clause)) { @@@ -319,17 -317,16 +365,30 @@@ return make_andclause(andlist); } else ++<<<<<<< ours + return (Expr *) make_plain_restrictinfo(root, + clause, + NULL, + is_pushed_down, + has_clone, + is_clone, + pseudoconstant, + security_level, + required_relids, + incompatible_relids, + outer_relids); ++======= + return (Expr *) make_restrictinfo_internal(root, + clause, + NULL, + has_clone, + is_clone, + pseudoconstant, + security_level, + required_relids, + incompatible_relids, + outer_relids); ++>>>>>>> theirs } /*