chromium/third_party/perfetto/src/trace_processor/db/runtime_table.cc

/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "src/trace_processor/db/runtime_table.h"

#include <algorithm>
#include <cinttypes>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <memory>
#include <optional>
#include <string>
#include <utility>
#include <variant>
#include <vector>

#include "perfetto/base/logging.h"
#include "perfetto/base/status.h"
#include "perfetto/ext/base/status_or.h"
#include "perfetto/trace_processor/basic_types.h"
#include "perfetto/trace_processor/ref_counted.h"
#include "src/trace_processor/containers/bit_vector.h"
#include "src/trace_processor/containers/string_pool.h"
#include "src/trace_processor/db/column.h"
#include "src/trace_processor/db/column/data_layer.h"
#include "src/trace_processor/db/column/id_storage.h"
#include "src/trace_processor/db/column/null_overlay.h"
#include "src/trace_processor/db/column/numeric_storage.h"
#include "src/trace_processor/db/column/overlay_layer.h"
#include "src/trace_processor/db/column/selector_overlay.h"
#include "src/trace_processor/db/column/storage_layer.h"
#include "src/trace_processor/db/column/string_storage.h"
#include "src/trace_processor/db/column/types.h"
#include "src/trace_processor/db/column_storage.h"
#include "src/trace_processor/db/column_storage_overlay.h"

namespace perfetto::trace_processor {
namespace {

template <typename T, typename U>
T Fill(uint32_t leading_nulls, U value) {}

bool IsPerfectlyRepresentableAsDouble(int64_t res) {}

void CreateNonNullableIntsColumn(
    uint32_t col_idx,
    const char* col_name,
    ColumnStorage<int64_t>* ints_storage,
    std::vector<RefPtr<column::StorageLayer>>& storage_layers,
    std::vector<RefPtr<column::OverlayLayer>>& overlay_layers,
    std::vector<ColumnLegacy>& legacy_columns,
    std::vector<ColumnStorageOverlay>& legacy_overlays) {}

}  // namespace

RuntimeTable::RuntimeTable(
    StringPool* pool,
    uint32_t row_count,
    std::vector<ColumnLegacy> columns,
    std::vector<ColumnStorageOverlay> overlays,
    std::vector<RefPtr<column::StorageLayer>> storage_layers,
    std::vector<RefPtr<column::OverlayLayer>> null_layers,
    std::vector<RefPtr<column::OverlayLayer>> overlay_layers)
    :{}

RuntimeTable::~RuntimeTable() = default;

RuntimeTable::Builder::Builder(StringPool* pool,
                               const std::vector<std::string>& col_names)
    :{}

RuntimeTable::Builder::Builder(StringPool* pool,
                               const std::vector<std::string>& col_names,
                               const std::vector<BuilderColumnType>& col_types)
    :{}

base::Status RuntimeTable::Builder::AddNull(uint32_t idx) {}

base::Status RuntimeTable::Builder::AddInteger(uint32_t idx, int64_t res) {}

base::Status RuntimeTable::Builder::AddFloat(uint32_t idx, double res) {}

base::Status RuntimeTable::Builder::AddText(uint32_t idx, const char* ptr) {}

base::Status RuntimeTable::Builder::AddIntegers(uint32_t idx,
                                                int64_t res,
                                                uint32_t count) {}

base::Status RuntimeTable::Builder::AddFloats(uint32_t idx,
                                              double res,
                                              uint32_t count) {}

base::Status RuntimeTable::Builder::AddTexts(uint32_t idx,
                                             const char* ptr,
                                             uint32_t count) {}

base::Status RuntimeTable::Builder::AddNulls(uint32_t idx, uint32_t count) {}

void RuntimeTable::Builder::AddNonNullIntegersUnchecked(
    uint32_t idx,
    const std::vector<int64_t>& res) {}

base::StatusOr<std::unique_ptr<RuntimeTable>> RuntimeTable::Builder::Build(
    uint32_t rows) && {}

}  // namespace perfetto::trace_processor