MySQL 8.0.32
Source Code Documentation
sql_test.h
Go to the documentation of this file.
1/* Copyright (c) 2006, 2022, 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
34class Item;
35class JOIN;
36class Table_ref;
37
39
40extern const char *lock_descriptions[TL_WRITE_ONLY + 1];
41
42#ifndef NDEBUG
43void print_where(const THD *thd, const Item *cond, const char *info,
44 enum_query_type query_type);
45void TEST_join(JOIN *join);
46void print_plan(JOIN *join, uint idx, double record_count, double read_time,
47 double current_read_time, const char *info);
49#endif
51
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:850
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:1153
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
Definition: table.h:2755
Query_block * query_block
Definition: table.h:3591
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:150
void print_where(const THD *thd, const Item *cond, const char *info, enum_query_type query_type)
Definition: sql_test.cc:95
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:78
void TEST_join(JOIN *join)
Definition: sql_test.cc:110
void dump_TABLE_LIST_graph(Query_block *query_block, Table_ref *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:215
void print_keyuse_array(THD *thd, Opt_trace_context *trace, const Key_use_array *keyuse_array)
Definition: sql_test.cc:161
@ TL_WRITE_ONLY
Definition: thr_lock.h:93
unsigned int uint
Definition: uca-dump.cc:29