OK It worked. This is how I did it, hopefully it is right extern "C" { #include <postgres.h> #include <utils/rel.h> #include <fmgr.h> #include <utils/array.h> #include <utils/builtins.h> #include <catalog/pg_type.h> #include <stdlib.h> #include <stdint.h> PG_MODULE_MAGIC; } #include <string> #include <vector> #include <iostream> #include <fstream> #include <seal/seal.h> // external compiled c++ library linked on running 'make' extern "C" { Datum sum_of_numbers(PG_FUNCTION_ARGS){ std::vector<int> numbers {23, 445, 64}; int sum = 0; for (auto &item : numbers){ sum += item; } return sum; }; PG_FUNCTION_INFO_V1(sum_of_numbers); } I've managed to create and execute the function in my PostgreSQL database. So basically I can execute any CPP code as long as I declare my functions like this: extern "C" { Datum function_name(PG_FUNCTION_ARGS){ // CPP code here }; PG_FUNCTION_INFO_V1(function_name); } In addition tho thath, all the C headers should be * inside a extern "C" { }* block and all the CPP headers *outside the extern "C" { }* block, did I get it right? Thanks, Tal -- Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html