=== Applying patches on top of PostgreSQL commit ID 89eafad297a9b01ad77cfc1ab93a433e0af894b0 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Sun Jun 7 10:25:27 UTC 2026 On branch cf/6584 nothing to commit, working tree clean === using 'git am' to apply patch ./PG14-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch === Applying: ECPG: Reject multiple headers in GET/SET DESCRIPTOR at precompile phase Using index info to reconstruct a base tree... M doc/src/sgml/ecpg.sgml M src/interfaces/ecpg/preproc/ecpg.trailer Falling back to patching base and 3-way merge... Auto-merging src/interfaces/ecpg/preproc/ecpg.trailer CONFLICT (content): Merge conflict in src/interfaces/ecpg/preproc/ecpg.trailer Auto-merging doc/src/sgml/ecpg.sgml error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 ECPG: Reject multiple headers in GET/SET DESCRIPTOR at precompile phase 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 ./PG14-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch === patching file doc/src/sgml/ecpg.sgml Hunk #1 succeeded at 7312 (offset 36 lines). Hunk #2 succeeded at 7807 (offset 36 lines). patching file src/interfaces/ecpg/preproc/ecpg.trailer Hunk #1 FAILED at 1178. 1 out of 1 hunk FAILED -- saving rejects to file src/interfaces/ecpg/preproc/ecpg.trailer.rej Unstaged changes after reset: M doc/src/sgml/ecpg.sgml Removing src/interfaces/ecpg/preproc/ecpg.trailer.rej === using 'git apply' to apply patch ./PG14-0001-ECPG-Reject-multiple-headers-in-GET-SET-DESCRIPTOR-a.patch === Applied patch to 'doc/src/sgml/ecpg.sgml' cleanly. Applied patch to 'src/interfaces/ecpg/preproc/ecpg.trailer' with conflicts. U src/interfaces/ecpg/preproc/ecpg.trailer diff --cc src/interfaces/ecpg/preproc/ecpg.trailer index e4c13fdd2b6,1b6504fbbd3..00000000000 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++ b/src/interfaces/ecpg/preproc/ecpg.trailer @@@ -1421,53 -1178,41 +1421,67 @@@ ECPGDeallocateDescr: DEALLOCATE SQL_DES * manipulate a descriptor header */ ++<<<<<<< ours +ECPGGetDescriptorHeader: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar ECPGGetDescHeaderItems + { + @$ = @3; + } + ; + +ECPGGetDescHeaderItems: ECPGGetDescHeaderItem + | ECPGGetDescHeaderItems ',' ECPGGetDescHeaderItem + ; + ++======= + ECPGGetDescriptorHeader: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar ECPGGetDescHeaderItem + { $$ = $3; } + ; + ++>>>>>>> theirs ECPGGetDescHeaderItem: cvariable '=' desc_header_item - { push_assignment($1, $3); } - ; + { + push_assignment(@1, $3); + } + ; + ++<<<<<<< ours +ECPGSetDescriptorHeader: SET SQL_DESCRIPTOR quoted_ident_stringvar ECPGSetDescHeaderItems + { + @$ = @3; + } + ; +ECPGSetDescHeaderItems: ECPGSetDescHeaderItem + | ECPGSetDescHeaderItems ',' ECPGSetDescHeaderItem + ; ++======= + ECPGSetDescriptorHeader: SET SQL_DESCRIPTOR quoted_ident_stringvar ECPGSetDescHeaderItem + { $$ = $3; } + ; + ++>>>>>>> theirs ECPGSetDescHeaderItem: desc_header_item '=' IntConstVar - { - push_assignment($3, $1); - } - ; + { + push_assignment(@3, $1); + } + ; IntConstVar: Iconst - { - char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); + { + char length[32]; - sprintf(length, "%zu", strlen($1)); - new_variable($1, ECPGmake_simple_type(ECPGt_const, length, 0), 0); - $$ = $1; - } - | cvariable - { - $$ = $1; - } - ; + snprintf(length, sizeof(length), "%zu", strlen(@1)); + new_variable(@1, ECPGmake_simple_type(ECPGt_const, length, 0), 0); + } + | cvariable + ; -desc_header_item: SQL_COUNT { $$ = ECPGd_count; } - ; +desc_header_item: SQL_COUNT + { + $$ = ECPGd_count; + } + ; /* * manipulate a descriptor