On Thu, Nov 5, 2020 at 4:24 AM Peter Eisentraut < peter.eisentr...@2ndquadrant.com> wrote:
> On 2020-10-27 13:12, John Naylor wrote: > > There's nothing wrong; it's just a minor point of consistency. For the > > first part, I mean defined symbols in this file that are invisible to > > the C compiler are written > > > > #define SOMETHING() > > > > If some are written > > > > #define SOMETHING() extern int no_such_variable > > > > I imagine some future reader will wonder why there's a difference. > > The difference is that CATALOG() is followed in actual use by something > like > > { ... } FormData_pg_attribute; > > so it becomes a valid C statement. For DECLARE_INDEX() etc., we need to > do something else to make it valid. I guess this could be explained in > more detail (as I'm attempting in this email), but this isn't materially > changed by this patch. > I think we're talking past eachother. Here's a concrete example: #define BKI_ROWTYPE_OID(oid,oidmacro) #define DECLARE_TOAST(name,toastoid,indexoid) extern int no_such_variable I understand these to be functionally equivalent as far as what the C compiler sees. If not, I'd be curious to know what the difference is. I was thinking this is just a random style difference, and if so, they should be the same now that they're in the same file together: #define BKI_ROWTYPE_OID(oid,oidmacro) #define DECLARE_TOAST(name,toastoid,indexoid) And yes, this doesn't materially change the patch, it's just nitpicking :-) . Materially, I believe it's fine. -- John Naylor EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company