Merge branch '2.3' into develop

This commit is contained in:
Markus Mäkelä
2019-04-12 13:23:49 +03:00
31 changed files with 625 additions and 243 deletions

View File

@ -243,6 +243,7 @@ int dcb_write(DCB*, GWBUF*);
DCB* dcb_alloc(DCB::Role, MXS_SESSION*);
DCB* dcb_connect(struct SERVER*, MXS_SESSION*, const char*);
int dcb_read(DCB*, GWBUF**, int);
int dcb_bytes_readable(DCB* dcb);
int dcb_drain_writeq(DCB*);
void dcb_close(DCB*);

View File

@ -40,6 +40,7 @@ enum reply_state_t
REPLY_STATE_START, /**< Query sent to backend */
REPLY_STATE_DONE, /**< Complete reply received */
REPLY_STATE_RSET_COLDEF, /**< Resultset response, waiting for column definitions */
REPLY_STATE_RSET_COLDEF_EOF,/**< Resultset response, waiting for EOF for column definitions */
REPLY_STATE_RSET_ROWS /**< Resultset response, waiting for rows */
};
@ -70,6 +71,30 @@ public:
return m_reply_state;
}
const char* reply_state_str() const
{
switch (m_reply_state)
{
case REPLY_STATE_START:
return "START";
case REPLY_STATE_DONE:
return "DONE";
case REPLY_STATE_RSET_COLDEF:
return "COLDEF";
case REPLY_STATE_RSET_COLDEF_EOF:
return "COLDEF_EOF";
case REPLY_STATE_RSET_ROWS:
return "ROWS";
default:
return "UNKNOWN";
}
}
void add_ps_handle(uint32_t id, uint32_t handle);
uint32_t get_ps_handle(uint32_t id) const;
@ -132,6 +157,9 @@ public:
return m_reply_state == REPLY_STATE_DONE;
}
void process_packets(GWBUF* buffer);
void process_reply_start(mxs::Buffer::iterator it);
// Controlled by the session
ResponseStat& response_stat();
@ -152,6 +180,7 @@ private:
uint32_t m_expected_rows; /**< Number of rows a COM_STMT_FETCH is retrieving */
bool m_local_infile_requested; /**< Whether a LOCAL INFILE was requested */
ResponseStat m_response_stat;
uint64_t m_num_coldefs = 0;
inline bool is_opening_cursor() const
{

View File

@ -555,6 +555,11 @@ char* session_set_variable_value(MXS_SESSION* session,
*/
void session_set_retain_last_statements(uint32_t n);
/**
* Get retain_last_statements
*/
uint32_t session_get_retain_last_statements();
/**
* @brief Retain provided statement, if configured to do so.
*
@ -604,6 +609,11 @@ void session_set_dump_statements(session_dump_statements_t value);
*/
session_dump_statements_t session_get_dump_statements();
/**
* String version of session_get_dump_statements
*/
const char* session_get_dump_statements_str();
/**
* @brief Route the query again after a delay
*