MySQL  8.0.20
Source Code Documentation
resource_group_sql_cmd.h
Go to the documentation of this file.
1 /* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef RESOURCEGROUPS_RESOURCE_GROUP_SQL_CMD_H_
24 #define RESOURCEGROUPS_RESOURCE_GROUP_SQL_CMD_H_
25 
26 #include "lex_string.h"
27 #include "my_inttypes.h"
28 #include "my_sqlcommand.h"
29 #include "sql/mem_root_array.h"
32 #include "sql/sql_cmd.h"
33 
38 class THD;
39 
40 namespace resourcegroups {
41 
42 /**
43  Sql_cmd_create_resource_group represents CREATE RESOURCE GROUP statement.
44 */
45 
47  friend class ::PT_create_resource_group;
48 
49  public:
51  const Mem_root_array<Range> *cpu_list,
52  int priority, bool enabled)
53  : m_name(name),
54  m_type(type),
55  m_cpu_list(cpu_list),
56  m_priority(priority),
57  m_enabled(enabled) {}
58 
61  }
62 
63  bool execute(THD *thd) override;
64 
65  private:
67  const Type m_type;
70  bool m_enabled;
71 };
72 
73 /**
74  Sql_cmd_alter_resource_group represents ALTER RESOURCE GROUP statement.
75 */
76 
78  friend class ::PT_alter_resource_group;
79 
80  public:
82  const Mem_root_array<Range> *cpu_list,
83  int priority, bool enable, bool force,
84  bool use_enable)
85  : m_name(name),
86  m_cpu_list(cpu_list),
87  m_priority(priority),
88  m_enable(enable),
89  m_force(force),
90  m_use_enable(use_enable) {}
91 
94  }
95 
96  bool execute(THD *thd) override;
97 
98  private:
102  bool m_enable;
103  bool m_force;
105 };
106 
107 /**
108  Sql_cmd_drop_resource_group represents DROP RESOURCE GROUP statement.
109 */
110 
112  friend class ::PT_drop_resource_group;
113 
114  public:
116  : m_name(name), m_force(force) {}
117 
120  }
121 
122  bool execute(THD *thd) override;
123 
124  private:
126  bool m_force;
127 };
128 
129 /**
130  Sql_cmd_set_resource_group represents SET RESOURCE GROUP statement.
131 */
132 
134  friend class ::PT_set_resource_group;
135 
136  public:
138  Mem_root_array<ulonglong> *thread_id_list)
139  : m_name(name), m_thread_id_list(thread_id_list) {}
140 
143  }
144 
145  bool execute(THD *thd) override;
146  bool prepare(THD *thd) override;
147 
148  private:
151 };
152 } // namespace resourcegroups
153 #endif // RESOURCEGROUPS_RESOURCE_GROUP_SQL_CMD_H_
Representation of an SQL command.
Definition: sql_cmd.h:63
Sql_cmd_create_resource_group(const LEX_CSTRING &name, const Type type, const Mem_root_array< Range > *cpu_list, int priority, bool enabled)
Definition: resource_group_sql_cmd.h:50
Mem_root_array< ulonglong > * m_thread_id_list
Definition: resource_group_sql_cmd.h:150
bool m_force
Definition: resource_group_sql_cmd.h:126
Sql_cmd_alter_resource_group represents ALTER RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:77
Some integer typedefs for easier portability.
Sql_cmd_set_resource_group(const LEX_CSTRING &name, Mem_root_array< ulonglong > *thread_id_list)
Definition: resource_group_sql_cmd.h:137
enum_sql_command
Definition: my_sqlcommand.h:45
virtual bool prepare(THD *thd)
Prepare this SQL statement.
Definition: sql_cmd.h:84
int m_priority
Definition: resource_group_sql_cmd.h:101
Definition: mysql_lex_string.h:39
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:125
bool enabled
true if enabled.
Definition: buf0dblwr.cc:81
Representation of an SQL command.
const Mem_root_array< Range > * m_cpu_list
Definition: resource_group_sql_cmd.h:68
Sql_cmd_drop_resource_group represents DROP RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:111
bool execute(THD *thd) override
Execute this SQL statement.
Definition: resource_group_sql_cmd.cc:188
const Mem_root_array< Range > * m_cpu_list
Definition: resource_group_sql_cmd.h:100
Definition: my_sqlcommand.h:198
Definition: my_sqlcommand.h:195
bool m_enabled
Definition: resource_group_sql_cmd.h:70
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:149
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:118
Parse tree node for CREATE RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:4459
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:66
Sql_cmd_set_resource_group represents SET RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:133
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:92
Parse tree node for SET RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:4513
#define final(a, b, c)
Definition: hash.c:109
case opt name
Definition: sslopt-case.h:32
Sql_cmd_alter_resource_group(const LEX_CSTRING &name, const Mem_root_array< Range > *cpu_list, int priority, bool enable, bool force, bool use_enable)
Definition: resource_group_sql_cmd.h:81
Type
Definition: resource_group_basic_types.h:32
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:389
bool m_use_enable
Definition: resource_group_sql_cmd.h:104
bool m_enable
Definition: resource_group_sql_cmd.h:102
int m_priority
Definition: resource_group_sql_cmd.h:69
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:59
Definition: my_sqlcommand.h:196
Definition: dd_resource_group.h:28
Parse tree node for ALTER RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:4479
bool m_force
Definition: resource_group_sql_cmd.h:103
Definition: my_sqlcommand.h:197
Parse tree node for DROP RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:4499
Sql_cmd_create_resource_group represents CREATE RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:46
Sql_cmd_drop_resource_group(const LEX_CSTRING &name, bool force)
Definition: resource_group_sql_cmd.h:115
const Type m_type
Definition: resource_group_sql_cmd.h:67
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:99
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:765
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:141