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
|