26#ifndef MYSQLSHDK_LIBS_DB_ROW_BY_NAME_H_
27#define MYSQLSHDK_LIBS_DB_ROW_BY_NAME_H_
48 for (
const auto &col : metadata)
add(col.get_column_label());
61 uint32_t idx =
static_cast<uint32_t
>(
m_fields.size());
68 throw std::invalid_argument(
"invalid field name " +
name);
74 if (f.second ==
index)
return f.first;
84 std::map<std::string, uint32_t, shcore::Case_insensitive_comparator>
m_fields;
93 const IRow *row) noexcept
109 explicit operator bool()
const {
123 bool is_null(
const std::string &field)
const {
148 const std::string &default_if_null)
const {
149 if (
is_null(field))
return default_if_null;
166 const std::wstring &default_if_null)
const {
167 if (
is_null(field))
return default_if_null;
175 int64_t
get_int(
const std::string &field)
const {
183 int64_t
get_int(
const std::string &field, int64_t default_if_null)
const {
184 if (
is_null(field))
return default_if_null;
192 uint64_t
get_uint(
const std::string &field)
const {
200 uint64_t
get_uint(
const std::string &field, uint64_t default_if_null)
const {
201 if (
is_null(field))
return default_if_null;
225 double get_double(
const std::string &field,
double default_if_null)
const {
226 if (
is_null(field))
return default_if_null;
235 const std::string &field)
const {
243 std::tuple<uint64_t, int>
get_bit(
const std::string &field)
const {
269 if (!
_row_ref)
throw std::invalid_argument(
"invalid row reference");
279 std::string msg = e.what();
280 msg.append(
" (").append(field).append(
")");
301 *
this = std::move(o);
304 if (
this == &o)
return *
this;
310 o._row_ref = &o._row_copy;
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
Definition: jit_executor_db_interface.h:82
virtual std::string get_string(uint32_t index) const =0
virtual uint64_t get_uint(uint32_t index) const =0
virtual Type get_type(uint32_t index) const =0
virtual double get_double(uint32_t index) const =0
virtual std::pair< const char *, size_t > get_string_data(uint32_t index) const =0
virtual std::tuple< uint64_t, int > get_bit(uint32_t index) const =0
virtual bool is_null(uint32_t index) const =0
virtual std::wstring get_wstring(uint32_t index) const
Definition: jit_executor_db_interface.cc:33
virtual std::string get_as_string(uint32_t index) const =0
virtual float get_float(uint32_t index) const =0
virtual uint32_t num_fields() const =0
virtual int64_t get_int(uint32_t index) const =0
Definition: row_by_name.h:45
const std::string & field_name(uint32_t index)
Definition: row_by_name.h:72
uint32_t field_index(const std::string &name)
Definition: row_by_name.h:65
bool has_field(const std::string &field) const
Definition: row_by_name.h:79
Field_names(Field_names &&) noexcept=default
std::map< std::string, uint32_t, shcore::Case_insensitive_comparator > m_fields
Definition: row_by_name.h:84
void add(const std::string &name)
Definition: row_by_name.h:58
Field_names & operator=(const Field_names &)=delete
Field_names(const std::vector< Column > &metadata)
Definition: row_by_name.h:47
Field_names(const Field_names &)=delete
Definition: row_by_name.h:285
Row_by_name(const Row_ref_by_name &rrbn)
Definition: row_by_name.h:314
Row_by_name()
Definition: row_by_name.h:287
Row_by_name(Row_by_name &&o) noexcept
Definition: row_by_name.h:300
Row_by_name & operator=(Row_by_name &&o) noexcept
Definition: row_by_name.h:303
Row_by_name(const std::shared_ptr< Field_names > &field_names, Row_copy &&row_copy) noexcept
Definition: row_by_name.h:292
Row_copy _row_copy
Definition: row_by_name.h:319
Row_by_name(const Row_by_name &)=delete
Row_by_name & operator=(const Row_by_name &)=delete
Row_by_name(const std::shared_ptr< Field_names > &field_names, const IRow &row)
Definition: row_by_name.h:289
A self-contained Row object that owns its own storage, as opposed to mysql::Row or mysqlx::Row which ...
Definition: row_copy.h:124
Definition: row_by_name.h:87
int64_t get_int(const std::string &field, int64_t default_if_null) const
Definition: row_by_name.h:183
virtual ~Row_ref_by_name()=default
std::pair< const char *, size_t > get_string_data(const std::string &field) const
Definition: row_by_name.h:234
Row_ref_by_name(const Row_ref_by_name &)=default
std::wstring get_wstring(const std::string &field) const
Definition: row_by_name.h:157
std::shared_ptr< Field_names > field_names() const
Definition: row_by_name.h:266
std::tuple< uint64_t, int > get_bit(const std::string &field) const
Definition: row_by_name.h:243
Row_ref_by_name(Row_ref_by_name &&t) noexcept
Definition: row_by_name.h:98
Row_ref_by_name & operator=(const Row_ref_by_name &)=default
uint64_t get_uint(const std::string &field, uint64_t default_if_null) const
Definition: row_by_name.h:200
std::string get_as_string(const std::string &field) const
Definition: row_by_name.h:131
static bad_field decorate_bad_field(const std::string &field, const bad_field &e)
Definition: row_by_name.h:277
Row_ref_by_name(std::shared_ptr< Field_names > field_names, const IRow *row) noexcept
Definition: row_by_name.h:92
uint32_t field_index(const std::string &field) const
Definition: row_by_name.h:256
const IRow * ref() const
Definition: row_by_name.h:268
std::string get_string(const std::string &field, const std::string &default_if_null) const
Definition: row_by_name.h:147
std::shared_ptr< Field_names > _field_names
Definition: row_by_name.h:274
float get_float(const std::string &field) const
Definition: row_by_name.h:209
const std::string & field_name(uint32_t i) const
Definition: row_by_name.h:261
std::wstring get_wstring(const std::string &field, const std::wstring &default_if_null) const
Definition: row_by_name.h:165
Type get_type(const std::string &field) const
Definition: row_by_name.h:115
std::string get_string(const std::string &field) const
Definition: row_by_name.h:139
Row_ref_by_name & operator=(Row_ref_by_name &&t) noexcept
Definition: row_by_name.h:101
const IRow & operator*() const
Definition: row_by_name.h:107
bool has_field(const std::string &field) const
Definition: row_by_name.h:251
int64_t get_int(const std::string &field) const
Definition: row_by_name.h:175
double get_double(const std::string &field, double default_if_null) const
Definition: row_by_name.h:225
double get_double(const std::string &field) const
Definition: row_by_name.h:217
bool is_null(const std::string &field) const
Definition: row_by_name.h:123
const IRow * _row_ref
Definition: row_by_name.h:275
uint32_t num_fields() const
Definition: row_by_name.h:113
Row_ref_by_name()=default
uint64_t get_uint(const std::string &field) const
Definition: row_by_name.h:192
uint32_t field
Definition: row.h:52
mrs::interface::RestHandler::HttpResult::Type Type
Definition: handler_content_file.cc:42
static std::string to_string(const LEX_STRING &str)
Definition: lex_string.h:50
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:75
Definition: file_system_exceptions.h:34
Definition: gcs_xcom_synode.h:64
static void swap(String &a, String &b) noexcept
Definition: sql_string.h:663
case opt name
Definition: sslopt-case.h:29