Skip to content

Commit af0d9cd

Browse files
authored
Decimal and PG support in viewer (#10752)
1 parent 3545be8 commit af0d9cd

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

ydb/core/tablet_flat/flat_executor_db_mon.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,10 @@ class TExecutor::TTxExecutorDbMon : public TTransactionBase<TExecutor> {
128128
str << "<tr>";
129129
for (ui32 column : columns) {
130130
const auto &columnInfo = tableInfo->Columns.find(column)->second;
131-
str << "<th>" << column << ":" << columnInfo.Name << "</th>";
131+
str << "<th>"
132+
<< column << ":" << NScheme::TypeName(columnInfo.PType, columnInfo.PTypeMod)
133+
<< " " << columnInfo.Name
134+
<< "</th>";
132135
}
133136
str << "</tr>";
134137
str << "</thead>";
@@ -229,12 +232,17 @@ class TExecutor::TTxExecutorDbMon : public TTransactionBase<TExecutor> {
229232
str << "(DyNumber) " << number;
230233
break;
231234
}
235+
case NScheme::NTypeIds::Decimal: {
236+
tuple.Types[i].GetDecimalType().CellValueToStream(tuple.Columns[i].AsValue<std::pair<ui64, i64>>(), str);
237+
break;
238+
}
232239
case NScheme::NTypeIds::Pg: {
233-
str << "(Pg) " << NPg::PgTypeNameFromTypeDesc(tuple.Types[i].GetPgTypeDesc());
240+
auto convert = NPg::PgNativeTextFromNativeBinary(tuple.Columns[i].AsBuf(), tuple.Types[i].GetPgTypeDesc());
241+
str << (!convert.Error ? convert.Str : *convert.Error);
234242
break;
235243
}
236244
default:
237-
str << "<i>unknown type " << tuple.Types[i].GetTypeId() << "</i>";
245+
str << "<i>unknown type " << NScheme::TypeName(tuple.Types[i]) << "</i>";
238246
break;
239247
}
240248
}

ydb/core/viewer/viewer_tabletinfo.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22
#include "json_wb_req.h"
3+
#include <ydb/core/scheme/scheme_types_proto.h>
34
#include <ydb/core/util/wildcard.h>
45

56
namespace NKikimr::NViewer {
@@ -173,7 +174,15 @@ class TJsonTabletInfo : public TJsonWhiteboardRequest<TEvWhiteboard::TEvTabletSt
173174
return IsBase64Encode ? Base64Encode(cell.AsBuf()) : (TStringBuilder() << '"' << cell.AsBuf() << '"');
174175
case NScheme::NTypeIds::Utf8:
175176
return TStringBuilder() << '"' << cell.AsBuf() << '"';
176-
case NScheme::NTypeIds::Decimal: return "Decimal";
177+
case NScheme::NTypeIds::Decimal: {
178+
NScheme::TTypeInfo typeInfo = NKikimr::NScheme::TypeInfoFromProto(type.GetTypeId(), type.GetTypeInfo());
179+
return typeInfo.GetDecimalType().CellValueToString(cell.AsValue<std::pair<ui64, i64>>());
180+
}
181+
case NScheme::NTypeIds::Pg: {
182+
NScheme::TTypeInfo typeInfo = NKikimr::NScheme::TypeInfoFromProto(type.GetTypeId(), type.GetTypeInfo());
183+
auto convert = NPg::PgNativeTextFromNativeBinary(cell.AsBuf(),typeInfo.GetPgTypeDesc());
184+
return !convert.Error ? convert.Str : *convert.Error;
185+
}
177186
case NScheme::NTypeIds::DyNumber: return "DyNumber";
178187
case NScheme::NTypeIds::Uuid: return "Uuid";
179188
default:

0 commit comments

Comments
 (0)