summaryrefslogtreecommitdiffstats
path: root/contrib/libs/apache/orc/patches/fix_strings.patch
blob: 60c4d78511acf8fdbb67ef32c1339a29553d058d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
--- a/c++/include/orc/Common.hh
+++ b/c++/include/orc/Common.hh
@@ -23,10 +23,14 @@
 #include "orc/Type.hh"
 #include "orc/Vector.hh"

+#include <google/protobuf/message.h>
+
 #include <string>

 namespace orc {

+  using TProtobufString = decltype(std::declval<::google::protobuf::MessageLite>().GetTypeName());
+
   class FileVersion {
    private:
     uint32_t majorVersion;
--- a/c++/src/Reader.cc
+++ b/c++/src/Reader.cc
@@ -566,4 +566,4 @@ namespace orc {
-    std::string result;
+    TProtobufString result;
     if (!tail.SerializeToString(&result)) {
       throw ParseError("Failed to serialize file tail");
     }
--- a/c++/src/sargs/PredicateLeaf.cc
+++ b/c++/src/sargs/PredicateLeaf.cc
@@ -533,5 +533,5 @@ namespace orc {
-  static std::vector<std::string> literal2String(const std::vector<Literal>& values) {
+  static std::vector<TProtobufString> literal2String(const std::vector<Literal>& values) {
-    std::vector<std::string> result;
+    std::vector<TProtobufString> result;
     std::for_each(values.cbegin(), values.cend(), [&](const Literal& val) {
       if (!val.isNull()) {
-        result.emplace_back(val.getString());
+        result.emplace_back(TProtobufString(val.getString()));