| 159 | uint server_command_flags[COM_END+1]; |
| 160 | |
| 161 | void init_update_queries(void) |
| 162 | { |
| 163 | /* Initialize the server command flags array. */ |
| 164 | memset(server_command_flags, 0, sizeof(server_command_flags)); |
| 165 | |
| 166 | server_command_flags[COM_STATISTICS]= CF_SKIP_QUESTIONS; |
| 167 | server_command_flags[COM_PING]= CF_SKIP_QUESTIONS; |
| 168 | server_command_flags[COM_STMT_PREPARE]= CF_SKIP_QUESTIONS; |
| 169 | server_command_flags[COM_STMT_CLOSE]= CF_SKIP_QUESTIONS; |
| 170 | server_command_flags[COM_STMT_RESET]= CF_SKIP_QUESTIONS; |
| 171 | |
| 172 | /* Initialize the sql command flags array. */ |
| 173 | memset(sql_command_flags, 0, sizeof(sql_command_flags)); |
| 174 | |
| 175 | /* |
| 176 | In general, DDL statements do not generate row events and do not go |
| 177 | through a cache before being written to the binary log. However, the |
| 178 | CREATE TABLE...SELECT is an exception because it may generate row |
| 179 | events. For that reason, the SQLCOM_CREATE_TABLE which represents |
| 180 | a CREATE TABLE, including the CREATE TABLE...SELECT, has the |
| 181 | CF_CAN_GENERATE_ROW_EVENTS flag. The distinction between a regular |
| 182 | CREATE TABLE and the CREATE TABLE...SELECT is made in other parts of |
| 183 | the code, in particular in the Query_log_event's constructor. |
| 184 | */ |
| 185 | sql_command_flags[SQLCOM_CREATE_TABLE]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | |
| 186 | CF_AUTO_COMMIT_TRANS | |
| 187 | CF_CAN_GENERATE_ROW_EVENTS; |
| 188 | sql_command_flags[SQLCOM_CREATE_INDEX]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 189 | sql_command_flags[SQLCOM_ALTER_TABLE]= CF_CHANGES_DATA | CF_WRITE_LOGS_COMMAND | |
| 190 | CF_AUTO_COMMIT_TRANS; |
| 191 | sql_command_flags[SQLCOM_TRUNCATE]= CF_CHANGES_DATA | CF_WRITE_LOGS_COMMAND | |
| 192 | CF_AUTO_COMMIT_TRANS; |
| 193 | sql_command_flags[SQLCOM_DROP_TABLE]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 194 | sql_command_flags[SQLCOM_LOAD]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | |
| 195 | CF_CAN_GENERATE_ROW_EVENTS; |
| 196 | sql_command_flags[SQLCOM_CREATE_DB]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 197 | sql_command_flags[SQLCOM_DROP_DB]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 198 | sql_command_flags[SQLCOM_ALTER_DB_UPGRADE]= CF_AUTO_COMMIT_TRANS; |
| 199 | sql_command_flags[SQLCOM_ALTER_DB]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 200 | sql_command_flags[SQLCOM_RENAME_TABLE]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 201 | sql_command_flags[SQLCOM_DROP_INDEX]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 202 | sql_command_flags[SQLCOM_CREATE_VIEW]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | |
| 203 | CF_AUTO_COMMIT_TRANS; |
| 204 | sql_command_flags[SQLCOM_DROP_VIEW]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 205 | sql_command_flags[SQLCOM_CREATE_TRIGGER]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 206 | sql_command_flags[SQLCOM_DROP_TRIGGER]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 207 | sql_command_flags[SQLCOM_CREATE_EVENT]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 208 | sql_command_flags[SQLCOM_ALTER_EVENT]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 209 | sql_command_flags[SQLCOM_DROP_EVENT]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS; |
| 210 | |
| 211 | sql_command_flags[SQLCOM_UPDATE]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | |
| 212 | CF_CAN_GENERATE_ROW_EVENTS | |
| 213 | CF_OPTIMIZER_TRACE | |
| 214 | CF_CAN_BE_EXPLAINED; |
| 215 | sql_command_flags[SQLCOM_UPDATE_MULTI]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | |
| 216 | CF_CAN_GENERATE_ROW_EVENTS | |
| 217 | CF_OPTIMIZER_TRACE | |
| 218 | CF_CAN_BE_EXPLAINED; |
no outgoing calls
no test coverage detected