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 >