20#include "ignite/client/sql/column_metadata.h"
23#include <unordered_map>
31class result_set_metadata {
34 result_set_metadata() =
default;
42 : m_columns(std::move(
columns)) {}
49 [[nodiscard]]
const std::vector<column_metadata> &
columns()
const {
return m_columns; }
58 [[nodiscard]] std::int32_t
index_of(
const std::string &name)
const {
59 if (m_indices.empty()) {
60 for (
size_t i = 0; i < m_columns.size(); ++i) {
61 m_indices[m_columns[i].name()] = i;
65 auto it = m_indices.find(name);
66 if (it == m_indices.end())
68 return std::int32_t(it->second);
73 std::vector<column_metadata> m_columns;
76 mutable std::unordered_map<std::string, size_t> m_indices;