madlib-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rahul Iyer <ri...@apache.org>
Subject Re: Issues compiling MADlib 1.12 for Postgres 10
Date Thu, 16 Aug 2018 17:38:05 GMT
+ 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 <okislal@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 <
> mauricioscheffer@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
>>
>

Mime
View raw message