On 2022-Jul-29, Robert Haas wrote: > I was taught that when programming in C one should avoid returning a > struct type, as BufTagGetRelFileLocator does.
Doing it like that helps RelFileLocatorSkippingWAL, which takes a bare RelFileLocator as argument. With this coding you can call one function with the other function as its argument. However, with the current definition of relpathbackend() and siblings, it looks quite disastrous -- BufTagGetRelFileLocator is being called three times. You could argue that a solution would be to turn those macros into static inline functions. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "I'm impressed how quickly you are fixing this obscure issue. I came from MS SQL and it would be hard for me to put into words how much of a better job you all are doing on [PostgreSQL]." Steve Midgley, http://archives.postgresql.org/pgsql-sql/2008-08/msg00000.php