=== Applying patches on top of PostgreSQL commit ID 01d58d7e3ff3f7482ff478cb4a49c48aad276138 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Sun Mar 29 16:25:26 UTC 2026 On branch cf/6027 nothing to commit, working tree clean === using 'git am' to apply patch ./v3-Use-enum-to-define-the-state-machine-for-HashJoin-an.patch === Applying: Use enum to define the state machine for HashJoin and MergeJoin. Using index info to reconstruct a base tree... M src/backend/executor/nodeHashjoin.c M src/backend/executor/nodeMergejoin.c M src/include/nodes/execnodes.h M src/tools/pgindent/typedefs.list Falling back to patching base and 3-way merge... Auto-merging src/tools/pgindent/typedefs.list Auto-merging src/include/nodes/execnodes.h CONFLICT (content): Merge conflict in src/include/nodes/execnodes.h Auto-merging src/backend/executor/nodeMergejoin.c Auto-merging src/backend/executor/nodeHashjoin.c CONFLICT (content): Merge conflict in src/backend/executor/nodeHashjoin.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 Use enum to define the state machine for HashJoin and MergeJoin. 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". === using patch(1) to apply patch ./v3-Use-enum-to-define-the-state-machine-for-HashJoin-an.patch === patching file src/backend/executor/nodeHashjoin.c Hunk #1 FAILED at 174. Hunk #2 succeeded at 787 (offset 118 lines). 1 out of 2 hunks FAILED -- saving rejects to file src/backend/executor/nodeHashjoin.c.rej patching file src/backend/executor/nodeMergejoin.c Hunk #1 succeeded at 101 with fuzz 1 (offset 2 lines). Hunk #2 succeeded at 1414 (offset 2 lines). patching file src/include/nodes/execnodes.h Hunk #1 succeeded at 2157 (offset -38 lines). Hunk #2 succeeded at 2183 (offset -38 lines). Hunk #3 succeeded at 2229 (offset -35 lines). Hunk #4 FAILED at 2295. 1 out of 4 hunks FAILED -- saving rejects to file src/include/nodes/execnodes.h.rej patching file src/tools/pgindent/typedefs.list Hunk #1 succeeded at 1188 (offset 43 lines). Hunk #2 succeeded at 1707 (offset 52 lines). Unstaged changes after reset: M src/backend/executor/nodeHashjoin.c M src/backend/executor/nodeMergejoin.c M src/include/nodes/execnodes.h M src/tools/pgindent/typedefs.list Removing src/backend/executor/nodeHashjoin.c.rej Removing src/include/nodes/execnodes.h.rej === using 'git apply' to apply patch ./v3-Use-enum-to-define-the-state-machine-for-HashJoin-an.patch === Applied patch to 'src/backend/executor/nodeHashjoin.c' with conflicts. Applied patch to 'src/backend/executor/nodeMergejoin.c' cleanly. Applied patch to 'src/include/nodes/execnodes.h' with conflicts. Applied patch to 'src/tools/pgindent/typedefs.list' cleanly. U src/backend/executor/nodeHashjoin.c U src/include/nodes/execnodes.h diff --cc src/backend/executor/nodeHashjoin.c index 0b365d5b475,a5908892381..00000000000 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@@ -176,17 -174,6 +176,20 @@@ #include "utils/wait_event.h" ++<<<<<<< ours +/* + * States of the ExecHashJoin state machine + */ +#define HJ_BUILD_HASHTABLE 1 +#define HJ_NEED_NEW_OUTER 2 +#define HJ_SCAN_BUCKET 3 +#define HJ_FILL_OUTER_TUPLE 4 +#define HJ_FILL_INNER_TUPLES 5 +#define HJ_FILL_OUTER_NULL_TUPLES 6 +#define HJ_FILL_INNER_NULL_TUPLES 7 +#define HJ_NEED_NEW_BATCH 8 ++======= ++>>>>>>> theirs /* Returns true if doing null-fill on outer relation */ #define HJ_FILL_OUTER(hjstate) ((hjstate)->hj_NullInnerTupleSlot != NULL) diff --cc src/include/nodes/execnodes.h index 684e398f824,679b59cdfc0..00000000000 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@@ -2229,10 -2294,8 +2259,14 @@@ typedef struct HashJoinStat TupleTableSlot *hj_HashTupleSlot; TupleTableSlot *hj_NullOuterTupleSlot; TupleTableSlot *hj_NullInnerTupleSlot; + Tuplestorestate *hj_NullOuterTupleStore; TupleTableSlot *hj_FirstOuterTupleSlot; ++<<<<<<< ours + int hj_JoinState; + bool hj_KeepNullTuples; ++======= + HJ_ExecState hj_JoinState; ++>>>>>>> theirs bool hj_MatchedOuter; bool hj_OuterNotEmpty; } HashJoinState;