55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
| //
 | |
| // Created by zzy on 2022/8/25.
 | |
| //
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "m_string.h"
 | |
| #include "sql/package/proc.h"
 | |
| 
 | |
| /// proc for hist show
 | |
| namespace im {
 | |
| 
 | |
| extern LEX_CSTRING XRPC_PROC_SCHEMA;
 | |
| 
 | |
| class Xrpc_proc_base : public Proc {
 | |
| public:
 | |
|   explicit Xrpc_proc_base(PSI_memory_key key) : Proc(key) {}
 | |
| 
 | |
|   /* Setting timestamp native procedure schema */
 | |
|   const std::string qname() const final {
 | |
|     return std::string(XRPC_PROC_SCHEMA.str) + "." + str();
 | |
|   }
 | |
| };
 | |
| 
 | |
| class Proc_perf_hist : public Xrpc_proc_base {
 | |
| public:
 | |
|   explicit Proc_perf_hist(PSI_memory_key key) : Xrpc_proc_base(key) {
 | |
|     m_result_type = Result_type::RESULT_SET;
 | |
|     m_parameters.push_back(MYSQL_TYPE_VARCHAR);
 | |
|     m_columns.push_back({MYSQL_TYPE_VARCHAR, C_STRING_WITH_LEN("name"), 128});
 | |
|     m_columns.push_back({MYSQL_TYPE_VARCHAR, C_STRING_WITH_LEN("hist"), 65535});
 | |
|   }
 | |
| 
 | |
|   static Proc *instance();
 | |
| 
 | |
|   Sql_cmd *evoke_cmd(THD *thd, List<Item> *list) const final;
 | |
| 
 | |
|   const std::string str() const final { return {"perf_hist"}; }
 | |
| };
 | |
| 
 | |
| class Cmd_perf_hist : public Sql_cmd_admin_proc {
 | |
| public:
 | |
|   Cmd_perf_hist(THD *thd, List<Item> *list, const Proc *proc)
 | |
|       : Sql_cmd_admin_proc(thd, list, proc) {}
 | |
| 
 | |
|   bool pc_execute(THD *thd) final;
 | |
| 
 | |
|   void send_result(THD *thd, bool error) final;
 | |
| 
 | |
| private:
 | |
|   std::string name_;
 | |
| };
 | |
| 
 | |
| } // namespace im
 |