#include "src/trace_processor/db/column/arrangement_overlay.h"
#include <algorithm>
#include <cstdint>
#include <memory>
#include <optional>
#include <unordered_set>
#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 {
void ArrangementOverlay::Flatten(uint32_t* start,
const uint32_t* end,
uint32_t stride) { … }
ArrangementOverlay::ChainImpl::ChainImpl(
std::unique_ptr<DataLayerChain> inner,
const std::vector<uint32_t>* arrangement,
Indices::State arrangement_state,
bool does_arrangement_order_storage)
: … { … }
SingleSearchResult ArrangementOverlay::ChainImpl::SingleSearch(
FilterOp op,
SqlValue sql_val,
uint32_t index) const { … }
SearchValidationResult ArrangementOverlay::ChainImpl::ValidateSearchConstraints(
FilterOp op,
SqlValue value) const { … }
RangeOrBitVector ArrangementOverlay::ChainImpl::SearchValidated(
FilterOp op,
SqlValue sql_val,
Range in) const { … }
void ArrangementOverlay::ChainImpl::IndexSearchValidated(
FilterOp op,
SqlValue sql_val,
Indices& indices) const { … }
void ArrangementOverlay::ChainImpl::StableSort(Token* start,
Token* end,
SortDirection direction) const { … }
void ArrangementOverlay::ChainImpl::Distinct(Indices& indices) const { … }
std::optional<Token> ArrangementOverlay::ChainImpl::MaxElement(
Indices& indices) const { … }
std::optional<Token> ArrangementOverlay::ChainImpl::MinElement(
Indices& indices) const { … }
SqlValue ArrangementOverlay::ChainImpl::Get_AvoidUsingBecauseSlow(
uint32_t index) const { … }
}