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

#include <query_retry_on_ro.h>

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

Public Types

using MysqlCacheManager = collector::MysqlCacheManager
 
using CachedSession = MysqlCacheManager::CachedObject
 
- Public Types inherited from mrs::interface::QueryRetry
using FilterObjectGenerator = mrs::database::FilterObjectGenerator
 

Public Member Functions

 QueryRetryOnRO (collector::MysqlCacheManager *cache, CachedSession &session, GtidManager *gtid_manager, FilterObjectGenerator &fog, uint64_t wait_gtid_timeout, bool query_has_gtid_check)
 
void before_query () override
 
mysqlrouter::MySQLSessionget_session () override
 
const FilterObjectGeneratorget_fog () override
 
bool should_retry (const uint64_t affected) const override
 
- Public Member Functions inherited from mrs::interface::QueryRetry
virtual ~QueryRetry ()=default
 

Protected Member Functions

virtual void throw_timeout () const =0
 
virtual void using_ro_connection () const =0
 
virtual void using_rw_connection () const =0
 
virtual void switch_ro_to_rw () const =0
 

Private Member Functions

bool check_gtid (const std::string &gtid)
 

Private Attributes

CachedSessionsession_
 
GtidManagergtid_manager_
 
collector::MysqlCacheManagercache_
 
FilterObjectGeneratorfog_
 
bool is_retry_ {false}
 
bool filter_object_has_asof_ {false}
 
mysqlrouter::sqlstring gtid_
 
uint64_t wait_gtid_timeout_
 
bool query_has_gtid_check_
 

Member Typedef Documentation

◆ CachedSession

◆ MysqlCacheManager

Constructor & Destructor Documentation

◆ QueryRetryOnRO()

mrs::database::QueryRetryOnRO::QueryRetryOnRO ( collector::MysqlCacheManager cache,
CachedSession session,
GtidManager gtid_manager,
FilterObjectGenerator fog,
uint64_t  wait_gtid_timeout,
bool  query_has_gtid_check 
)

Member Function Documentation

◆ before_query()

void mrs::database::QueryRetryOnRO::before_query ( )
overridevirtual

◆ check_gtid()

bool mrs::database::QueryRetryOnRO::check_gtid ( const std::string &  gtid)
private

◆ get_fog()

const FilterObjectGenerator & mrs::database::QueryRetryOnRO::get_fog ( )
overridevirtual

◆ get_session()

mysqlrouter::MySQLSession * mrs::database::QueryRetryOnRO::get_session ( )
overridevirtual

◆ should_retry()

bool mrs::database::QueryRetryOnRO::should_retry ( const uint64_t  affected) const
overridevirtual

◆ switch_ro_to_rw()

virtual void mrs::database::QueryRetryOnRO::switch_ro_to_rw ( ) const
protectedpure virtual

◆ throw_timeout()

virtual void mrs::database::QueryRetryOnRO::throw_timeout ( ) const
protectedpure virtual

◆ using_ro_connection()

virtual void mrs::database::QueryRetryOnRO::using_ro_connection ( ) const
protectedpure virtual

◆ using_rw_connection()

virtual void mrs::database::QueryRetryOnRO::using_rw_connection ( ) const
protectedpure virtual

Member Data Documentation

◆ cache_

collector::MysqlCacheManager* mrs::database::QueryRetryOnRO::cache_
private

◆ filter_object_has_asof_

bool mrs::database::QueryRetryOnRO::filter_object_has_asof_ {false}
private

◆ fog_

FilterObjectGenerator& mrs::database::QueryRetryOnRO::fog_
private

◆ gtid_

mysqlrouter::sqlstring mrs::database::QueryRetryOnRO::gtid_
private

◆ gtid_manager_

GtidManager* mrs::database::QueryRetryOnRO::gtid_manager_
private

◆ is_retry_

bool mrs::database::QueryRetryOnRO::is_retry_ {false}
mutableprivate

◆ query_has_gtid_check_

bool mrs::database::QueryRetryOnRO::query_has_gtid_check_
private

◆ session_

CachedSession& mrs::database::QueryRetryOnRO::session_
private

◆ wait_gtid_timeout_

uint64_t mrs::database::QueryRetryOnRO::wait_gtid_timeout_
private

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