#include "src/trace_processor/db/column/range_overlay.h"
#include <cstdint>
#include <memory>
#include <optional>
#include <utility>
#include <vector>
#include "perfetto/base/logging.h"
#include "perfetto/trace_processor/basic_types.h"
#include "src/trace_processor/containers/bit_vector.h"
#include "src/trace_processor/db/column/data_layer.h"
#include "src/trace_processor/db/column/types.h"
#include "src/trace_processor/tp_metatrace.h"
#include "protos/perfetto/trace_processor/metatrace_categories.pbzero.h"
namespace perfetto::trace_processor::column {
namespace {
void AddOffsetToTokenIndex(std::vector<Token>& tokens, uint32_t offset) { … }
}
void RangeOverlay::Flatten(uint32_t* start,
const uint32_t* end,
uint32_t stride) { … }
RangeOverlay::ChainImpl::ChainImpl(std::unique_ptr<DataLayerChain> inner,
const Range* range)
: … { … }
SingleSearchResult RangeOverlay::ChainImpl::SingleSearch(FilterOp op,
SqlValue sql_val,
uint32_t i) const { … }
SearchValidationResult RangeOverlay::ChainImpl::ValidateSearchConstraints(
FilterOp op,
SqlValue sql_val) const { … }
RangeOrBitVector RangeOverlay::ChainImpl::SearchValidated(
FilterOp op,
SqlValue sql_val,
Range search_range) const { … }
void RangeOverlay::ChainImpl::IndexSearchValidated(FilterOp op,
SqlValue sql_val,
Indices& indices) const { … }
void RangeOverlay::ChainImpl::StableSort(Token* start,
Token* end,
SortDirection direction) const { … }
void RangeOverlay::ChainImpl::Distinct(Indices& indices) const { … }
std::optional<Token> RangeOverlay::ChainImpl::MaxElement(
Indices& indices) const { … }
std::optional<Token> RangeOverlay::ChainImpl::MinElement(
Indices& indices) const { … }
SqlValue RangeOverlay::ChainImpl::Get_AvoidUsingBecauseSlow(
uint32_t index) const { … }
}