compiling PL/pgSQL plugin with C++ - Mailing list pgsql-general

From Тарасов Георгий Витальевич
Subject compiling PL/pgSQL plugin with C++
Date
Msg-id b517ec3918d645eb950505eac8dd434e@gaz-is.ru
Whole thread Raw
List pgsql-general
Dear all,

I'm working on development of some PL/pgSQL plugin.
The smaller part of my code is written on C.
It's a standard extension code for integration with fmgr (_PG_init ...)

But bigger part of the code is written on C++.
And here I need declarations of internal PL/pgSQL structs from plpgsql.h

Direct include of this file to my C++ code results in the following errors:


/opt/pgsql-11/include/server/plpgsql.h:1201:45: ошибка: expected <,> or <...> before <new>
 extern void plpgsql_adddatum(PLpgSQL_datum *new);
                                             ^
/opt/pgsql-11/include/server/plpgsql.h:1228:15: ошибка: expected <,> or <...> before <typeid>
          Oid *typeid, int32 *typmod, Oid *collation);
               ^

It's obviously that this code can't be compiled with C++ because the
C++ keywords are used as an identifiers. I modified plpgsql.h.
So, please advise does the renaming is the right step in this situation??

All my modifications are in the attached patch.
Corrections are made also in C-files (pl_comp.c and pl_exec.c), where the function definitions are
located, but this is not necessarily.

George

Attachment

pgsql-general by date:

Previous
From: "Peter J. Holzer"
Date:
Subject: Migrating a Patroni cluster from Ubuntu 16.04 to Ubuntu 18.04
Next
From: Will Hartung
Date:
Subject: Re: Questions about btree_gin vs btree_gist for low cardinality columns