1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-20 10:24:14 +03:00

SQL: Backup_query_start_time RAII

This commit is contained in:
Aleksey Midenkov
2018-01-09 15:28:08 +03:00
parent 3395ab7324
commit 07b1a77430
2 changed files with 28 additions and 9 deletions

View File

@ -2085,14 +2085,36 @@ struct QUERY_START_TIME_INFO
my_time_t start_time;
ulong start_time_sec_part;
ulonglong start_utime, utime_after_lock;
};
void backup_query_start_time(QUERY_START_TIME_INFO *backup)
class Backup_query_start_time : public QUERY_START_TIME_INFO
{
QUERY_START_TIME_INFO *m_origin;
public:
Backup_query_start_time() : m_origin(NULL)
{}
Backup_query_start_time(QUERY_START_TIME_INFO &origin)
{
*backup= *this;
backup(origin);
}
void restore_query_start_time(QUERY_START_TIME_INFO *backup)
~Backup_query_start_time()
{
*this= *backup;
restore();
}
void backup(QUERY_START_TIME_INFO &origin)
{
m_origin= &origin;
QUERY_START_TIME_INFO *backup_= this;
*backup_= origin;
}
void restore()
{
if (m_origin)
{
*m_origin= *this;
m_origin= NULL;
}
}
};