Skip to content

Commit 96bcf2e

Browse files
authored
[CDC] Do not lose presition during float/double to json serialization… (#7740)
1 parent 7a54545 commit 96bcf2e

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

ydb/core/tx/datashard/change_record_cdc_serializer.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,16 @@ class TJsonSerializer: public TBaseSerializer {
8585
friend class TChangeRecord; // used in GetPartitionKey()
8686

8787
static NJson::TJsonWriterConfig DefaultJsonConfig() {
88-
NJson::TJsonWriterConfig jsonConfig;
89-
jsonConfig.ValidateUtf8 = false;
90-
jsonConfig.WriteNanAsString = true;
91-
return jsonConfig;
88+
constexpr ui32 doubleNDigits = std::numeric_limits<double>::max_digits10;
89+
constexpr ui32 floatNDigits = std::numeric_limits<float>::max_digits10;
90+
constexpr EFloatToStringMode floatMode = EFloatToStringMode::PREC_NDIGITS;
91+
return NJson::TJsonWriterConfig {
92+
.DoubleNDigits = doubleNDigits,
93+
.FloatNDigits = floatNDigits,
94+
.FloatToStringMode = floatMode,
95+
.ValidateUtf8 = false,
96+
.WriteNanAsString = true,
97+
};
9298
}
9399

94100
protected:

0 commit comments

Comments
 (0)