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

#include <json_template_unnest.h>

Inheritance diagram for mrs::json::JsonTemplateUnnest:
[legend]

Public Types

using JsonSerializer = helper::json::SerializerToText
 
using ResultRow = mysqlrouter::MySQLSession::ResultRow
 
- Public Types inherited from mrs::database::JsonTemplate
using ResultRow = mysqlrouter::MySQLSession::ResultRow
 
using CustomMetadata = std::map< std::string, std::string >
 

Public Member Functions

 JsonTemplateUnnest (bool encode_bigints_as_string=false)
 
void begin_resultset (const std::string &url, const std::string &items_name, const std::vector< helper::Column > &columns) override
 
void begin_resultset_with_limits (uint64_t offset, uint64_t limit, bool is_default_limit, const std::string &url, const std::vector< helper::Column > &columns) override
 
bool push_json_document (const char *document) override
 
bool push_row (const ResultRow &values, const char *ignore_column=nullptr) override
 
void end_resultset (const std::optional< bool > &has_more={}) override
 
void begin () override
 
void finish (const CustomMetadata &custom_metadata={}) override
 
void flush () override
 
std::string get_result () override
 
- Public Member Functions inherited from mrs::database::JsonTemplate
virtual ~JsonTemplate ()=default
 

Private Member Functions

bool count_check_if_push_is_allowed ()
 

Private Attributes

uint64_t offset_ {0}
 
uint64_t limit_ {25}
 
bool is_default_limit_ {false}
 
bool limit_not_set_ {false}
 
std::string url_
 
bool full_stop_ {false}
 
JsonSerializer serializer_
 
JsonSerializer::Object json_root_
 
JsonSerializer::Array json_root_items_
 
bool has_more_ {false}
 
uint64_t pushed_documents_ {0}
 
bool began_ {false}
 
std::vector< helper::Columncolumns_
 
bool encode_bigints_as_string_
 

Additional Inherited Members

- Static Protected Member Functions inherited from mrs::database::JsonTemplate
static bool should_encode_numeric_as_string (enum_field_types field_type)
 

Member Typedef Documentation

◆ JsonSerializer

◆ ResultRow

Constructor & Destructor Documentation

◆ JsonTemplateUnnest()

mrs::json::JsonTemplateUnnest::JsonTemplateUnnest ( bool  encode_bigints_as_string = false)
explicit

Member Function Documentation

◆ begin()

void mrs::json::JsonTemplateUnnest::begin ( )
overridevirtual

◆ begin_resultset()

void mrs::json::JsonTemplateUnnest::begin_resultset ( const std::string &  url,
const std::string &  items_name,
const std::vector< helper::Column > &  columns 
)
overridevirtual

◆ begin_resultset_with_limits()

void mrs::json::JsonTemplateUnnest::begin_resultset_with_limits ( uint64_t  offset,
uint64_t  limit,
bool  is_default_limit,
const std::string &  url,
const std::vector< helper::Column > &  columns 
)
overridevirtual

◆ count_check_if_push_is_allowed()

bool mrs::json::JsonTemplateUnnest::count_check_if_push_is_allowed ( )
private

◆ end_resultset()

void mrs::json::JsonTemplateUnnest::end_resultset ( const std::optional< bool > &  has_more = {})
overridevirtual

◆ finish()

void mrs::json::JsonTemplateUnnest::finish ( const CustomMetadata custom_metadata = {})
overridevirtual

◆ flush()

void mrs::json::JsonTemplateUnnest::flush ( )
overridevirtual

◆ get_result()

std::string mrs::json::JsonTemplateUnnest::get_result ( )
overridevirtual

◆ push_json_document()

bool mrs::json::JsonTemplateUnnest::push_json_document ( const char *  document)
overridevirtual

◆ push_row()

bool mrs::json::JsonTemplateUnnest::push_row ( const ResultRow values,
const char *  ignore_column = nullptr 
)
overridevirtual

Member Data Documentation

◆ began_

bool mrs::json::JsonTemplateUnnest::began_ {false}
private

◆ columns_

std::vector<helper::Column> mrs::json::JsonTemplateUnnest::columns_
private

◆ encode_bigints_as_string_

bool mrs::json::JsonTemplateUnnest::encode_bigints_as_string_
private

◆ full_stop_

bool mrs::json::JsonTemplateUnnest::full_stop_ {false}
private

◆ has_more_

bool mrs::json::JsonTemplateUnnest::has_more_ {false}
private

◆ is_default_limit_

bool mrs::json::JsonTemplateUnnest::is_default_limit_ {false}
private

◆ json_root_

JsonSerializer::Object mrs::json::JsonTemplateUnnest::json_root_
private

◆ json_root_items_

JsonSerializer::Array mrs::json::JsonTemplateUnnest::json_root_items_
private

◆ limit_

uint64_t mrs::json::JsonTemplateUnnest::limit_ {25}
private

◆ limit_not_set_

bool mrs::json::JsonTemplateUnnest::limit_not_set_ {false}
private

◆ offset_

uint64_t mrs::json::JsonTemplateUnnest::offset_ {0}
private

◆ pushed_documents_

uint64_t mrs::json::JsonTemplateUnnest::pushed_documents_ {0}
private

◆ serializer_

JsonSerializer mrs::json::JsonTemplateUnnest::serializer_
private

◆ url_

std::string mrs::json::JsonTemplateUnnest::url_
private

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