MXS-1506: Use mxs::Buffer for current query
The mxs::Buffer class already implemented most of the code that was in the RWSplitSession class.
This commit is contained in:
@ -37,8 +37,7 @@ RWSplitSession::RWSplitSession(RWSplit* instance, MXS_SESSION* session,
|
|||||||
m_wait_gtid_state(EXPECTING_NOTHING),
|
m_wait_gtid_state(EXPECTING_NOTHING),
|
||||||
m_next_seq(0),
|
m_next_seq(0),
|
||||||
m_qc(this, session, instance->config().use_sql_variables_in),
|
m_qc(this, session, instance->config().use_sql_variables_in),
|
||||||
m_retry_duration(0),
|
m_retry_duration(0)
|
||||||
m_current_query(NULL)
|
|
||||||
{
|
{
|
||||||
if (m_config.rw_max_slave_conn_percent)
|
if (m_config.rw_max_slave_conn_percent)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <maxscale/buffer.hh>
|
||||||
#include <maxscale/modutil.h>
|
#include <maxscale/modutil.h>
|
||||||
#include <maxscale/queryclassifier.hh>
|
#include <maxscale/queryclassifier.hh>
|
||||||
|
|
||||||
@ -127,7 +128,7 @@ public:
|
|||||||
uint32_t m_next_seq; /**< Next packet's sequence number */
|
uint32_t m_next_seq; /**< Next packet's sequence number */
|
||||||
mxs::QueryClassifier m_qc; /**< The query classifier. */
|
mxs::QueryClassifier m_qc; /**< The query classifier. */
|
||||||
uint64_t m_retry_duration; /**< Total time spent retrying queries */
|
uint64_t m_retry_duration; /**< Total time spent retrying queries */
|
||||||
GWBUF* m_current_query; /**< Current query being executed, NULL for no query */
|
mxs::Buffer m_current_query; /**< Current query being executed */
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RWSplitSession(RWSplit* instance, MXS_SESSION* session,
|
RWSplitSession(RWSplit* instance, MXS_SESSION* session,
|
||||||
@ -201,8 +202,8 @@ private:
|
|||||||
*/
|
*/
|
||||||
inline void set_query(GWBUF* query)
|
inline void set_query(GWBUF* query)
|
||||||
{
|
{
|
||||||
ss_dassert(!m_current_query);
|
ss_dassert(!m_current_query.get());
|
||||||
m_current_query = gwbuf_clone(query);
|
m_current_query.reset(gwbuf_clone(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -212,9 +213,7 @@ private:
|
|||||||
*/
|
*/
|
||||||
inline GWBUF* release_query()
|
inline GWBUF* release_query()
|
||||||
{
|
{
|
||||||
GWBUF* rval = m_current_query;
|
return m_current_query.release();
|
||||||
m_current_query = NULL;
|
|
||||||
return rval;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -222,7 +221,7 @@ private:
|
|||||||
*/
|
*/
|
||||||
inline void reset_query()
|
inline void reset_query()
|
||||||
{
|
{
|
||||||
gwbuf_free(release_query());
|
m_current_query.reset();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user