Github user kaknikhil commented on a diff in the pull request: https://github.com/apache/madlib/pull/319#discussion_r217498702 --- Diff: src/ports/greenplum/dbconnector/dbconnector.hpp --- @@ -32,6 +32,24 @@ extern "C" { #include "Compatibility.hpp" +#if PG_VERSION_NUM >= 90000 + // MADlib aligns the pointers returned by palloc() to 16-byte boundaries + // (see Allocator_impl.hpp). This is done to allow Eigen vectorization (see + // http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization for more + // info). This vectorization has to be explicitly disabled if pointers are + // not 16-byte aligned. + // Further, the pointer realignment invalidates a header that palloc creates + // just prior to the pointer address. Greenplum after commit <> fails due + // to this invalid header. Hence, the pointer realignment (and Eigen + // vectorization) is disabled below for Greenplum 6 and above. + #define DISABLE_POINTER_ALIGNMENT_FOR_GREENPLUM --- End diff -- Do we really need this macro ? We can use the `EIGEN_DONT_VECTORIZE` macro instead.
---