eulerto / pgquarrel

pgquarrel compares PostgreSQL database schemas (DDL)
BSD 3-Clause "New" or "Revised" License
389 stars 42 forks source link

PostgreSQL 15 support #105

Closed devrimgunduz closed 1 year ago

devrimgunduz commented 1 year ago

Hi,

pgquarrel 0.7.0 does not build against PostgreSQL 15. v15 is out soon. Can you please take a look?

Thanks Devrim

marcinhlybin commented 1 year ago

It fails with the following error:

[ 63%] Building C object CMakeFiles/pgquarrel.dir/src/quarrel.c.o
In file included from /usr/include/postgresql/15/server/getopt_long.h:12,
                 from /root/pgquarrel/src/quarrel.h:13,
                 from /root/pgquarrel/src/quarrel.c:64:
/usr/include/postgresql/15/server/pg_getopt.h:36:19: error: expected ‘;’ before ‘char’
   36 | extern PGDLLIMPORT char *optarg;
      |                   ^~~~~
      |                   ;
/usr/include/postgresql/15/server/pg_getopt.h:37:19: error: expected ‘;’ before ‘int’
   37 | extern PGDLLIMPORT int optind;
      |                   ^~~~
      |                   ;
/usr/include/postgresql/15/server/pg_getopt.h:38:19: error: expected ‘;’ before ‘int’
   38 | extern PGDLLIMPORT int opterr;
      |                   ^~~~
      |                   ;
/usr/include/postgresql/15/server/pg_getopt.h:39:19: error: expected ‘;’ before ‘int’
   39 | extern PGDLLIMPORT int optopt;
      |                   ^~~~
      |                   ;
make[2]: *** [CMakeFiles/pgquarrel.dir/build.make:328: CMakeFiles/pgquarrel.dir/src/quarrel.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:101: CMakeFiles/pgquarrel.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

@devrimgunduz Try adding this to src/quarrel.h:

#define PGDLLIMPORT
eulerto commented 1 year ago

Commit dac0a5527bd1ae48b5926a2b04fed5c01fb2c2c6 fixes it.

devrimgunduz commented 1 year ago

Hi,

Can you please push a new release? We try avoiding adding patches to the stable versions.

Regards, Devrim