aboutsummaryrefslogtreecommitdiffstats
path: root/ydb/core/sys_view/storage/groups.cpp
blob: dabd46f9dc768872642598d4b221a18c1c02fb5c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "groups.h"
#include "base.h"

namespace NKikimr::NSysView {

template<> void SetField<0>(NKikimrSysView::TGroupKey& key, ui32 value) { key.SetGroupId(value); }

class TGroupsScan : public TStorageScanBase<TGroupsScan, TEvSysView::TEvGetGroupsResponse> {
public:
    using TStorageScanBase::TStorageScanBase;

    static constexpr const char *GetName() { return "TGroupsScan"; }

    TEvSysView::TEvGetGroupsRequest *CreateQuery() {
        auto request = MakeHolder<TEvSysView::TEvGetGroupsRequest>();
        ConvertKeyRange<NKikimrSysView::TEvGetGroupsRequest, ui32>(request->Record, TableRange);
        return request.Release();
    }

    static const TFieldMap& GetFieldMap() {
        using T = Schema::Groups;
        using E = NKikimrSysView::TGroupEntry;
        using K = NKikimrSysView::TGroupKey;
        using V = NKikimrSysView::TGroupInfo;
        static TFieldMap fieldMap{
            {T::GroupId::ColumnId, {E::kKeyFieldNumber, K::kGroupIdFieldNumber}},
            {T::Generation::ColumnId, {E::kInfoFieldNumber, V::kGenerationFieldNumber}},
            {T::ErasureSpecies::ColumnId, {E::kInfoFieldNumber, V::kErasureSpeciesV2FieldNumber}},
            {T::BoxId::ColumnId, {E::kInfoFieldNumber, V::kBoxIdFieldNumber}},
            {T::StoragePoolId::ColumnId, {E::kInfoFieldNumber, V::kStoragePoolIdFieldNumber}},
            {T::EncryptionMode::ColumnId, {E::kInfoFieldNumber, V::kEncryptionModeFieldNumber}},
            {T::LifeCyclePhase::ColumnId, {E::kInfoFieldNumber, V::kLifeCyclePhaseFieldNumber}},
            {T::AllocatedSize::ColumnId, {E::kInfoFieldNumber, V::kAllocatedSizeFieldNumber}},
            {T::AvailableSize::ColumnId, {E::kInfoFieldNumber, V::kAvailableSizeFieldNumber}},
            {T::SeenOperational::ColumnId, {E::kInfoFieldNumber, V::kSeenOperationalFieldNumber}},
            {T::PutTabletLogLatency::ColumnId, {E::kInfoFieldNumber, V::kPutTabletLogLatencyFieldNumber}},
            {T::PutUserDataLatency::ColumnId, {E::kInfoFieldNumber, V::kPutUserDataLatencyFieldNumber}},
            {T::GetFastLatency::ColumnId, {E::kInfoFieldNumber, V::kGetFastLatencyFieldNumber}},
        };
        return fieldMap;
    }

};
THolder<IActor> CreateGroupsScan(const TActorId& ownerId, ui32 scanId, const TTableId& tableId,
    const TTableRange& tableRange, const TArrayRef<NMiniKQL::TKqpComputeContextBase::TColumn>& columns)
{
    return MakeHolder<TGroupsScan>(ownerId, scanId, tableId, tableRange, columns);
}

} // NKikimr::NSysView