MySQL  8.0.27
Source Code Documentation
sql_test.h
Go to the documentation of this file.
1 /* Copyright (c) 2006, 2021, 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 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 SQL_TEST_INCLUDED
24 #define SQL_TEST_INCLUDED
25 
26 #include <sys/types.h>
27 
28 #include "sql/enum_query_type.h" // enum_query_type
29 #include "sql/mem_root_array.h" // Mem_root_array
30 #include "sql/sql_lex.h"
31 #include "sql/sql_select.h"
32 #include "thr_lock.h" // TL_WRITE_ONLY
33 
34 class Item;
35 class JOIN;
36 struct TABLE_LIST;
37 
39 
40 extern const char *lock_descriptions[TL_WRITE_ONLY + 1];
41 
42 #ifndef NDEBUG
43 void print_where(const THD *thd, const Item *cond, const char *info,
44  enum_query_type query_type);
45 void TEST_join(JOIN *join);
46 void print_plan(JOIN *join, uint idx, double record_count, double read_time,
47  double current_read_time, const char *info);
49 #endif
50 class Opt_trace_context;
51 
52 void print_keyuse_array(THD *thd, Opt_trace_context *trace,
53  const Key_use_array *keyuse_array);
54 #endif /* SQL_TEST_INCLUDED */
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:802
Definition: sql_optimizer.h:125
A per-session context which is always available at any point of execution, because in practice it's a...
Definition: opt_trace_context.h:89
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1123
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:821
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:30
Log info(cout, "NOTE")
std::string join(Container cont, const std::string &delim)
join elements of an container into a string separated by a delimiter.
Definition: string.h:144
void print_where(const THD *thd, const Item *cond, const char *info, enum_query_type query_type)
Definition: sql_test.cc:93
Mem_root_array< Key_use > Key_use_array
Definition: sql_test.h:36
const char * lock_descriptions[TL_WRITE_ONLY+1]
Definition: sql_test.cc:76
void TEST_join(JOIN *join)
Definition: sql_test.cc:108
void dump_TABLE_LIST_graph(Query_block *query_block, TABLE_LIST *tl)
void print_plan(JOIN *join, uint idx, double record_count, double read_time, double current_read_time, const char *info)
Print the current state during query optimization.
Definition: sql_test.cc:213
void print_keyuse_array(THD *thd, Opt_trace_context *trace, const Key_use_array *keyuse_array)
Definition: sql_test.cc:159
Definition: table.h:2694
Query_block * query_block
Definition: table.h:3533
@ TL_WRITE_ONLY
Definition: thr_lock.h:93
unsigned int uint
Definition: uca-dump.cc:29