@@ -662,20 +662,24 @@ class TxPlanSerializer {
662662 for (const auto & keyPartRange : scanRangeDescr) {
663663 TStringBuilder rangeDescr;
664664
665+ auto removeForbiddenChars = [](std::string s) -> std::string {
666+ return IsUtf (s)? s: " " ;
667+ }; /* remove chars, that break json plan */
668+
665669 if (keyPartRange.From == keyPartRange.To ) {
666670 if (keyPartRange.From .Empty ()) {
667671 rangeDescr << keyPartRange.ColumnName << " (-∞, +∞)" ;
668672 readInfo.ScanBy .push_back (rangeDescr);
669673 } else {
670674 rangeDescr << keyPartRange.ColumnName
671- << " (" << keyPartRange.From << " )" ;
675+ << " (" << removeForbiddenChars ( keyPartRange.From ) << " )" ;
672676 readInfo.LookupBy .push_back (rangeDescr);
673677 }
674678 } else {
675679 rangeDescr << keyPartRange.ColumnName << " "
676680 << (keyPartRange.From .Empty () ? " (" : leftParen)
677- << (keyPartRange.From .Empty () ? " -∞" : keyPartRange.From ) << " , "
678- << (keyPartRange.To .Empty () ? " +∞" : keyPartRange.To )
681+ << (keyPartRange.From .Empty () ? " -∞" : removeForbiddenChars ( keyPartRange.From ) ) << " , "
682+ << (keyPartRange.To .Empty () ? " +∞" : removeForbiddenChars ( keyPartRange.To ) )
679683 << (keyPartRange.To .Empty () ? " )" : rightParen);
680684 readInfo.ScanBy .push_back (rangeDescr);
681685 hasRangeScans = true ;
@@ -1926,6 +1930,11 @@ void WriteCommonTablesInfo(NJsonWriter::TBuf& writer, TMap<TString, TTableInfo>&
19261930 });
19271931 }
19281932
1933+ // const auto convertBase64IfNeeded = [](TString s) -> TString {
1934+
1935+ // return s;
1936+ // };
1937+
19291938 writer.BeginList ();
19301939
19311940 for (auto & pair : tables) {
0 commit comments