You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by we...@apache.org on 2016/07/10 19:37:22 UTC

parquet-cpp git commit: PARQUET-659: Export extern templates for typed column reader/writer classes

Repository: parquet-cpp
Updated Branches:
  refs/heads/master ca3e697e7 -> 9930b546e


PARQUET-659: Export extern templates for typed column reader/writer classes

While we've already force-instantiated these template classes, they were not visible across the board. gcc on Linux has no problem with it, but found that the Arrow OS X builds were core dumping (with a misleading error message) because of it. The test suites pass locally for me now.

Author: Wes McKinney <we...@apache.org>

Closes #137 from wesm/PARQUET-659 and squashes the following commits:

74907dc [Wes McKinney] Export extern templates for typed column reader/writer classes


Project: http://git-wip-us.apache.org/repos/asf/parquet-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/parquet-cpp/commit/9930b546
Tree: http://git-wip-us.apache.org/repos/asf/parquet-cpp/tree/9930b546
Diff: http://git-wip-us.apache.org/repos/asf/parquet-cpp/diff/9930b546

Branch: refs/heads/master
Commit: 9930b546ecd52673903b442ca57d89dd4786a59a
Parents: ca3e697
Author: Wes McKinney <we...@apache.org>
Authored: Sun Jul 10 12:37:17 2016 -0700
Committer: Wes McKinney <we...@apache.org>
Committed: Sun Jul 10 12:37:17 2016 -0700

----------------------------------------------------------------------
 CMakeLists.txt              | 7 +++----
 src/parquet/column/reader.h | 9 +++++++++
 src/parquet/column/writer.h | 9 +++++++++
 3 files changed, 21 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/9930b546/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7d7fa44..5b594a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -505,7 +505,9 @@ add_library(parquet_objlib OBJECT
 
 set_property(TARGET parquet_objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
 
-if(NOT APPLE)
+if(APPLE)
+  set(SHARED_LINK_FLAGS "-undefined dynamic_lookup")
+elseif()
   # Localize thirdparty symbols using a linker version script. This hides them
   # from the client application. The OS X linker does not support the
   # version-script option.
@@ -514,9 +516,6 @@ endif()
 
 if (PARQUET_BUILD_SHARED)
     add_library(parquet_shared SHARED $<TARGET_OBJECTS:parquet_objlib>)
-    if(APPLE)
-        set_target_properties(parquet_shared PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
-    endif()
     set_target_properties(parquet_shared
       PROPERTIES
       LIBRARY_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}"

http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/9930b546/src/parquet/column/reader.h
----------------------------------------------------------------------
diff --git a/src/parquet/column/reader.h b/src/parquet/column/reader.h
index 04f517c..5153698 100644
--- a/src/parquet/column/reader.h
+++ b/src/parquet/column/reader.h
@@ -207,6 +207,15 @@ typedef TypedColumnReader<DoubleType> DoubleReader;
 typedef TypedColumnReader<ByteArrayType> ByteArrayReader;
 typedef TypedColumnReader<FLBAType> FixedLenByteArrayReader;
 
+extern template class PARQUET_EXPORT TypedColumnReader<BooleanType>;
+extern template class PARQUET_EXPORT TypedColumnReader<Int32Type>;
+extern template class PARQUET_EXPORT TypedColumnReader<Int64Type>;
+extern template class PARQUET_EXPORT TypedColumnReader<Int96Type>;
+extern template class PARQUET_EXPORT TypedColumnReader<FloatType>;
+extern template class PARQUET_EXPORT TypedColumnReader<DoubleType>;
+extern template class PARQUET_EXPORT TypedColumnReader<ByteArrayType>;
+extern template class PARQUET_EXPORT TypedColumnReader<FLBAType>;
+
 }  // namespace parquet
 
 #endif  // PARQUET_COLUMN_READER_H

http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/9930b546/src/parquet/column/writer.h
----------------------------------------------------------------------
diff --git a/src/parquet/column/writer.h b/src/parquet/column/writer.h
index 48e2f52..be441b8 100644
--- a/src/parquet/column/writer.h
+++ b/src/parquet/column/writer.h
@@ -191,6 +191,15 @@ typedef TypedColumnWriter<DoubleType> DoubleWriter;
 typedef TypedColumnWriter<ByteArrayType> ByteArrayWriter;
 typedef TypedColumnWriter<FLBAType> FixedLenByteArrayWriter;
 
+extern template class PARQUET_EXPORT TypedColumnWriter<BooleanType>;
+extern template class PARQUET_EXPORT TypedColumnWriter<Int32Type>;
+extern template class PARQUET_EXPORT TypedColumnWriter<Int64Type>;
+extern template class PARQUET_EXPORT TypedColumnWriter<Int96Type>;
+extern template class PARQUET_EXPORT TypedColumnWriter<FloatType>;
+extern template class PARQUET_EXPORT TypedColumnWriter<DoubleType>;
+extern template class PARQUET_EXPORT TypedColumnWriter<ByteArrayType>;
+extern template class PARQUET_EXPORT TypedColumnWriter<FLBAType>;
+
 }  // namespace parquet
 
 #endif  // PARQUET_COLUMN_READER_H