diff --git a/velox/core/Expressions.cpp b/velox/core/Expressions.cpp index 1a44ff43ecb6..e0eefe0d4af3 100644 --- a/velox/core/Expressions.cpp +++ b/velox/core/Expressions.cpp @@ -83,9 +83,7 @@ folly::dynamic ConstantTypedExpr::serialize() const { if (valueVector_) { std::ostringstream out; saveVector(*valueVector_, out); - auto serializedValue = out.str(); - obj["valueVector"] = encoding::Base64::encode( - serializedValue.data(), serializedValue.size()); + obj["valueVector"] = encoding::Base64::encode(std::string_view(out.str())); } else { obj["value"] = value_.serialize(); } @@ -105,7 +103,7 @@ TypedExprPtr ConstantTypedExpr::create( } auto encodedData = obj["valueVector"].asString(); - auto serializedData = encoding::Base64::decode(encodedData); + auto serializedData = encoding::Base64::decode(std::string_view(encodedData)); std::istringstream dataStream(serializedData); auto* pool = static_cast(context); diff --git a/velox/exec/fuzzer/PrestoQueryRunner.cpp b/velox/exec/fuzzer/PrestoQueryRunner.cpp index 4aa20ca8c4a9..141bd0dbefbf 100644 --- a/velox/exec/fuzzer/PrestoQueryRunner.cpp +++ b/velox/exec/fuzzer/PrestoQueryRunner.cpp @@ -129,10 +129,10 @@ class ServerResponse { // contains base64-encoded PrestoPage of results. std::vector vectors; - for (auto& encodedData : response_["binaryData"]) { - const std::string data = - encoding::Base64::decode(encodedData.stringPiece()); - vectors.push_back(deserialize(rowType, data, pool)); + for (const auto& encodedData : response_["binaryData"]) { + const std::string decodedData = + encoding::Base64::decode(std::string_view(encodedData.stringPiece())); + vectors.push_back(deserialize(rowType, decodedData, pool)); } return vectors; }