blob: 8f3b95c8d5855d6b003926cea6f5d14a55e9970b (
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
|
#include "mkql_external_node_invalidator.h"
#include <yql/essentials/public/udf/udf_value.h>
#include <set>
namespace NKikimr::NMiniKQL {
TComputationExternalNodeInvalidator::TComputationExternalNodeInvalidator(std::span<const IComputationExternalNode* const> nodes) {
std::set<ui32> merged;
for (const IComputationExternalNode* const node : nodes) {
node->CollectInvalidationIndexes(merged);
}
MergedIndexes_.assign(merged.begin(), merged.end());
}
TComputationExternalNodeInvalidator::TComputationExternalNodeInvalidator() = default;
void TComputationExternalNodeInvalidator::InvalidateMutables(TComputationContext& compCtx) const {
for (ui32 index : MergedIndexes_) {
compCtx.MutableValues[index] = NUdf::TUnboxedValuePod::Invalid();
}
}
} // namespace NKikimr::NMiniKQL
|