gr8, let us know if that goes OK Mauricio, and if u have any other questions
Frank On Fri, Aug 17, 2018 at 3:56 AM, Mauricio Scheffer < mauricioschef...@gmail.com> wrote: > Thanks Orhan, Rahul. I was able to get past that error by > including <utils/regproc.h> in src/ports/postgres/dbconnector/UDF_impl.hpp > and src/ports/postgres/dbconnector/Backend.hpp > I got a couple other similar errors which I was able to easily patch and > finished compiling but then at runtime I got > > could not load library "$libdir/libmadlib.so": ERROR: could not load > library "/usr/lib/postgresql/10/lib/libmadlib.so": > /usr/lib/postgresql/10/lib/libmadlib.so: undefined symbol: > _Z16format_procedurej > > so I guess I'll just have to upgrade both Postgres and MADlib at the same > time. > > Regards, > Mauricio > > > On Thu, Aug 16, 2018 at 6:38 PM Rahul Iyer <ri...@apache.org> wrote: > >> + dev@madlib.apache >> >> From the developer perspective on why it's not working: >> 'format_procedure' is a postgres function which is declared in regproc.h. >> Looking at the 10_3 branch it's still present in that file, so the >> declaration should be available to the compiler. >> >> Maybe search in the INCLUDEDIR-SERVER directory (available by running >> pg_config) if 'format_procedure' is declared in regproc.h? It's possible >> it's an include issue that's just showing up with that function. >> >> >> On Thu, Aug 16, 2018 at 10:18 AM Orhan Kislal <okis...@pivotal.io> wrote: >> >>> Hi Mauricio, >>> >>> Unfortunately, MADlib 1.12 does not support PG 10. Here is the >>> compatibility matrix: >>> https://cwiki.apache.org/confluence/display/MADLIB/FAQ#FAQ-Q1- >>> 2WhatdatabaseplatformsdoesMADlibsupportandwhatistheupgradematrix? >>> Earliest MADlib version to support PG 10 officially is 1.14 but I would >>> suggest using our latest release, 1.15. >>> >>> Please let us know if you have any other questions. >>> >>> Thanks, >>> >>> Orhan >>> >>> On Thu, Aug 16, 2018 at 9:46 AM Mauricio Scheffer < >>> mauricioschef...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I need to upgrade an existing Postgres 9.5 + Madlib 1.12 to Postgres 10. >>>> To avoid potential issues I'd like to skip upgrading Madlib, at least >>>> for now. It's been working fine for us for quite some time, we don't need >>>> any new features. >>>> >>>> However I'm having issues compiling Madlib 1.12 on Postgres 10. >>>> Here's what I'm doing: >>>> >>>> docker run --rm -it madlib/postgres_10.0 /bin/bash >>>> >>>> cd >>>> wget http://api.pgxn.org/dist/madlib/1.12.0/madlib-1.12.0.zip >>>> unzip madlib-1.12.0.zip >>>> cd madlib-1.12.0 >>>> cp -R src/ports/postgres/9.6/ src/ports/postgres/10.0/ >>>> cp src/ports/postgres/cmake/FindPostgreSQL_9_6.cmake >>>> src/ports/postgres/cmake/FindPostgreSQL_10_0.cmake >>>> ./configure >>>> make >>>> >>>> and this is the compile error I'm getting: >>>> >>>> [ 42%] Building CXX object src/ports/postgres/10.0/ >>>> CMakeFiles/madlib_postgresql_10_0.dir/__/__/__/modules/ >>>> assoc_rules/assoc_rules.cpp.o >>>> In file included from /root/madlib-1.12.0/src/ >>>> modules/assoc_rules/assoc_rules.cpp:11:0: >>>> /root/madlib-1.12.0/src/ports/postgres/dbconnector/Backend.hpp: In >>>> function ‘char* madlib::dbconnector::postgres: >>>> :{anonymous}::madlib_format_procedure(Oid)’: >>>> /root/madlib-1.12.0/src/ports/postgres/dbconnector/Backend.hpp:35:65: >>>> error: ‘format_procedure’ was not declared in this scope >>>> char*, format_procedure, (Oid procedure_oid), (procedure_oid)) >>>> ^ >>>> /root/madlib-1.12.0/src/ports/postgres/dbconnector/dbconnector.hpp:166:27: >>>> note: in definition of macro ‘MADLIB_WRAP_PG_FUNC’ >>>> _result = _pgfunc _passedlist; \ >>>> ^ >>>> In file included from /usr/include/postgresql/10/ >>>> server/postgres.h:48:0, >>>> from /root/madlib-1.12.0/src/ports/ >>>> postgres/dbconnector/dbconnector.hpp:24, >>>> from /root/madlib-1.12.0/src/ >>>> modules/assoc_rules/assoc_rules.cpp:11: >>>> /root/madlib-1.12.0/src/ports/postgres/dbconnector/UDF_impl.hpp: In >>>> static member function ‘static Datum madlib::dbconnector::postgres: >>>> :UDF::call(FunctionCallInfo)’: >>>> /root/madlib-1.12.0/src/ports/postgres/dbconnector/UDF_impl.hpp:206:56: >>>> error: there are no arguments to ‘format_procedure’ that depend on a >>>> template parameter, so a declaration of ‘format_procedure’ must be >>>> available [-fpermissive] >>>> format_procedure(fcinfo->flinfo->fn_oid), >>>> ^ >>>> /root/madlib-1.12.0/src/ports/postgres/dbconnector/UDF_impl.hpp:206:56: >>>> note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing >>>> the use of an undeclared name is deprecated) >>>> src/ports/postgres/10.0/CMakeFiles/madlib_postgresql_10_0.dir/build.make:62: >>>> recipe for target 'src/ports/postgres/10.0/ >>>> CMakeFiles/madlib_postgresql_10_0.dir/__/__/__/modules/assoc_rules/assoc_rules.cpp.o' >>>> failed >>>> >>>> >>>> I find this odd as I used the same version of g++ to build the same >>>> version of MADlib (1.12) on Postgres 9.5 >>>> I've not worked in C++ for many years... would it be safe to set >>>> -fpermissive? How would I do that with MADlib's build scripts? I >>>> tried ./configure CXXFLAGS="-fpermissive" but it doesn't seem to do >>>> anything. >>>> >>>> Many thanks. >>>> >>>> -- >>>> Mauricio >>>> >>>