adjust / parquet_fdw

Parquet foreign data wrapper for PostgreSQL
PostgreSQL License
333 stars 37 forks source link

Failing to build from Master branch on PG12 #13

Closed luss closed 1 year ago

luss commented 4 years ago

I updated to latest arrow-devel (0.15) and parquet-devel as per instructions for CentOS 7. I get the below when try to compile from a clone of master branch tonight. I wanted to tray your 0.14 branch, but, I couldn't figure out how to downgrade arrow-devel on my build server.

In file included from parquet_impl.cpp:8: In file included from /usr/include/arrow/api.h:23: In file included from /usr/include/arrow/array.h:20: In file included from /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/cstdint:35: /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

error This file requires compiler and library support \

^ In file included from parquet_impl.cpp:8: In file included from /usr/include/arrow/api.h:23: In file included from /usr/include/arrow/array.h:28: In file included from /usr/include/arrow/buffer.h:28: In file included from /usr/include/arrow/memory_pool.h:26: In file included from /usr/include/arrow/status.h:25: /usr/include/arrow/util/string_builder.h:42:8: error: no template named 'unique_ptr' in namespace 'std' std::uniqueptr sstream;


/usr/include/arrow/util/string_builder.h:55:39: error: no member named 'forward' in namespace 'std'
  StringBuilderRecursive(stream, std::forward<Head>(head));
                                 ~~~~~^
/usr/include/arrow/util/string_builder.h:55:47: error: 'Head' does not refer to a value
  StringBuilderRecursive(stream, std::forward<Head>(head));
                                              ^
/usr/include/arrow/util/string_builder.h:53:20: note: declared here
template <typename Head, typename... Tail>
                   ^
/usr/include/arrow/util/string_builder.h:56:39: error: no member named 'forward' in namespace 'std'
  StringBuilderRecursive(stream, std::forward<Tail>(tail)...);
                                 ~~~~~^
/usr/include/arrow/util/string_builder.h:56:47: error: 'Tail' does not refer to a value
  StringBuilderRecursive(stream, std::forward<Tail>(tail)...);
                                              ^
/usr/include/arrow/util/string_builder.h:53:38: note: declared here
template <typename Head, typename... Tail>
                                     ^
/usr/include/arrow/util/string_builder.h:62:44: error: no member named 'forward' in namespace 'std'
  StringBuilderRecursive(ss.stream(), std::forward<Args>(args)...);
                                      ~~~~~^
/usr/include/arrow/util/string_builder.h:62:52: error: 'Args' does not refer to a value
  StringBuilderRecursive(ss.stream(), std::forward<Args>(args)...);
                                                   ^
/usr/include/arrow/util/string_builder.h:59:23: note: declared here
template <typename... Args>
                      ^
In file included from parquet_impl.cpp:8:
In file included from /usr/include/arrow/api.h:23:
In file included from /usr/include/arrow/array.h:28:
In file included from /usr/include/arrow/buffer.h:28:
In file included from /usr/include/arrow/memory_pool.h:26:
/usr/include/arrow/status.h:77:12: error: ISO C++ forbids forward references to 'enum' types
enum class StatusCode : char {
           ^
/usr/include/arrow/status.h:77:23: error: expected unqualified-id
enum class StatusCode : char {
                      ^
/usr/include/arrow/status.h:126:11: error: expected ';' at end of declaration list
  Status() noexcept : state_(NULLPTR) {}
          ^
/usr/include/arrow/status.h:137:49: error: no template named 'shared_ptr' in namespace 'std'
  Status(StatusCode code, std::string msg, std::shared_ptr<StatusDetail> detail);
                                           ~~~~~^
/usr/include/arrow/status.h:144:28: error: expected ';' at end of declaration list
  inline Status(Status&& s) noexcept;
                           ^
/usr/include/arrow/status.h:145:39: error: expected ';' at end of declaration list
  inline Status& operator=(Status&& s) noexcept;
                                      ^
/usr/include/arrow/status.h:148:49: error: expected ';' at end of declaration list
  inline Status operator&(const Status& s) const noexcept;
                                                ^
/usr/include/arrow/status.h:149:44: error: expected ';' at end of declaration list
  inline Status operator&(Status&& s) const noexcept;
                                           ^
/usr/include/arrow/status.h:150:45: error: expected ';' at end of declaration list
  inline Status& operator&=(const Status& s) noexcept;
                                            ^
/usr/include/arrow/status.h:151:40: error: expected ';' at end of declaration list
  inline Status& operator&=(Status&& s) noexcept;
                                       ^
/usr/include/arrow/status.h:309:8: error: no template named 'shared_ptr' in namespace 'std'
  std::shared_ptr<StatusDetail> detail() const {
  ~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [parquet.bc] Error 1
Goodbye!
zilder commented 4 years ago

Hi @luss,

that may be because of some environment variables rewrite -std=c++11 option. I rearranged the order of compiler options in Makefile in cxxflags branch. Can you please check if it works for you?

luss commented 4 years ago

thanks. I'll check soon.