aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/result_format/yql_codec_results.cpp
blob: d375131b3da7b203fb8ec547812e129f0ca85dbf (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
#include "yql_codec_results.h"

#include <library/cpp/string_utils/base64/base64.h>

#include <contrib/ydb/library/yql/utils/utf8.h>

namespace NYql {
namespace NResult {

constexpr TStringBuf TYsonResultWriter::VoidString;

void TYsonResultWriter::OnStringScalar(TStringBuf value) {
    if (!IsUtf8(value)) {
        TString encoded = Base64Encode(value);
        Writer.OnBeginList();
        Writer.OnListItem();
        Writer.OnStringScalar(TStringBuf(encoded));
        Writer.OnEndList();
    } else {
        Writer.OnStringScalar(value);
    }
}

}
}