Skip to content

Commit

Permalink
[CDC] Do not lose presition during float/double to json serialization (
Browse files Browse the repository at this point in the history
  • Loading branch information
dcherednik committed Aug 13, 2024
1 parent e098cea commit 140c94f
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions ydb/core/tx/datashard/change_record_cdc_serializer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,16 @@ class TJsonSerializer: public TBaseSerializer {
friend class TChangeRecord; // used in GetPartitionKey()

static NJson::TJsonWriterConfig DefaultJsonConfig() {
NJson::TJsonWriterConfig jsonConfig;
jsonConfig.ValidateUtf8 = false;
jsonConfig.WriteNanAsString = true;
return jsonConfig;
constexpr ui32 doubleNDigits = std::numeric_limits<double>::max_digits10;
constexpr ui32 floatNDigits = std::numeric_limits<float>::max_digits10;
constexpr EFloatToStringMode floatMode = EFloatToStringMode::PREC_NDIGITS;
return NJson::TJsonWriterConfig {
.DoubleNDigits = doubleNDigits,
.FloatNDigits = floatNDigits,
.FloatToStringMode = floatMode,
.ValidateUtf8 = false,
.WriteNanAsString = true,
};
}

protected:
Expand Down

0 comments on commit 140c94f

Please sign in to comment.