MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
mrs::database::QueryRestTable Class Reference

#include <query_rest_table.h>

Inheritance diagram for mrs::database::QueryRestTable:
[legend]

Classes

struct  Config
 

Public Types

using Object = entry::Object
 
using ObjectField = entry::ObjectField
 
using UserId = entry::AuthUser::UserId
 
using UniversalId = entry::UniversalId
 
using RowGroupOwnership = entry::RowGroupOwnership
 
using RowUserOwnership = entry::RowUserOwnership
 
using ObjectFieldFilter = dv::ObjectFieldFilter
 
using VectorOfRowGroupOwnershp = std::vector< RowGroupOwnership >
 

Public Member Functions

 QueryRestTable (const JsonTemplateFactory *factory=nullptr, bool encode_bigints_as_strings=false, bool include_links=true, uint64_t max_execution_time_ms=0)
 
 QueryRestTable (bool encode_bigints_as_strings, bool include_links, uint64_t max_execution_time_ms=0)
 
virtual void query_entries (MySQLSession *session, std::shared_ptr< database::entry::Object > object, const ObjectFieldFilter &field_filter, const uint64_t offset, const uint64_t limit, const std::string &url, const bool is_default_limit, const ObjectRowOwnership &row_ownership={}, const FilterObjectGenerator &fog={}, const bool compute_etag=false)
 

Public Attributes

std::string response
 
uint64_t items {0}
 

Protected Member Functions

void create_serializer ()
 
void on_row (const ResultRow &r) override
 
void on_metadata (unsigned number, MYSQL_FIELD *fields) override
 
const mysqlrouter::sqlstringbuild_where (const ObjectRowOwnership &row_ownership)
 
const mysqlrouter::sqlstringbuild_where (const RowUserOwnership &row_user, UserId *user_id, const std::vector< RowGroupOwnership > &row_groups, const std::set< UniversalId > &user_groups)
 
void build_query (const ObjectFieldFilter &field_filter, const uint64_t offset, const uint64_t limit, const std::string &url, const ObjectRowOwnership &row_ownership, const FilterObjectGenerator &fog)
 
void extend_where (mysqlrouter::sqlstring &where, const FilterObjectGenerator &fog)
 
- Protected Member Functions inherited from mrs::database::QueryRaw
virtual ~QueryRaw ()=default
 
virtual void execute (MySQLSession *session)
 
virtual void query (MySQLSession *session, const std::string &q)
 
virtual void prepare_and_execute (MySQLSession *session, const std::string &q, std::vector< MYSQL_BIND > pt, const OnResultSetEnd &on_resultset_end)
 
std::unique_ptr< MySQLSession::ResultRowquery_one (MySQLSession *session)
 
std::unique_ptr< MySQLSession::ResultRowquery_one (MySQLSession *session, const std::string &q)
 

Protected Attributes

Config config_
 
std::vector< helper::Columncolumns_
 
std::shared_ptr< database::JsonTemplateserializer_
 
std::shared_ptr< Objectobject_
 
const ObjectFieldFilterfield_filter_ {nullptr}
 
bool compute_etag_ {false}
 
mysqlrouter::sqlstring where_
 
bool metadata_received_ {false}
 
const JsonTemplateFactoryfactory_
 
bool encode_bigints_as_strings_
 
bool include_links_
 
uint64_t max_execution_time_ms_
 
- Protected Attributes inherited from mrs::database::QueryRaw
mysqlrouter::sqlstring query_
 
std::optional< std::string > sqlstate_
 
MYSQL_FIELDmetadata_ {nullptr}
 
unsigned num_of_metadata_ {0}
 

Additional Inherited Members

- Protected Types inherited from mrs::database::QueryRaw
using MySQLSession = mysqlrouter::MySQLSession
 
using Row = MySQLSession::Row
 
using ResultRow = MySQLSession::ResultRow
 
using OnResultSetEnd = MySQLSession::OnResultSetEnd
 

Member Typedef Documentation

◆ Object

◆ ObjectField

using mrs::database::QueryRestTable::ObjectField = entry::ObjectField

◆ ObjectFieldFilter

◆ RowGroupOwnership

using mrs::database::QueryRestTable::RowGroupOwnership = entry::RowGroupOwnership

◆ RowUserOwnership

using mrs::database::QueryRestTable::RowUserOwnership = entry::RowUserOwnership

◆ UniversalId

using mrs::database::QueryRestTable::UniversalId = entry::UniversalId

◆ UserId

using mrs::database::QueryRestTable::UserId = entry::AuthUser::UserId

◆ VectorOfRowGroupOwnershp

Constructor & Destructor Documentation

◆ QueryRestTable() [1/2]

mrs::database::QueryRestTable::QueryRestTable ( const JsonTemplateFactory factory = nullptr,
bool  encode_bigints_as_strings = false,
bool  include_links = true,
uint64_t  max_execution_time_ms = 0 
)
explicit

◆ QueryRestTable() [2/2]

mrs::database::QueryRestTable::QueryRestTable ( bool  encode_bigints_as_strings,
bool  include_links,
uint64_t  max_execution_time_ms = 0 
)
explicit

Member Function Documentation

◆ build_query()

void mrs::database::QueryRestTable::build_query ( const ObjectFieldFilter field_filter,
const uint64_t  offset,
const uint64_t  limit,
const std::string &  url,
const ObjectRowOwnership row_ownership,
const FilterObjectGenerator fog 
)
protected

◆ build_where() [1/2]

const sqlstring & mrs::database::QueryRestTable::build_where ( const ObjectRowOwnership row_ownership)
protected

◆ build_where() [2/2]

const sqlstring & mrs::database::QueryRestTable::build_where ( const RowUserOwnership row_user,
UserId user_id,
const std::vector< RowGroupOwnership > &  row_groups,
const std::set< UniversalId > &  user_groups 
)
protected

◆ create_serializer()

void mrs::database::QueryRestTable::create_serializer ( )
protected

◆ extend_where()

void mrs::database::QueryRestTable::extend_where ( mysqlrouter::sqlstring where,
const FilterObjectGenerator fog 
)
protected

◆ on_metadata()

void mrs::database::QueryRestTable::on_metadata ( unsigned  number,
MYSQL_FIELD fields 
)
overrideprotectedvirtual

Reimplemented from mrs::database::QueryRaw.

◆ on_row()

void mrs::database::QueryRestTable::on_row ( const ResultRow r)
overrideprotectedvirtual

Reimplemented from mrs::database::QueryRaw.

Reimplemented in mrs::database::QueryRestTableSingleRow.

◆ query_entries()

void mrs::database::QueryRestTable::query_entries ( MySQLSession session,
std::shared_ptr< database::entry::Object >  object,
const ObjectFieldFilter field_filter,
const uint64_t  offset,
const uint64_t  limit,
const std::string &  url,
const bool  is_default_limit,
const ObjectRowOwnership row_ownership = {},
const FilterObjectGenerator fog = {},
const bool  compute_etag = false 
)
virtual

Member Data Documentation

◆ columns_

std::vector<helper::Column> mrs::database::QueryRestTable::columns_
protected

◆ compute_etag_

bool mrs::database::QueryRestTable::compute_etag_ {false}
protected

◆ config_

Config mrs::database::QueryRestTable::config_
protected

◆ encode_bigints_as_strings_

bool mrs::database::QueryRestTable::encode_bigints_as_strings_
protected

◆ factory_

const JsonTemplateFactory* mrs::database::QueryRestTable::factory_
protected

◆ field_filter_

const ObjectFieldFilter* mrs::database::QueryRestTable::field_filter_ {nullptr}
protected

◆ include_links_

bool mrs::database::QueryRestTable::include_links_
protected

◆ items

uint64_t mrs::database::QueryRestTable::items {0}

◆ max_execution_time_ms_

uint64_t mrs::database::QueryRestTable::max_execution_time_ms_
protected

◆ metadata_received_

bool mrs::database::QueryRestTable::metadata_received_ {false}
protected

◆ object_

std::shared_ptr<Object> mrs::database::QueryRestTable::object_
protected

◆ response

std::string mrs::database::QueryRestTable::response

◆ serializer_

std::shared_ptr<database::JsonTemplate> mrs::database::QueryRestTable::serializer_
protected

◆ where_

mysqlrouter::sqlstring mrs::database::QueryRestTable::where_
protected

The documentation for this class was generated from the following files: