#define ExclusiveLock in /usr/include/postgresql/9.1/server/storage/lock.h - Mailing list pgsql-hackers

From Arturas Mazeika
Subject #define ExclusiveLock in /usr/include/postgresql/9.1/server/storage/lock.h
Date
Msg-id CAAUL=cH-wXYOHVZz2ByM6q3BrfeekKKbEj3_L_w7iSsvs2h3mw@mail.gmail.com
Whole thread Raw
Responses Re: #define ExclusiveLock in /usr/include/postgresql/9.1/server/storage/lock.h  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi pg_Hackers,

I would like to express my wonder to see the following line

#define ExclusiveLock                   7               /* blocks ROW SHARE/SELECT...FOR

(line number 543) in /usr/include/postgresql/9.1/server/storage/lock.h file, because ExclusiveLock is a name of a class in libspatialindex library (see libspatialindex.github.io).

Using postgres SPI and the spatial library becomes quite a challenge in a larger project, since the order of the includes starts making a big difference. Suddenly the c++ pre-processor starts generating codes like

    class 7
    {




     }

I suppose changing the define to be all capital letters becomes a huge problem, doesn't it ?



Cheers,
arturas




$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:    12.04
Codename:    precise

$ psql -c 'select version()'
                                                  version                                                  
------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.1.9 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
(1 row)

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: background workers, round three
Next
From: Heikki Linnakangas
Date:
Subject: Re: Cube extension point support // GSoC'13