Skip to content

Commit ac738f9

Browse files
authored
Show RuntimeFeatures on portion_stats sys-view (#7673)
1 parent 1a6f195 commit ac738f9

File tree

8 files changed

+25
-13
lines changed

8 files changed

+25
-13
lines changed

ydb/core/kqp/ut/olap/helpers/get_value.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ void PrintValue(IOutputStream& out, const NYdb::TValue& v) {
3636
out << value.GetInt64();
3737
break;
3838
}
39+
case NYdb::EPrimitiveType::Uint8:
40+
{
41+
out << value.GetUint8();
42+
break;
43+
}
3944
case NYdb::EPrimitiveType::Utf8:
4045
{
4146
out << value.GetUtf8();

ydb/core/kqp/ut/olap/helpers/typed_local.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ NKikimr::NKqp::TTypedLocalHelper::TDistribution TTypedLocalHelper::GetDistributi
7979
}
8080

8181
void TTypedLocalHelper::GetVolumes(ui64& rawBytes, ui64& bytes, const bool verbose /*= false*/, const std::vector<TString> columnNames /*= {}*/) {
82-
TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_stats` WHERE Activity = true";
82+
TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_stats` WHERE Activity == 1";
8383
if (columnNames.size()) {
8484
selectQuery += " AND EntityName IN ('" + JoinSeq("','", columnNames) + "')";
8585
}
@@ -144,7 +144,7 @@ void TTypedLocalHelper::FillPKOnly(const double pkKff /*= 0*/, const ui32 numRow
144144
}
145145

146146
void TTypedLocalHelper::GetStats(std::vector<NJson::TJsonValue>& stats, const bool verbose /*= false*/) {
147-
TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_portion_stats` WHERE Activity = true";
147+
TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_portion_stats` WHERE Activity == 1";
148148
auto tableClient = KikimrRunner.GetTableClient();
149149
auto rows = ExecuteScanQuery(tableClient, selectQuery, verbose);
150150
for (auto&& r : rows) {

ydb/core/kqp/ut/olap/sys_view_ut.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ Y_UNIT_TEST_SUITE(KqpOlapSysView) {
453453
SELECT PathId, Kind, TabletId
454454
FROM `/Root/olapStore/.sys/store_primary_index_stats`
455455
WHERE
456-
PathId == UInt64("3") AND Activity = true
456+
PathId == UInt64("3") AND Activity == 1
457457
GROUP BY TabletId, PathId, Kind
458458
ORDER BY TabletId, Kind
459459
)");

ydb/core/sys_view/common/schema.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ struct Schema : NIceDb::Schema {
418418
struct BlobId : Column<10, NScheme::NTypeIds::Utf8> {};
419419
struct BlobRangeOffset : Column<11, NScheme::NTypeIds::Uint64> {};
420420
struct BlobRangeSize : Column<12, NScheme::NTypeIds::Uint64> {};
421-
struct Activity : Column<13, NScheme::NTypeIds::Bool> {};
421+
struct Activity : Column<13, NScheme::NTypeIds::Uint8> {};
422422
struct TierName: Column<14, NScheme::NTypeIds::Utf8> {};
423423
struct EntityType: Column<15, NScheme::NTypeIds::Utf8> {};
424424

@@ -528,9 +528,10 @@ struct Schema : NIceDb::Schema {
528528
struct ColumnBlobBytes: Column<7, NScheme::NTypeIds::Uint64> {};
529529
struct IndexBlobBytes: Column<8, NScheme::NTypeIds::Uint64> {};
530530
struct PortionId: Column<9, NScheme::NTypeIds::Uint64> {};
531-
struct Activity: Column<10, NScheme::NTypeIds::Bool> {};
531+
struct Activity: Column<10, NScheme::NTypeIds::Uint8> {};
532532
struct TierName: Column<11, NScheme::NTypeIds::Utf8> {};
533533
struct Stats: Column<12, NScheme::NTypeIds::Utf8> {};
534+
struct Optimized: Column<13, NScheme::NTypeIds::Uint8> {};
534535

535536
using TKey = TableKey<PathId, TabletId, PortionId>;
536537
using TColumns = TableColumns<
@@ -545,7 +546,8 @@ struct Schema : NIceDb::Schema {
545546
PortionId,
546547
Activity,
547548
TierName,
548-
Stats
549+
Stats,
550+
Optimized
549551
>;
550552
};
551553

ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void TStatsIterator::AppendStats(const std::vector<std::unique_ptr<arrow::ArrayB
7171
}
7272
NArrow::Append<arrow::UInt64Type>(*builders[10], r->BlobRange.Offset);
7373
NArrow::Append<arrow::UInt64Type>(*builders[11], r->BlobRange.Size);
74-
NArrow::Append<arrow::BooleanType>(*builders[12], activity);
74+
NArrow::Append<arrow::UInt8Type>(*builders[12], activity);
7575

7676
NArrow::Append<arrow::StringType>(*builders[13], arrow::util::string_view(lastTierName.data(), lastTierName.size()));
7777
NArrow::Append<arrow::StringType>(*builders[14], ConstantEntityIsColumnView);
@@ -105,7 +105,7 @@ void TStatsIterator::AppendStats(const std::vector<std::unique_ptr<arrow::ArrayB
105105
NArrow::Append<arrow::UInt64Type>(*builders[10], 0);
106106
NArrow::Append<arrow::UInt64Type>(*builders[11], bData->size());
107107
}
108-
NArrow::Append<arrow::BooleanType>(*builders[12], activity);
108+
NArrow::Append<arrow::UInt8Type>(*builders[12], activity);
109109
const auto tierName = portionSchema->GetIndexInfo().GetEntityStorageId(r->GetIndexId(), portion.GetMeta().GetTierName());
110110
std::string strTierName(tierName.data(), tierName.size());
111111
NArrow::Append<arrow::StringType>(*builders[13], strTierName);

ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ void TStatsIterator::AppendStats(const std::vector<std::unique_ptr<arrow::ArrayB
1616
NArrow::Append<arrow::UInt64Type>(*builders[6], portion.GetColumnBlobBytes());
1717
NArrow::Append<arrow::UInt64Type>(*builders[7], portion.GetIndexBlobBytes());
1818
NArrow::Append<arrow::UInt64Type>(*builders[8], portion.GetPortionId());
19-
NArrow::Append<arrow::BooleanType>(*builders[9], !portion.IsRemovedFor(ReadMetadata->GetRequestSnapshot()));
19+
NArrow::Append<arrow::UInt8Type>(*builders[9], !portion.IsRemovedFor(ReadMetadata->GetRequestSnapshot()));
2020

2121
auto tierName = portion.GetTierNameDef(NBlobOperations::TGlobal::DefaultStorageId);
2222
NArrow::Append<arrow::StringType>(*builders[10], arrow::util::string_view(tierName.data(), tierName.size()));
@@ -31,6 +31,8 @@ void TStatsIterator::AppendStats(const std::vector<std::unique_ptr<arrow::ArrayB
3131
}
3232
auto statInfo = statReport.GetStringRobust();
3333
NArrow::Append<arrow::StringType>(*builders[11], arrow::util::string_view(statInfo.data(), statInfo.size()));
34+
35+
NArrow::Append<arrow::UInt8Type>(*builders[12], portion.HasRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized));
3436
}
3537

3638
ui32 TStatsIterator::PredictRecordsCount(const NAbstract::TGranuleMetaView& granule) const {

ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -401,12 +401,15 @@ class TNormalForm {
401401
public:
402402
TNormalForm() = default;
403403

404-
bool Add(const NSsa::TAssign& assign) {
404+
bool Add(const NSsa::TAssign& assign, const TProgramContainer& program) {
405405
std::vector<std::shared_ptr<IRequestNode>> argNodes;
406406
for (auto&& arg : assign.GetArguments()) {
407407
if (arg.IsGenerated()) {
408408
auto it = Nodes.find(arg.GetColumnName());
409-
AFL_VERIFY(it != Nodes.end());
409+
if (it == Nodes.end()) {
410+
AFL_CRIT(NKikimrServices::TX_COLUMNSHARD)("event", "program_arg_is_missing")("program", program.DebugString());
411+
return false;
412+
}
410413
argNodes.emplace_back(it->second);
411414
} else {
412415
argNodes.emplace_back(std::make_shared<TOriginalColumn>(arg.GetColumnName()));
@@ -443,7 +446,7 @@ std::shared_ptr<TDataForIndexesCheckers> TDataForIndexesCheckers::Build(const TP
443446
auto fStep = program.GetSteps().front();
444447
TNormalForm nForm;
445448
for (auto&& s : fStep->GetAssignes()) {
446-
if (!nForm.Add(s)) {
449+
if (!nForm.Add(s, program)) {
447450
return nullptr;
448451
}
449452
}

ydb/core/tx/columnshard/ut_rw/ut_columnshard_read_write.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2436,7 +2436,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
24362436
ui64 numRows = static_cast<arrow::UInt64Array&>(*rows).Value(i);
24372437
ui64 numBytes = static_cast<arrow::UInt64Array&>(*bytes).Value(i);
24382438
ui64 numRawBytes = static_cast<arrow::UInt64Array&>(*rawBytes).Value(i);
2439-
bool activity = static_cast<arrow::BooleanArray&>(*activities).Value(i);
2439+
bool activity = static_cast<arrow::UInt8Array&>(*activities).Value(i);
24402440
if (!activity) {
24412441
continue;
24422442
}

0 commit comments

Comments
 (0)