MySQL 8.4.0
Source Code Documentation
resource_group_sql_cmd.h
Go to the documentation of this file.
1/* Copyright (c) 2017, 2024, Oracle and/or its affiliates.
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 designed to work 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 either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef RESOURCEGROUPS_RESOURCE_GROUP_SQL_CMD_H_
25#define RESOURCEGROUPS_RESOURCE_GROUP_SQL_CMD_H_
26
27#include "lex_string.h"
28#include "my_inttypes.h"
29#include "my_sqlcommand.h"
30#include "sql/mem_root_array.h"
32#include "sql/sql_cmd.h"
33
38class THD;
39
40namespace 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),
58
61 }
62
63 bool execute(THD *thd) override;
64
65 private:
67 const Type m_type;
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),
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:
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:
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_
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:426
Parse tree node for ALTER RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:5404
Parse tree node for CREATE RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:5383
Parse tree node for DROP RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:5425
Parse tree node for SET RESOURCE GROUP statement.
Definition: parse_tree_nodes.h:5440
Representation of an SQL command.
Definition: sql_cmd.h:83
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Sql_cmd_alter_resource_group represents ALTER RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:77
bool execute(THD *thd) override
Execute this SQL statement.
Definition: resource_group_sql_cmd.cc:312
bool m_enable
Definition: resource_group_sql_cmd.h:102
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:99
int m_priority
Definition: resource_group_sql_cmd.h:101
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
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:92
bool m_use_enable
Definition: resource_group_sql_cmd.h:104
bool m_force
Definition: resource_group_sql_cmd.h:103
const Mem_root_array< Range > * m_cpu_list
Definition: resource_group_sql_cmd.h:100
Sql_cmd_create_resource_group represents CREATE RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:46
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
const Type m_type
Definition: resource_group_sql_cmd.h:67
bool m_enabled
Definition: resource_group_sql_cmd.h:70
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:59
int m_priority
Definition: resource_group_sql_cmd.h:69
const Mem_root_array< Range > * m_cpu_list
Definition: resource_group_sql_cmd.h:68
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:66
bool execute(THD *thd) override
Execute this SQL statement.
Definition: resource_group_sql_cmd.cc:190
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:428
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:118
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:125
Sql_cmd_drop_resource_group(const LEX_CSTRING &name, bool force)
Definition: resource_group_sql_cmd.h:115
bool m_force
Definition: resource_group_sql_cmd.h:126
Sql_cmd_set_resource_group represents SET RESOURCE GROUP statement.
Definition: resource_group_sql_cmd.h:133
Mem_root_array< ulonglong > * m_thread_id_list
Definition: resource_group_sql_cmd.h:150
Sql_cmd_set_resource_group(const LEX_CSTRING &name, Mem_root_array< ulonglong > *thread_id_list)
Definition: resource_group_sql_cmd.h:137
bool prepare(THD *thd) override
Prepare this SQL statement.
Definition: resource_group_sql_cmd.cc:711
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: resource_group_sql_cmd.h:141
bool execute(THD *thd) override
Execute this SQL statement.
Definition: resource_group_sql_cmd.cc:620
const LEX_CSTRING m_name
Definition: resource_group_sql_cmd.h:149
Some integer typedefs for easier portability.
enum_sql_command
Definition: my_sqlcommand.h:46
@ SQLCOM_ALTER_RESOURCE_GROUP
Definition: my_sqlcommand.h:197
@ SQLCOM_DROP_RESOURCE_GROUP
Definition: my_sqlcommand.h:198
@ SQLCOM_SET_RESOURCE_GROUP
Definition: my_sqlcommand.h:199
@ SQLCOM_CREATE_RESOURCE_GROUP
Definition: my_sqlcommand.h:196
Definition: dd_resource_group.h:29
Type
Definition: resource_group_basic_types.h:33
required uint32 priority
Definition: replication_group_member_actions.proto:35
required string type
Definition: replication_group_member_actions.proto:34
required bool enabled
Definition: replication_group_member_actions.proto:33
Representation of an SQL command.
case opt name
Definition: sslopt-case.h:29
Definition: mysql_lex_string.h:40