Indeed, my motivation for doing the change the way I did it was that only bgw_library_name is expected to be longer, whereas it is much less of a concern for other fields. If we have increased BGW_MAXLEN, it would have increased the size of BackgroundWorker for little to no benefit.
On Mon, Mar 13, 2023 at 07:57:47AM -0700, Yurii Rashkovskii wrote: > However, there are use cases where [potentially] longer names are > expected/desired; for example, test benches (where library files may not > [or can not] be copied to Postgres installation) or alternative library > installation methods that do not put them into $libdir. > > The patch is backwards-compatible and ensures that bgw_library_name stays > *at least* as long as BGW_MAXLEN. Existing external code that uses > BGW_MAXLEN is a length boundary (for example, in `strncpy`) will continue > to work as expected.
I see that BGW_MAXLEN was originally set to 64 in 2013 (7f7485a) [0], but was increased to 96 in 2018 (3a4b891) [1]. It seems generally reasonable to me to increase the length of bgw_library_name further for the use-case you describe, but I wonder if it'd be better to simply increase BGW_MAXLEN again. However, IIUC bgw_library_name is the only field that is likely to be used for absolute paths, so only increasing that one to MAXPGPATH makes sense.