Re: Move catalog toast table and index declarations - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: Move catalog toast table and index declarations
Date
Msg-id 281df85e-5667-57b0-a5e8-88bfc455c14d@2ndquadrant.com
Whole thread Raw
In response to Re: Move catalog toast table and index declarations  (John Naylor <john.naylor@enterprisedb.com>)
Responses Re: Move catalog toast table and index declarations  (John Naylor <john.naylor@enterprisedb.com>)
List pgsql-hackers
On 2020-11-05 12:59, John Naylor wrote:
> 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.

The issue is that you can't have a bare semicolon at the top level of a 
C compilation unit, at least on some compilers.  So doing

#define FOO(stuff) /*empty*/

and then

FOO(123);

won't work.  You need to fill the definition of FOO with some stuff to 
make it valid.

BKI_ROWTYPE_OID on the other hand is not used at the top level like 
this, so it can be defined to empty.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: Matthias van de Meent
Date:
Subject: Re: libpq compression
Next
From: Peter Eisentraut
Date:
Subject: Re: libpq compression