You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by st...@apache.org on 2023/02/22 07:39:04 UTC

[impala] 04/04: IMPALA-11869: Use to_string() in PrintValue for printing Thrift types

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

stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 88a7538af79afc19233cdfe3220e3c25e7edd16d
Author: Daniel Becker <da...@cloudera.com>
AuthorDate: Thu Feb 9 14:25:31 2023 +0100

    IMPALA-11869: Use to_string() in PrintValue for printing Thrift types
    
    IMPALA-11645 introduced the function PrintValue() which we use to
    convert Thrift types to strings. This function used operator<<,
    which is provided for the generated Thrift types. However, Thrift also
    generates a to_string() function that is overloaded for Thrift types. It
    would be more efficient to use this instead of involving streams with
    operator<<.
    
    This change reimplements PrintValue() using to_string() instead of
    operator<<.
    
    Change-Id: Ibc5b847dea2bdea7ba0ab8e093a8bab5a8145019
    Reviewed-on: http://gerrit.cloudera.org:8080/19487
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/src/util/debug-util.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/be/src/util/debug-util.h b/be/src/util/debug-util.h
index 51b73d979..66fa8e7ff 100644
--- a/be/src/util/debug-util.h
+++ b/be/src/util/debug-util.h
@@ -51,12 +51,11 @@ class TupleRow;
 // Forward declaration to avoid including descriptors.h.
 typedef std::vector<int> SchemaPath;
 
-// Converts a value for which operator<< is defined to a std::string.
+// Used to convert Thrift objects to strings. Thrift defines a 'to_string()' function for
+// each type.
 template<class T>
 std::string PrintValue(const T& value) {
-  std::stringstream s;
-  s << value;
-  return s.str();
+  return to_string(value);
 }
 
 std::string PrintTuple(const Tuple* t, const TupleDescriptor& d);