MXS-1734 Add possibility to instruct when to dump statements

With the configuration entry

dump_last_statements=[never|on_close|on_error]

you can now specify when and if to dump the last statements
of of a session.
This commit is contained in:
Johan Wikman
2018-03-26 10:42:11 +03:00
parent 6d599395d4
commit 3d45d452eb
6 changed files with 68 additions and 5 deletions

View File

@ -53,6 +53,7 @@ using std::stringstream;
static uint64_t next_session_id = 1;
static uint32_t retain_last_statements = 0;
static session_dump_statements_t dump_statements = SESSION_DUMP_STATEMENTS_NEVER;
static struct session session_dummy_struct;
@ -392,6 +393,11 @@ static void session_free(MXS_SESSION *session)
static void
session_final_free(MXS_SESSION *session)
{
if (dump_statements == SESSION_DUMP_STATEMENTS_ON_CLOSE)
{
session_dump_statements(session);
}
gwbuf_free(session->stmt.buffer);
delete session->last_statements;
MXS_FREE(session);
@ -1111,11 +1117,21 @@ uint64_t session_get_current_id()
return session ? session->ses_id : 0;
}
void session_retain_last_statements(uint32_t n)
void session_set_retain_last_statements(uint32_t n)
{
retain_last_statements = n;
}
void session_set_dump_statements(session_dump_statements_t value)
{
dump_statements = value;
}
session_dump_statements_t session_get_dump_statements()
{
return dump_statements;
}
void session_retain_statement(MXS_SESSION* pSession, GWBUF* pBuffer)
{
if (retain_last_statements)