This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/orc.git


The following commit(s) were added to refs/heads/branch-2.2 by this push:
     new 33dab2985 ORC-1974: [C++] Use `google::protobuf::TextFormat` instead 
of `DebugString` for `Protobuf` v30+
33dab2985 is described below

commit 33dab29859c95e4d27fb940e135afbfe295e6a6b
Author: Dongjoon Hyun <dongj...@apache.org>
AuthorDate: Fri Aug 15 13:51:46 2025 -0700

    ORC-1974: [C++] Use `google::protobuf::TextFormat` instead of `DebugString` 
for `Protobuf` v30+
    
    ### What changes were proposed in this pull request?
    
    This PR aims to use `google::protobuf::TextFormat` instead of `DebugString` 
for Protobuf v30+.
    
    - https://github.com/protocolbuffers/protobuf/releases/tag/v30.0
    
        > Make DebugString print debug output, enable debug markers for debug 
output
    
    ### Why are the changes needed?
    
    Otherwise, our C++ `orc-metadata` tool will have a regression to expose the 
debug marker string, `goo.gle/debugstr`.
    
    There was a related report here.
    - https://github.com/apache/orc/issues/2239
    
    ### How was this patch tested?
    
    Pass the CIs.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    No.
    
    Closes #2358 from dongjoon-hyun/ORC-1974.
    
    Authored-by: Dongjoon Hyun <dongj...@apache.org>
    Signed-off-by: Dongjoon Hyun <dongj...@apache.org>
    (cherry picked from commit ddc0258188968b3e34644a00304528be00fc9099)
    Signed-off-by: Dongjoon Hyun <dongj...@apache.org>
---
 tools/src/FileMetadata.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/src/FileMetadata.cc b/tools/src/FileMetadata.cc
index 94b4a678d..afc46edfe 100644
--- a/tools/src/FileMetadata.cc
+++ b/tools/src/FileMetadata.cc
@@ -28,6 +28,7 @@
 
 // #include "Adaptor.hh"
 #include "wrap/orc-proto-wrapper.hh"
+#include <google/protobuf/text_format.h>
 
 void printStripeInformation(std::ostream& out, uint64_t index, uint64_t 
columns,
                             std::unique_ptr<orc::StripeInformation> stripe, 
bool verbose) {
@@ -82,7 +83,10 @@ void printRawTail(std::ostream& out, const char* filename) {
   if (!tail.ParseFromString(reader->getSerializedFileTail())) {
     throw orc::ParseError("Failed to parse the file tail from string");
   }
-  out << tail.DebugString();
+  google::protobuf::TextFormat::Printer printer;
+  std::string text_output;
+  printer.PrintToString(tail, &text_output);
+  out << text_output;
 }
 
 void printAttributes(std::ostream& out, const orc::Type& type, const 
std::string& name,

Reply via email to