My Project
|
00001 /* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. 00002 00003 This program is free software; you can redistribute it and/or modify 00004 it under the terms of the GNU General Public License as published by 00005 the Free Software Foundation; version 2 of the License. 00006 00007 This program is distributed in the hope that it will be useful, 00008 but WITHOUT ANY WARRANTY; without even the implied warranty of 00009 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00010 GNU General Public License for more details. 00011 00012 You should have received a copy of the GNU General Public License 00013 along with this program; if not, write to the Free Software Foundation, 00014 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ 00015 00016 00017 #ifndef OPT_EXPLAIN_INCLUDED 00018 #define OPT_EXPLAIN_INCLUDED 00019 00048 #include <my_base.h> 00049 00050 class JOIN; 00051 class select_result; 00052 class select_result_interceptor; 00053 class SQL_SELECT; 00054 struct TABLE; 00055 class THD; 00056 00057 00058 extern const char *join_type_str[]; 00059 00060 bool explain_no_table(THD *thd, JOIN *join, const char *message); 00061 bool explain_no_table(THD *thd, const char *message, 00062 ha_rows rows= HA_POS_ERROR); 00063 bool explain_single_table_modification(THD *thd, 00064 TABLE *table, 00065 const SQL_SELECT *select, 00066 uint key, 00067 ha_rows limit, 00068 bool need_tmp_table, 00069 bool need_sort, 00070 bool is_update, 00071 bool used_key_is_modified= false); 00072 bool explain_query_specification(THD *thd, JOIN *join); 00073 bool explain_multi_table_modification(THD *thd, 00074 select_result_interceptor *result); 00075 bool explain_query_expression(THD *thd, select_result *result); 00076 00077 #endif /* OPT_EXPLAIN_INCLUDED */