| 1 | /* Copyright (c) 2015, 2025, 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 | Without limiting anything contained in the foregoing, this file, | 
| 16 | which is part of C Driver for MySQL (Connector/C), is also subject to the | 
| 17 | Universal FOSS Exception, version 1.0, a copy of which can be found at | 
| 18 | http://oss.oracle.com/licenses/universal-foss-exception. | 
| 19 |  | 
| 20 | This program is distributed in the hope that it will be useful, | 
| 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 23 | GNU General Public License, version 2.0, for more details. | 
| 24 |  | 
| 25 | You should have received a copy of the GNU General Public License | 
| 26 | along with this program; if not, write to the Free Software | 
| 27 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */ | 
| 28 |  | 
| 29 | #ifndef _mysql_command_h | 
| 30 | #define _mysql_command_h | 
| 31 |  | 
| 32 | /** | 
| 33 |   @file include/my_command.h | 
| 34 | */ | 
| 35 |  | 
| 36 | /** | 
| 37 |   @enum  enum_server_command | 
| 38 |  | 
| 39 |   @brief A list of all MySQL protocol commands. | 
| 40 |  | 
| 41 |   These are the top level commands the server can receive | 
| 42 |   while it listens for a new command in ::dispatch_command | 
| 43 |  | 
| 44 |   @par Warning | 
| 45 |   Add new commands to the end of this list, otherwise old | 
| 46 |   servers won't be able to handle them as 'unsupported'. | 
| 47 | */ | 
| 48 | enum enum_server_command { | 
| 49 |   /** | 
| 50 |     Currently refused by the server. See ::dispatch_command. | 
| 51 |     Also used internally to mark the start of a session. | 
| 52 |   */ | 
| 53 |   COM_SLEEP, | 
| 54 |   COM_QUIT,       /**< See @ref page_protocol_com_quit */ | 
| 55 |   COM_INIT_DB,    /**< See @ref page_protocol_com_init_db */ | 
| 56 |   COM_QUERY,      /**< See @ref page_protocol_com_query */ | 
| 57 |   COM_FIELD_LIST, /**< Deprecated. See @ref page_protocol_com_field_list */ | 
| 58 |   COM_CREATE_DB, /**< Currently refused by the server. See ::dispatch_command */ | 
| 59 |   COM_DROP_DB,   /**< Currently refused by the server. See ::dispatch_command */ | 
| 60 |   COM_REFRESH,   /**< Deprecated. See @ref page_protocol_com_refresh */ | 
| 61 |   COM_DEPRECATED_1, /**< Deprecated, used to be COM_SHUTDOWN */ | 
| 62 |   COM_STATISTICS,   /**< See @ref page_protocol_com_statistics */ | 
| 63 |   COM_PROCESS_INFO, /**< Deprecated. See @ref page_protocol_com_process_info */ | 
| 64 |   COM_CONNECT,      /**< Currently refused by the server. */ | 
| 65 |   COM_PROCESS_KILL, /**< Deprecated. See @ref page_protocol_com_process_kill */ | 
| 66 |   COM_DEBUG,        /**< See @ref page_protocol_com_debug */ | 
| 67 |   COM_PING,         /**< See @ref page_protocol_com_ping */ | 
| 68 |   COM_TIME,         /**< Currently refused by the server. */ | 
| 69 |   COM_DELAYED_INSERT, /**< Functionality removed. */ | 
| 70 |   COM_CHANGE_USER,    /**< See @ref page_protocol_com_change_user */ | 
| 71 |   COM_BINLOG_DUMP,    /**< See @ref page_protocol_com_binlog_dump */ | 
| 72 |   COM_TABLE_DUMP, | 
| 73 |   COM_CONNECT_OUT, | 
| 74 |   COM_REGISTER_SLAVE, | 
| 75 |   COM_STMT_PREPARE, /**< See @ref page_protocol_com_stmt_prepare */ | 
| 76 |   COM_STMT_EXECUTE, /**< See @ref page_protocol_com_stmt_execute */ | 
| 77 |   /** See  @ref page_protocol_com_stmt_send_long_data */ | 
| 78 |   COM_STMT_SEND_LONG_DATA, | 
| 79 |   COM_STMT_CLOSE, /**< See @ref page_protocol_com_stmt_close */ | 
| 80 |   COM_STMT_RESET, /**< See @ref page_protocol_com_stmt_reset */ | 
| 81 |   COM_SET_OPTION, /**< See @ref page_protocol_com_set_option */ | 
| 82 |   COM_STMT_FETCH, /**< See @ref page_protocol_com_stmt_fetch */ | 
| 83 |   /** | 
| 84 |     Currently refused by the server. See ::dispatch_command. | 
| 85 |     Also used internally to mark the session as a "daemon", | 
| 86 |     i.e. non-client THD. Currently the scheduler and the GTID | 
| 87 |     code does use this state. | 
| 88 |     These threads won't be killed by `KILL` | 
| 89 |  | 
| 90 |     @sa Event_scheduler::start, ::init_thd, ::kill_one_thread, | 
| 91 |     ::Find_thd_with_id | 
| 92 |   */ | 
| 93 |   COM_DAEMON, | 
| 94 |   COM_BINLOG_DUMP_GTID, | 
| 95 |   COM_RESET_CONNECTION, /**< See @ref page_protocol_com_reset_connection */ | 
| 96 |   COM_CLONE, | 
| 97 |   COM_SUBSCRIBE_GROUP_REPLICATION_STREAM, | 
| 98 |   /* don't forget to update std::string Command_names::m_names[] in sql_parse.cc | 
| 99 |    */ | 
| 100 |  | 
| 101 |   /* Must be last */ | 
| 102 |   COM_END /**< Not a real command. Refused. */ | 
| 103 | }; | 
| 104 |  | 
| 105 | #endif /* _mysql_command_h */ | 
| 106 |  |