在学习编译和调试MYSQL源码的时候,我们是先有了鸡,才去找蛋!
是你知道了函数名,然后给它打个断点,然后去调试,步步追随!
以下两种调试方法
用VSCODE 编辑编译调试MYSQL8
这个用IDE的 需要一个干净的环境才好
这个是用LINUX下 编译查看源码的 主要使用GDB命令
假设 你想知道一个SQL语句到底要执行哪些函数呢? 那么就要使用MYSQL
TRAC功能了
要开启MYSQL TRAC功能 需要DEBUG版本
那我们上面的工作是有价值意义的.
在 shell 命令行指定调试控制字符串,示例:
--debug=d:t
--debug=d:f,main,subr1:F:L:t,20
--debug=d,input,output,files:n
--debug=d:t:i:O,\\mysqld.trace复制
对于mysqld,也可以通过设置debug系统变量在运行时更改DBUG设置。此变量具有全局值和会话值:
mysql> SET GLOBAL debug = 'debug_options';
mysql> SET SESSION debug = 'debug_options';复制
debug_options值是一系列冒号分隔的字段,值中的每个字段都由一个强制标志字符组成,前面可选+或-字符,后面可选逗号分隔的修饰符列表
[+|-]flag[,modifier,modifier,...,modifier]复制
下表介绍标志字符。无法识别的标志字符将被自动忽略。
这些东西稍微看看,不要死记硬背,看不懂意思也就算了,没啥大不了的,当作手册,以后可查!
标识字符 | 描述 |
d | 为当前状态启用DBUG_XXX宏的输出。后面可能会有一个关键字列表,该列表仅为具有该关键字的DBUG宏启用输出。关键字的空列表启用所有宏的输出.在MySQL中,要启用的常见调试宏关键字有enter、exit、error、warning、info和loop。如:set debug = 'd,info'; 获取代码中DBUG_PRINT("info:" 打印的日志) |
D | 每个调试器输出行之后的延迟。论点是延迟,以十分之一秒为单位,取决于机器的能力。例如,D,20指定两秒的延迟。 |
f | 将调试、跟踪和分析限制在命名函数列表中。空列表启用所有功能。仍然必须给出适当的d或t标志;此标志仅在启用时限制其操作。 |
F | 标识每行调试或跟踪输出的源文件名。 |
i | 用每行调试或跟踪输出的PID或线程ID标识进程 |
L | 标识调试或跟踪输出每行的源文件行号 |
n | 打印每行调试或跟踪输出的当前函数嵌套深度 |
N | 对调试输出的每行进行编号 |
o | 将调试器输出流重定向到指定文件。默认输出为stderr |
O | 与o类似,但文件在每次写入之间都会被刷新。需要时,在每次写入之间关闭并重新打开文件 |
P | 将调试器操作限制为指定进程。一个进程必须用DBUG_进程宏标识,并与列表中的一个进程匹配,才能执行调试器操作 |
p | 打印每行调试或跟踪输出的当前进程名称 |
r | 推送新状态时,不要继承以前状态的函数嵌套级别。当输出从左边距开始时有用。 |
S | 在每个已调试的函数上执行函数_sanity(_file_,_line_))直到_sanity()返回与0不同的内容 |
t | 启用函数调用/退出跟踪线。后面可能会有一个列表(仅包含一个修饰符),给出数字最大跟踪级别,超过该级别,调试或跟踪宏都不会出现输出。默认为编译时选项。 |
前导+或-字符和尾随修饰符列表用于标志字符,如d或f,可以对所有适用修饰符或其中一些修饰符启用调试操作:
如果没有前导+或-,则标志值将精确设置为给定的修饰符列表。使用前导+或-,列表中的修饰符将添加到当前修饰符列表或从中减去
以下示例显示了这如何适用于d标志。为所有调试宏启用了空d列表输出。非空列表仅为列表中的宏关键字启用输出。
这些语句将d值设置为给定的修饰符列表:
mysql> SET debug = 'd';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d |
+---------+
mysql> SET debug = 'd,error,warning';
mysql> SELECT @@debug;
+-----------------+
| @@debug |
+-----------------+
| d,error,warning |
+-----------------+复制
删除标志符号
mysql> SET debug = '+d,loop';
mysql> SELECT @@debug;
+----------------------+
| @@debug |
+----------------------+
| d,error,warning,loop |
+----------------------+
mysql> SET debug = '-d,error,loop';
mysql> SELECT @@debug;
+-----------+
| @@debug |
+-----------+
| d,warning |
+-----------+复制
复制
set debug = 'd:t:o,/tmp/mysqld.trace'; 只对当前会话生效,只对当前执行的语句 trace。复制
结果比较清晰复制
复制
我们玩一把复制
mysql> set debug = 'd:t:F:i:L:n:p:o,/root/mysqld.trace';
Query OK, 0 rows affected (0.00 sec)
mysql> select * from treenodes;
+----+----------+------+
| id | nodename | pid |
+----+----------+------+
| 1 | A | 0 |
| 2 | B | 1 |
| 3 | C | 1 |
| 4 | D | 2 |
| 5 | E | 2 |
| 6 | F | 3 |
| 7 | G | 6 |
| 8 | H | 0 |
| 9 | I | 8 |
| 10 | J | 8 |
| 11 | K | 8 |
| 12 | L | 9 |
| 13 | M | 9 |
| 14 | N | 12 |
| 15 | O | 12 |
| 16 | P | 15 |
| 17 | Q | 15 |
+----+----------+------+
17 rows in set (0.00 sec)复制
复制
复制
开另外个窗口查看 ,约116K ,复制
第一列不知道啥,复制
第二列是源码文件名,复制
第三列不知道啥复制
第四列是 嵌套统计复制
第五列 竖型符号 用来嵌套格式化 好看
第六列 大于和小于 < > 表示函数进入,函数退出
第7列 是 类::成员函数复制
第八列 是源码文件+行号复制
-rw-r----- 1 0 0 116K 2038-03-23 17:45:16 mysqld.trace
[root@localhost ~]# vim mysqld.trace
T@238: sql_security_ctx.cc: 792: 6: | | | | | >Security_context::user
T@238: sql_security_ctx.cc: 6: | | | | | <Security_context::user
T@238: sql_security_ctx.cc: 792: 6: | | | | | >Security_context::user
T@238: sql_security_ctx.cc: 6: | | | | | <Security_context::user
T@238: sql_security_ctx.cc: 850: 6: | | | | | >Security_context::host
T@238: sql_security_ctx.cc: 6: | | | | | <Security_context::host
T@238: sql_security_ctx.cc: 850: 6: | | | | | >Security_context::host
T@238: sql_security_ctx.cc: 6: | | | | | <Security_context::host
T@238: set_var.cc: 5: | | | | <sql_set_variables
T@238: sql_error.cc: 375: 5: | | | | >Diagnostics_area::set_ok_status
T@238: sql_error.cc: 5: | | | | <Diagnostics_area::set_ok_status
T@238: sql_parse.cc: 314: 4: | | | | THD::enter_stage: 'query end' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:4542
T@238: sql_profile.cc: 350: 5: | | | | >PROFILING::status_change
T@238: sql_profile.cc: 5: | | | | <PROFILING::status_change
T@238: sql_audit.cc: 1084: 5: | | | | >mysql_audit_acquire_plugins
T@238: sql_audit.cc: 5: | | | | <mysql_audit_acquire_plugins
T@238: transaction.cc: 513: 5: | | | | >trans_commit_stmt
T@238: transaction.cc: 130: 5: | | | | | debug: add_unsafe_rollback_flags: 0
T@238: binlog.cc: 7932: 6: | | | | | >TC_LOG::enum_result MYSQL_BIN_LOG::commit
T@238: binlog.cc: 7934: 6: | | | | | | info: query='set debug = 'd:t:F:i:L:n:p:o,/root/mysqld.trace''
T@238: binlog.cc: 7945: 6: | | | | | | enter: thd: 0x7f3f6802f2c0, all: no, xid: 0, cache_mngr: 0x0
T@238: handler.cc: 1866: 7: | | | | | | >ha_commit_low
T@238: handler.cc: 7: | | | | | | <ha_commit_low
T@238: binlog.cc: 6: | | | | | <TC_LOG::enum_result MYSQL_BIN_LOG::commit
T@238: rpl_context.cc: 69: 6: | | | | | >bool Session_consistency_gtids_ctx::notify_after_transaction_commit
T@238: rpl_context.cc: 6: | | | | | <bool Session_consistency_gtids_ctx::notify_after_transaction_commit
T@238: transaction.cc: 134: 5: | | | | | debug: reset_unsafe_rollback_flags
T@238: transaction.cc: 5: | | | | <trans_commit_stmt
T@238: sql_union.cc: 1294: 5: | | | | >Query_expression::cleanup
T@238: sql_union.cc: 5: | | | | <Query_expression::cleanup
T@238: sql_parse.cc: 314: 4: | | | | THD::enter_stage: 'closing tables' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:4593
T@238: sql_profile.cc: 350: 5: | | | | >PROFILING::status_change
T@238: sql_profile.cc: 5: | | | | <PROFILING::status_change
T@238: sql_base.cc: 1531: 5: | | | | >close_thread_tables
T@238: sql_base.cc: 5: | | | | <close_thread_tables
T@238: sql_class.cc: 1645: 5: | | | | >THD::rollback_item_tree_changes
T@238: sql_class.cc: 5: | | | | <THD::rollback_item_tree_changes
T@238: sql_parse.cc: 362: 5: | | | | >stmt_causes_implicit_commit
T@238: sql_parse.cc: 5: | | | | <stmt_causes_implicit_commit
T@238: mdl.cc: 4490: 5: | | | | >MDL_context::release_transactional_locks
T@238: mdl.cc: 4219: 6: | | | | | >MDL_context::release_locks_stored_before
复制
复制
删除n 嵌套层数
mysql> set debug = 'd:t:F:i:L:p:o,/root/mysqld2.trace';
Query OK, 0 rows affected (0.01 sec)
mysql> select * from treenodes;
+----+----------+------+
| id | nodename | pid |
+----+----------+------+
| 1 | A | 0 |
| 2 | B | 1 |
| 3 | C | 1 |
| 4 | D | 2 |
| 5 | E | 2 |
| 6 | F | 3 |
| 7 | G | 6 |
| 8 | H | 0 |
| 9 | I | 8 |
| 10 | J | 8 |
| 11 | K | 8 |
| 12 | L | 9 |
| 13 | M | 9 |
| 14 | N | 12 |
| 15 | O | 12 |
| 16 | P | 15 |
| 17 | Q | 15 |
+----+----------+------+
17 rows in set (0.01 sec)
复制
T@238: sql_security_ctx.cc: 792: | | | | | >Security_context::user
T@238: sql_security_ctx.cc: | | | | | <Security_context::user
T@238: sql_security_ctx.cc: 792: | | | | | >Security_context::user
T@238: sql_security_ctx.cc: | | | | | <Security_context::user
T@238: sql_security_ctx.cc: 850: | | | | | >Security_context::host
T@238: sql_security_ctx.cc: | | | | | <Security_context::host
T@238: sql_security_ctx.cc: 850: | | | | | >Security_context::host
T@238: sql_security_ctx.cc: | | | | | <Security_context::host
T@238: set_var.cc: | | | | <sql_set_variables
T@238: sql_error.cc: 375: | | | | >Diagnostics_area::set_ok_status
T@238: sql_error.cc: | | | | <Diagnostics_area::set_ok_status
T@238: sql_parse.cc: 314: | | | | THD::enter_stage: 'query end' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:4542
T@238: sql_profile.cc: 350: | | | | >PROFILING::status_change
T@238: sql_profile.cc: | | | | <PROFILING::status_change
T@238: sql_audit.cc: 1084: | | | | >mysql_audit_acquire_plugins
T@238: sql_audit.cc: | | | | <mysql_audit_acquire_plugins
T@238: transaction.cc: 513: | | | | >trans_commit_stmt
T@238: transaction.cc: 130: | | | | | debug: add_unsafe_rollback_flags: 0
T@238: binlog.cc: 7932: | | | | | >TC_LOG::enum_result MYSQL_BIN_LOG::commit
T@238: binlog.cc: 7934: | | | | | | info: query='set debug = 'd:t:F:i:L:p:o,/root/mysqld2.trace''
T@238: binlog.cc: 7945: | | | | | | enter: thd: 0x7f3f6802f2c0, all: no, xid: 521644, cache_mngr: 0x0
T@238: handler.cc: 1866: | | | | | | >ha_commit_low
T@238: handler.cc: | | | | | | <ha_commit_low
T@238: binlog.cc: | | | | | <TC_LOG::enum_result MYSQL_BIN_LOG::commit
T@238: rpl_context.cc: 69: | | | | | >bool Session_consistency_gtids_ctx::notify_after_transaction_commit
T@238: rpl_context.cc: | | | | | <bool Session_consistency_gtids_ctx::notify_after_transaction_commit
T@238: transaction.cc: 134: | | | | | debug: reset_unsafe_rollback_flags
T@238: transaction.cc: | | | | <trans_commit_stmt
T@238: sql_union.cc: 1294: | | | | >Query_expression::cleanup
T@238: sql_union.cc: | | | | <Query_expression::cleanup
T@238: sql_parse.cc: 314: | | | | THD::enter_stage: 'closing tables' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:4593
T@238: sql_profile.cc: 350: | | | | >PROFILING::status_change
T@238: sql_profile.cc: | | | | <PROFILING::status_change
T@238: sql_base.cc: 1531: | | | | >close_thread_tables
T@238: sql_base.cc: | | | | <close_thread_tables
T@238: sql_class.cc: 1645: | | | | >THD::rollback_item_tree_changes
T@238: sql_class.cc: | | | | <THD::rollback_item_tree_changes
T@238: sql_parse.cc: 362: | | | | >stmt_causes_implicit_commit
T@238: sql_parse.cc: | | | | <stmt_causes_implicit_commit
T@238: mdl.cc: 4490: | | | | >MDL_context::release_transactional_locks
T@238: mdl.cc: 4219: | | | | | >MDL_context::release_locks_stored_before
"mysqld2.trace" [noeol] 1461L, 102400C
复制
这次少掉了i 没有了T@238
mysql> set debug = 'd:t:F:L:o,/root/mysqld4.trace';
复制
rpl_handler.cc: 1284: | | | | >launch_hook_trans_begin
rpl_handler.cc: 314: | | | | | THD::enter_stage: 'Executing hook on transaction begin.' /home/source_code/mysql-8.0.24/sql/rpl_handler.cc:1377
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
rpl_handler.cc: 150: | | | | | debug: is_empty: 1
rpl_handler.cc: 314: | | | | | THD::enter_stage: 'starting' /home/source_code/mysql-8.0.24/sql/rpl_handler.cc:1379
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
rpl_handler.cc: | | | | <launch_hook_trans_begin
sql_parse.cc: 1345: | | | | >deny_updates_if_read_only_option
sql_authorization.cc: 1876: | | | | | >check_readonly
sql_authorization.cc: | | | | | <check_readonly
sql_parse.cc: | | | | <deny_updates_if_read_only_option
opt_trace2server.cc: 140: | | | | >TABLE_LIST*, enum_sql_command, List<set_var_base>*, const char*, size_t, sp_printable*, const CHARSET_INFO*)
opt_trace.cc: 833: | | | | | >Opt_trace_context::start复制
RPL_HANDLER.CC 1284: 看来像源码行号
应该不是行号,后面才是
rpl_handler.cc: 314: | | | | | THD::enter_stage: 'Executing hook on transaction begin.' /home/source_code/mysql-8.0.24/sql/rpl_handler.cc:1377
rpl_handler.cc: 314: | | | | | THD::enter_stage: 'starting' /home/source_code/mysql-8.0.24/sql/rpl_handler.cc:1379复制
那这314是啥呢?
好像这不是重点,我们来是找蛋的,下面挺长的,没关系,能看下大概就行,
看一两百行就行了,后面还有些没有贴出来
viosocket.cc: | | <vio_read
net_serv.cc: | <net_read_raw_loop
sql_parse.cc: 314: | THD::enter_stage: 'starting' /home/source_code/mysql-8.0.24/sql/conn_handler/init_net_server_extension.cc:102
sql_profile.cc: 350: | >PROFILING::status_change
sql_profile.cc: | <PROFILING::status_change
sql_parse.cc: 1446: | packet_header: Memory: 0x7f3f80005b60 Bytes: (4)
1A 00 00 00
net_serv.cc: 1341: | >net_read_raw_loop
viosocket.cc: 138: | | >vio_read
viosocket.cc: | | <vio_read
net_serv.cc: | <net_read_raw_loop
sql_parse.cc: 2085: | net read: Memory: 0x7f3f80005b60 Bytes: (26)
03 00 01 73 65 6C 65 63 74 20 2A 20 66 72 6F 6D 20 74 72 65 65 6E 6F 64 65 73
protocol_classic.cc: 2820: | >Protocol_classic::parse_packet
protocol_classic.cc: 2808: | | info: param count 0l
protocol_classic.cc: | <Protocol_classic::parse_packet
sql_parse.cc: 1304: | info: Command on socket (69) = 3 (Query)
sql_parse.cc: 1308: | info: packet: ' '; command: 3
net_serv.cc: 2209: | >my_net_set_read_timeout
net_serv.cc: 2210: | | enter: timeout: 30
viosocket.cc: 312: | | >vio_socket_timeout
viosocket.cc: | | <vio_socket_timeout
net_serv.cc: | <my_net_set_read_timeout
sql_parse.cc: 1524: | >dispatch_command
sql_parse.cc: 1525: | | info: command: 3
sql_profile.cc: 369: | | >PROFILING::start_new_query
sql_profile.cc: | | <PROFILING::start_new_query
sql_audit.cc: 1084: | | >mysql_audit_acquire_plugins
sql_audit.cc: | | <mysql_audit_acquire_plugins
sql_parse.cc: 1814: | | query: select * from treenodes
sql_profile.cc: 485: | | >PROFILING::set_query_source
sql_profile.cc: | | <PROFILING::set_query_source
sql_parse.cc: 4877: | | >dispatch_sql_command
sql_parse.cc: 4878: | | | dispatch_sql_command: query: 'select * from treenodes'
sql_parse.cc: 4787: | | | >THD::reset_for_next_command
sql_parse.cc: 134: | | | | debug: reset_unsafe_rollback_flags
sql_class.h: 2897: | | | | >THD::clear_error
sql_class.h: | | | | <THD::clear_error
sql_error.cc: 357: | | | | >Diagnostics_area::reset_diagnostics_area
sql_error.cc: | | | | <Diagnostics_area::reset_diagnostics_area
sql_class.h: 3137: | | | | >THD::reset_current_stmt_binlog_format_row
sql_class.h: 3139: | | | | | debug: in_sub_stmt: 0, system_thread: NON_SYSTEM_THREAD
sql_class.h: 3127: | | | | | >THD::set_current_stmt_binlog_format_row
sql_class.h: | | | | | <THD::set_current_stmt_binlog_format_row
sql_class.h: | | | | <THD::reset_current_stmt_binlog_format_row
sql_class.h: 2329: | | | | >THD::set_trans_pos
sql_class.h: 2349: | | | | | return: m_trans_log_file: (null), m_trans_fixed_log_file: (null), m_trans_end_pos: 0
sql_class.h: | | | | <THD::set_trans_pos
sql_parse.cc: 4850: | | | | debug: is_current_stmt_binlog_format_row(): 1
sql_security_ctx.cc: 377: | | | | >Security_context::checkout_access_maps
sql_security_ctx.cc: | | | | <Security_context::checkout_access_maps
sql_parse.cc: | | | <THD::reset_for_next_command
sql_lex.cc: 509: | | | >lex_start
sql_lex.cc: 766: | | | | >LEX::new_top_level_query
sql_lex.cc: 647: | | | | | >LEX::new_query
sql_lex.cc: 464: | | | | | | outer_field: creating ctx 0x7f3f8000d658
sql_lex.cc: 692: | | | | | | outer_field: ctx 0x7f3f8000d658 <-> SL# 1
sql_lex.cc: | | | | | <LEX::new_query
sql_lex.cc: | | | | <LEX::new_top_level_query
sql_lex.cc: | | | <lex_start
sql_error.cc: 357: | | | >Diagnostics_area::reset_diagnostics_area
sql_error.cc: | | | <Diagnostics_area::reset_diagnostics_area
my_alloc.cc: 166: | | | >MEM_ROOT::Clear
my_alloc.cc: 167: | | | | enter: root: 0x7f3f80003450
my_alloc.cc: | | | <MEM_ROOT::Clear
sql_audit.cc: 1084: | | | >mysql_audit_acquire_plugins
sql_audit.cc: | | | <mysql_audit_acquire_plugins
sql_parse.cc: 6733: | | | >parse_sql
sql_class.cc: 1510: | | | | >THD::convert_string
sql_class.cc: | | | | <THD::convert_string
sql_parse.cc: 5578: | | | | >Query_block::add_table_to_list
sql_parse.cc: | | | | <Query_block::add_table_to_list
sql_parse.cc: 5940: | | | | >Query_block::add_joined_table
my_alloc.cc: 103: | | | | | >MEM_ROOT::AllocSlow
my_alloc.cc: 104: | | | | | | enter: root: 0x7f3f80002e38
my_alloc.cc: 58: | | | | | | >long unsigned int> MEM_ROOT::AllocBlock
my_alloc.cc: | | | | | | <long unsigned int> MEM_ROOT::AllocBlock
my_alloc.cc: | | | | | <MEM_ROOT::AllocSlow
sql_parse.cc: | | | | <Query_block::add_joined_table
sql_parse.cc: | | | <parse_sql
sql_error.cc: 357: | | | >Diagnostics_area::reset_diagnostics_area
sql_error.cc: | | | <Diagnostics_area::reset_diagnostics_area
my_alloc.cc: 166: | | | >MEM_ROOT::Clear
my_alloc.cc: 167: | | | | enter: root: 0x7f3f80003450
my_alloc.cc: | | | <MEM_ROOT::Clear
sql_audit.cc: 1084: | | | >mysql_audit_acquire_plugins
sql_audit.cc: | | | <mysql_audit_acquire_plugins
sql_rewrite.cc: 337: | | | >mysql_rewrite_query
sql_rewrite.cc: | | | <mysql_rewrite_query
sql_audit.cc: 1084: | | | >mysql_audit_acquire_plugins
sql_audit.cc: | | | <mysql_audit_acquire_plugins
resource_group_mgr.cc: 98: | | | >resourcegroups::Resource_group_mgr* resourcegroups::Resource_group_mgr::instance
resource_group_mgr.cc: | | | <resourcegroups::Resource_group_mgr* resourcegroups::Resource_group_mgr::instance
sql_parse.cc: 2718: | | | >mysql_execute_command
sql_error.cc: 357: | | | | >Diagnostics_area::reset_diagnostics_area
sql_error.cc: | | | | <Diagnostics_area::reset_diagnostics_area
my_alloc.cc: 166: | | | | >MEM_ROOT::Clear
my_alloc.cc: 167: | | | | | enter: root: 0x7f3f80002e90
my_alloc.cc: | | | | <MEM_ROOT::Clear
rpl_handler.cc: 1284: | | | | >launch_hook_trans_begin
rpl_handler.cc: 314: | | | | | THD::enter_stage: 'Executing hook on transaction begin.' /home/source_code/mysql-8.0.24/sql/rpl_handler.cc:1377
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
rpl_handler.cc: 150: | | | | | debug: is_empty: 1
rpl_handler.cc: 314: | | | | | THD::enter_stage: 'starting' /home/source_code/mysql-8.0.24/sql/rpl_handler.cc:1379
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
rpl_handler.cc: | | | | <launch_hook_trans_begin
sql_parse.cc: 1345: | | | | >deny_updates_if_read_only_option
sql_authorization.cc: 1876: | | | | | >check_readonly
sql_authorization.cc: | | | | | <check_readonly
sql_parse.cc: | | | | <deny_updates_if_read_only_option
opt_trace2server.cc: 140: | | | | >TABLE_LIST*, enum_sql_command, List<set_var_base>*, const char*, size_t, sp_printable*, const CHARSET_INFO*)
opt_trace.cc: 833: | | | | | >Opt_trace_context::start
opt_trace.cc: 918: | | | | | | opt: new stmt 0x7f3f8000ed30 support_I_S 0
opt_trace.cc: 1002: | | | | | | >Opt_trace_context::purge_stmts
opt_trace.cc: | | | | | | <Opt_trace_context::purge_stmts
opt_trace.cc: 1102: | | | | | | opt: rc 1048576 max_mem_size 1048576
opt_trace.cc: | | | | | <Opt_trace_context::start
opt_trace2server.cc: 422: | | | | | >{anonymous}::opt_trace_disable_if_no_tables_access
opt_trace2server.cc: | | | | | <{anonymous}::opt_trace_disable_if_no_tables_access
opt_trace2server.cc: | | | | <TABLE_LIST*, enum_sql_command, List<set_var_base>*, const char*, size_t, sp_printable*, const CHARSET_INFO*)
sql_parse.cc: 273: | | | | opt: (null): starting struct
sql_parse.cc: 273: | | | | opt: steps: starting struct
rpl_gtid_execution.cc: 444: | | | | >gtid_pre_statement_checks
rpl_gtid_execution.cc: 451: | | | | | info: gtid_next->type=0 owned_gtid.{sidno,gno}={0,0}
sql_parse.cc: 362: | | | | | >stmt_causes_implicit_commit
sql_parse.cc: | | | | | <stmt_causes_implicit_commit
rpl_gtid_execution.cc: 405: | | | | | >is_stmt_taking_table_wr_locks
rpl_gtid_execution.cc: | | | | | <is_stmt_taking_table_wr_locks
rpl_gtid_execution.cc: | | | | <gtid_pre_statement_checks
sql_parse.cc: 362: | | | | >stmt_causes_implicit_commit
sql_parse.cc: | | | | <stmt_causes_implicit_commit
rpl_gtid_execution.cc: 552: | | | | >gtid_pre_statement_post_implicit_commit_checks
rpl_gtid_execution.cc: 405: | | | | | >is_stmt_taking_table_wr_locks
rpl_gtid_execution.cc: | | | | | <is_stmt_taking_table_wr_locks
binlog.cc: 10598: | | | | | >THD::is_ddl_gtid_compatible
binlog.cc: 10615: | | | | | | info: SQLCOM_CREATE:0 CREATE-TMP:0 SELECT:1 SQLCOM_DROP:0 DROP-TMP:0 trx:0
binlog.cc: | | | | | <THD::is_ddl_gtid_compatible
rpl_gtid_execution.cc: | | | | <gtid_pre_statement_post_implicit_commit_checks
sql_audit.cc: 1084: | | | | >mysql_audit_acquire_plugins
sql_audit.cc: | | | | <mysql_audit_acquire_plugins
sql_base.cc: 7326: | | | | >open_temporary_tables
sql_base.cc: 7243: | | | | | >open_temporary_table
sql_base.cc: 7244: | | | | | | enter: table: 'dba'.'treenodes'
sql_base.cc: | | | | | <open_temporary_table
sql_base.cc: | | | | <open_temporary_tables
sql_select.cc: 480: | | | | >bool Sql_cmd_dml::execute
sql_timer.cc: 158: | | | | | >thd_timer_set
sql_timer.cc: | | | | | <thd_timer_set
sql_select.cc: 318: | | | | | >bool Sql_cmd_dml::prepare
sql_authorization.cc: 2386: | | | | | | >check_table_access
sql_authorization.cc: 2422: | | | | | | | info: table: treenodes derived: 0 view: 0
sql_authorization.cc: 2188: | | | | | | | >check_access
sql_authorization.cc: 2191: | | | | | | | | enter: db: dba want_access: 1 master_access: 2147483647
sql_authorization.cc: 314: | | | | | | | | THD::enter_stage: 'checking permissions' /home/source_code/mysql-8.0.24/sql/auth/sql_authorization.cc:2200
sql_profile.cc: 350: | | | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | | | <PROFILING::status_change
sql_security_ctx.cc: 320: | | | | | | | | >Security_context::check_access
sql_security_ctx.cc: | | | | | | | | <Security_context::check_access
sql_security_ctx.cc: 320: | | | | | | | | >Security_context::check_access
sql_security_ctx.cc: | | | | | | | | <Security_context::check_access
sql_authorization.cc: | | | | | | | <check_access
sql_authorization.cc: 3744: | | | | | | | >check_grant
sql_authorization.cc: | | | | | | | <check_grant
sql_authorization.cc: | | | | | | <check_table_access
sql_base.cc: 6692: | | | | | | >open_tables_for_query
sql_base.cc: 5735: | | | | | | | >open_tables
sql_base.cc: 314: | | | | | | | | THD::enter_stage: 'Opening tables' /home/source_code/mysql-8.0.24/sql/sql_base.cc:5761
sql_profile.cc: 350: | | | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | | | <PROFILING::status_change
sql_base.cc: 4894: | | | | | | | | >open_and_process_table
sql_base.cc: 4931: | | | | | | | | | tcache: opening table: 'dba'.'treenodes' item: 0x7f3f8000e3d0
sql_base.cc: 2794: | | | | | | | | | >open_table
ha_innodb.cc: 2795: | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <ha_innobase::update_thd
ha_innodb.cc: 2795: | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <ha_innobase::update_thd
handler.cc: 3901: | | | | | | | | | | >void handler::column_bitmaps_signal
handler.cc: 3903: | | | | | | | | | | | info: read_set: 0x7f3f8000fe28 write_set: 0x7f3f8000fe40
handler.cc: | | | | | | | | | | <void handler::column_bitmaps_signal
ha_innodb.cc: 2795: | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <ha_innobase::update_thd
sql_base.cc: | | | | | | | | | <open_table
ha_innodb.cc: 2795: | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | <ha_innobase::update_thd
sql_base.cc: | | | | | | | | <open_and_process_table
sql_audit.cc: 1084: | | | | | | | | >mysql_audit_acquire_plugins
sql_audit.cc: | | | | | | | | <mysql_audit_acquire_plugins
sql_base.cc: 6052: | | | | | | | | open_tables: returning: 0
sql_base.cc: | | | | | | | <open_tables
sql_base.cc: | | | | | | <open_tables_for_query
sql_resolver.cc: 171: | | | | | | >Query_block::prepare
sql_resolver.cc: 273: | | | | | | | opt: (null): starting struct
sql_resolver.cc: 273: | | | | | | | opt: join_preparation: starting struct
sql_resolver.cc: 328: | | | | | | | opt: select#: 1
sql_resolver.cc: 273: | | | | | | | opt: steps: starting struct
sql_resolver.cc: 1129: | | | | | | | >Query_block::setup_tables
sql_resolver.cc: | | | | | | | <Query_block::setup_tables
sql_resolver.cc: 1558: | | | | | | | >Query_block::setup_wild
sql_base.cc: 9205: | | | | | | | | >insert_fields
sql_base.cc: 9206: | | | | | | | | | arena: stmt arena: 0x7f3f800009c8
table.cc: 5159: | | | | | | | | | >Field_iterator_table_ref::set_field_iterator
table.cc: 5196: | | | | | | | | | | info: field_it for 'treenodes' is Field_iterator_table
table.cc: | | | | | | | | | <Field_iterator_table_ref::set_field_iterator
table.cc: 5454: | | | | | | | | | >TABLE::mark_column_used
table.cc: | | | | | | | | | <TABLE::mark_column_used
table.cc: 5454: | | | | | | | | | >TABLE::mark_column_used
table.cc: | | | | | | | | | <TABLE::mark_column_used
table.cc: 5454: | | | | | | | | | >TABLE::mark_column_used
table.cc: | | | | | | | | | <TABLE::mark_column_used
sql_base.cc: | | | | | | | | <insert_fields
sql_resolver.cc: | | | | | | | <Query_block::setup_wild
sql_resolver.cc: 2542: | | | | | | | info: setup_ref_array this 0x7f3f8000d4a8 5 : 0 0 3 1 1 0 0
sql_base.cc: 8904: | | | | | | | >setup_fields
sql_base.cc: 8923: | | | | | | | | info: thd->mark_used_columns: 1
sql_base.cc: 9057: | | | | | | | | info: thd->mark_used_columns: 1
sql_base.cc: | | | | | | | <setup_fields
sql_resolver.cc: 1614: | | | | | | | >Query_block::setup_conds
sql_resolver.cc: 1629: | | | | | | | | info: thd->mark_used_columns: 1
sql_resolver.cc: 1677: | | | | | | | | >Query_block::setup_join_cond
sql_resolver.cc: | | | | | | | | <Query_block::setup_join_cond
sql_resolver.cc: | | | | | | | <Query_block::setup_conds
sql_resolver.cc: 273: | | | | | | | opt: (null): starting struct
sql_resolver.cc: 286: | | | | | | | opt: (null): ending struct
sql_resolver.cc: 725: | | | | | | | >Query_block::apply_local_transforms
sql_resolver.cc: 1886: | | | | | | | | >Query_block::simplify_joins
sql_resolver.cc: | | | | | | | | <Query_block::simplify_joins
sql_optimizer.cc: 4697: | | | | | | | | >build_bitmap_for_nested_joins
sql_optimizer.cc: | | | | | | | | <build_bitmap_for_nested_joins
sql_resolver.cc: | | | | | | | <Query_block::apply_local_transforms
sql_resolver.cc: 286: | | | | | | | opt: steps: ending struct
sql_resolver.cc: 286: | | | | | | | opt: join_preparation: ending struct
sql_resolver.cc: 286: | | | | | | | opt: (null): ending struct
sql_resolver.cc: | | | | | | <Query_block::prepare
sql_select.cc: | | | | | <bool Sql_cmd_dml::prepare
sql_select.cc: 314: | | | | | THD::enter_stage: 'init' /home/source_code/mysql-8.0.24/sql/sql_select.cc:553
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
sql_base.cc: 6774: | | | | | >lock_tables
lock.cc: 323: | | | | | | >mysql_lock_tables
lock.cc: 152: | | | | | | | >lock_tables_check
lock.cc: | | | | | | | <lock_tables_check
lock.cc: 641: | | | | | | | >get_lock_data
lock.cc: 644: | | | | | | | | info: count 1
ha_innodb.cc: 2575: | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | <innobase_trx_init
lock.cc: 713: | | | | | | | | info: sql_lock->table_count 1 sql_lock->lock_count 0
lock.cc: | | | | | | | <get_lock_data
lock.cc: 314: | | | | | | | THD::enter_stage: 'System lock' /home/source_code/mysql-8.0.24/sql/lock.cc:331
sql_profile.cc: 350: | | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | | <PROFILING::status_change
lock.cc: 333: | | | | | | | info: thd->proc_info System lock
lock.cc: 378: | | | | | | | >lock_external
lock.cc: 380: | | | | | | | | info: count 1
handler.cc: 7747: | | | | | | | | >handler::ha_external_lock
ha_innodb.cc: 18109: | | | | | | | | | >int ha_innobase::external_lock
ha_innodb.cc: 18110: | | | | | | | | | | enter: lock_type: 0
ha_innodb.cc: 2795: | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <ha_innobase::update_thd
handler.cc: 1279: | | | | | | | | | | >trans_register_ha
handler.cc: 1280: | | | | | | | | | | | enter: stmt
transaction_info.h: 415: | | | | | | | | | | | >Ha_trx_info::register_ha
transaction_info.h: | | | | | | | | | | | <Ha_trx_info::register_ha
transaction_info.h: 282: | | | | | | | | | | | >Transaction_ctx::set_ha_trx_info
transaction_info.h: | | | | | | | | | | | <Transaction_ctx::set_ha_trx_info
rpl_gtid_execution.cc: 582: | | | | | | | | | | | >gtid_set_performance_schema_values
rpl_gtid_execution.cc: | | | | | | | | | | | <gtid_set_performance_schema_values
handler.cc: | | | | | | | | | | <trans_register_ha
ha_innodb.cc: | | | | | | | | | <int ha_innobase::external_lock
handler.cc: | | | | | | | | <handler::ha_external_lock
lock.cc: | | | | | | | <lock_external
thr_lock.cc: 900: | | | | | | | >thr_multi_lock
thr_lock.cc: 901: | | | | | | | | lock: data: 0x7f3f8000fc98 count: 0
thr_lock.cc: | | | | | | | <thr_multi_lock
lock.cc: | | | | | | <mysql_lock_tables
binlog.cc: 9906: | | | | | | >THD::decide_logging_format
binlog.cc: 9907: | | | | | | | info: query: select * from treenodes
binlog.cc: 9908: | | | | | | | info: variables.binlog_format: 2
sql_lex.h: 2776: | | | | | | | >Query_tables_list::get_stmt_unsafe_flags
sql_lex.h: | | | | | | | <Query_tables_list::get_stmt_unsafe_flags
binlog.cc: 9910: | | | | | | | info: lex->get_stmt_unsafe_flags(): 0x0
binlog.cc: 10008: | | | | | | | debug: prelocked_mode: LTM_NONE
binlog.cc: 10084: | | | | | | | info: table: treenodes; ha_table_flags: 0x8ffa8c00638496
sql_lex.h: 2911: | | | | | | | >Query_tables_list::set_stmt_accessed_table
sql_lex.h: | | | | | | | <Query_tables_list::set_stmt_accessed_table
binlog.cc: 10219: | | | | | | | info: flags_write_all_set: 0xc00000000
binlog.cc: 10220: | | | | | | | info: flags_write_some_set: 0x0
binlog.cc: 10222: | | | | | | | info: flags_access_some_set: 0x8ffa8c00638496
binlog.cc: 10223: | | | | | | | info: multi_write_engine: 0
binlog.cc: 10224: | | | | | | | info: multi_access_engine: 0
sql_lex.h: 2930: | | | | | | | >Query_tables_list::stmt_accessed_table
sql_lex.h: | | | | | | | <Query_tables_list::stmt_accessed_table
sql_lex.h: 2930: | | | | | | | >Query_tables_list::stmt_accessed_table
sql_lex.h: | | | | | | | <Query_tables_list::stmt_accessed_table
sql_lex.h: 2776: | | | | | | | >Query_tables_list::get_stmt_unsafe_flags
sql_lex.h: | | | | | | | <Query_tables_list::get_stmt_unsafe_flags
sql_lex.h: 2930: | | | | | | | >Query_tables_list::stmt_accessed_table
sql_lex.h: | | | | | | | <Query_tables_list::stmt_accessed_table
sql_lex.h: 2930: | | | | | | | >Query_tables_list::stmt_accessed_table
sql_lex.h: | | | | | | | <Query_tables_list::stmt_accessed_table
binlog.cc: 10658: | | | | | | | >THD::is_dml_gtid_compatible
binlog.cc: 10691: | | | | | | | | info: some_non_transactional_table=0 some_transactional_table=0 trans_has_updated_trans_table=0 non_transactional_tables_are_tmp=0 is_current_stmt_binlog_format_row=1
binlog.cc: | | | | | | | <THD::is_dml_gtid_compatible
binlog.cc: 10443: | | | | | | | info: decision: logging in ROW format
binlog.cc: | | | | | | <THD::decide_logging_format
sql_base.cc: | | | | | <lock_tables
sql_union.cc: 661: | | | | | >Query_expression::optimize
sql_select.cc: 1805: | | | | | | >Query_block::optimize
sql_optimizer.cc: 256: | | | | | | | >JOIN::optimize
sql_optimizer.cc: 314: | | | | | | | | THD::enter_stage: 'optimizing' /home/source_code/mysql-8.0.24/sql/sql_optimizer.cc:270
sql_profile.cc: 350: | | | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | | | <PROFILING::status_change
sql_optimizer.cc: 273: | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | opt: join_optimization: starting struct
sql_optimizer.cc: 328: | | | | | | | | opt: select#: 1
sql_optimizer.cc: 273: | | | | | | | | opt: steps: starting struct
sql_select.cc: 3780: | | | | | | | | >count_field_types
sql_select.cc: | | | | | | | | <count_field_types
sql_select.cc: 3961: | | | | | | | | >JOIN::alloc_func_list
sql_select.cc: | | | | | | | | <JOIN::alloc_func_list
sql_optimizer.cc: 10322: | | | | | | | | >get_sort_by_table
sql_optimizer.cc: | | | | | | | | <get_sort_by_table
sql_optimizer.cc: 314: | | | | | | | | THD::enter_stage: 'statistics' /home/source_code/mysql-8.0.24/sql/sql_optimizer.cc:534
sql_profile.cc: 350: | | | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | | | <PROFILING::status_change
sql_optimizer.cc: 4978: | | | | | | | | >JOIN::make_join_plan
ha_innodb.cc: 16718: | | | | | | | | | >int ha_innobase::info_low
ha_innodb.cc: 2795: | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <ha_innobase::update_thd
ha_innodb.cc: 10043: | | | | | | | | | | >dict_index_t* ha_innobase::innobase_get_index
ha_innodb.cc: | | | | | | | | | | <dict_index_t* ha_innobase::innobase_get_index
ha_innodb.cc: | | | | | | | | | <int ha_innobase::info_low
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: table_dependencies: starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 296: | | | | | | | | | opt: table: "`treenodes`"
sql_optimizer.cc: 309: | | | | | | | | | opt: row_may_be_null: 0
sql_optimizer.cc: 328: | | | | | | | | | opt: map_bit: 0
sql_optimizer.cc: 273: | | | | | | | | | opt: depends_on_map_bits: starting struct
sql_optimizer.cc: 286: | | | | | | | | | opt: depends_on_map_bits: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: table_dependencies: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: rows_estimation: starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 296: | | | | | | | | | opt: table: "`treenodes`"
sql_optimizer.cc: 273: | | | | | | | | | opt: table_scan: starting struct
sql_optimizer.cc: 328: | | | | | | | | | opt: rows: 17
sql_optimizer.cc: 339: | | | | | | | | | opt: cost: 0.25
sql_optimizer.cc: 286: | | | | | | | | | opt: table_scan: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: rows_estimation: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_planner.cc: 1912: | | | | | | | | | >Optimize_table_order::choose_table_order
sql_resolver.cc: 1732: | | | | | | | | | | >Query_block::reset_nj_counters
sql_resolver.cc: | | | | | | | | | | <Query_block::reset_nj_counters
sql_planner.cc: 273: | | | | | | | | | | opt: (null): starting struct
sql_planner.cc: 273: | | | | | | | | | | opt: considered_execution_plans: starting struct
sql_planner.cc: 2291: | | | | | | | | | | >Optimize_table_order::greedy_search
sql_planner.cc: 2688: | | | | | | | | | | | >Optimize_table_order::best_extension_by_limited_search
part_plan; idx: 0 best: DBL_MAX atime: 0 itime: 0 count: 1
POSITIONS:
BEST_REF: treenodes(17,17,0)
sql_planner.cc: 273: | | | | | | | | | | | | opt: (null): starting struct
sql_planner.cc: 273: | | | | | | | | | | | | opt: plan_prefix: starting struct
sql_planner.cc: 286: | | | | | | | | | | | | opt: plan_prefix: ending struct
sql_planner.cc: 296: | | | | | | | | | | | | opt: table: "`treenodes`"
sql_planner.cc: 981: | | | | | | | | | | | | >Optimize_table_order::best_access_path
sql_planner.cc: 273: | | | | | | | | | | | | | opt: best_access_path: starting struct
sql_planner.cc: 273: | | | | | | | | | | | | | opt: considered_access_paths: starting struct
sql_planner.cc: 273: | | | | | | | | | | | | | opt: (null): starting struct
sql_planner.cc: 328: | | | | | | | | | | | | | opt: rows_to_scan: 17
sql_planner.cc: 296: | | | | | | | | | | | | | opt: access_type: "scan"
sql_planner.cc: 339: | | | | | | | | | | | | | opt: resulting_rows: 17
sql_planner.cc: 339: | | | | | | | | | | | | | opt: cost: 1.95
sql_planner.cc: 309: | | | | | | | | | | | | | opt: chosen: 1
sql_planner.cc: 286: | | | | | | | | | | | | | opt: (null): ending struct
sql_planner.cc: 286: | | | | | | | | | | | | | opt: considered_access_paths: ending struct
sql_planner.cc: 286: | | | | | | | | | | | | | opt: best_access_path: ending struct
sql_planner.cc: | | | | | | | | | | | | <Optimize_table_order::best_access_path
sql_planner.cc: 339: | | | | | | | | | | | | opt: condition_filtering_pct: 100
sql_planner.cc: 339: | | | | | | | | | | | | opt: rows_for_plan: 17
sql_planner.cc: 339: | | | | | | | | | | | | opt: cost_for_plan: 1.95
sql_planner.cc: 309: | | | | | | | | | | | | opt: chosen: 1
full_plan; idx :1 best: 1.949 accumulated: 1.95 increment: 1.95 count: 17
POSITIONS: treenodes
BEST_POSITIONS: treenodes
BEST_REF: treenodes(17,17,0)
sql_planner.cc: 286: | | | | | | | | | | | | opt: (null): ending struct
sql_planner.cc: | | | | | | | | | | | <Optimize_table_order::best_extension_by_limited_search
optimal; idx :1 best: 1.949 accumulated: 0 increment: 0 count: 1
POSITIONS: treenodes
BEST_POSITIONS: treenodes
BEST_REF: treenodes(17,17,0)
sql_planner.cc: | | | | | | | | | | <Optimize_table_order::greedy_search
sql_planner.cc: 3332: | | | | | | | | | | >Optimize_table_order::fix_semijoin_strategies
sql_planner.cc: | | | | | | | | | | <Optimize_table_order::fix_semijoin_strategies
sql_planner.cc: 286: | | | | | | | | | | opt: considered_execution_plans: ending struct
sql_planner.cc: 286: | | | | | | | | | | opt: (null): ending struct
sql_planner.cc: | | | | | | | | | <Optimize_table_order::choose_table_order
sql_optimizer.cc: 2815: | | | | | | | | | >JOIN::get_best_combination
sql_optimizer.cc: | | | | | | | | | <JOIN::get_best_combination
sql_optimizer.cc: | | | | | | | | <JOIN::make_join_plan
sql_select.cc: 2006: | | | | | | | | >JOIN::init_ref_access
sql_select.cc: | | | | | | | | <JOIN::init_ref_access
sql_optimizer.cc: 314: | | | | | | | | THD::enter_stage: 'preparing' /home/source_code/mysql-8.0.24/sql/sql_optimizer.cc:618
sql_profile.cc: 350: | | | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | | | <PROFILING::status_change
sql_optimizer.cc: 9142: | | | | | | | | >make_join_query_block
sql_optimizer.cc: 6033: | | | | | | | | | >add_not_null_conds
sql_optimizer.cc: | | | | | | | | | <add_not_null_conds
WHERE:(constants) (nil)
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: attaching_conditions_to_tables: starting struct
sql_optimizer.cc: 346: | | | | | | | | | opt: original_condition: null
sql_optimizer.cc: 273: | | | | | | | | | opt: attached_conditions_computation: starting struct
WHERE:(treenodes) (nil)
sql_optimizer.cc: 8406: | | | | | | | | | >JOIN::attach_join_conditions
sql_optimizer.cc: | | | | | | | | | <JOIN::attach_join_conditions
sql_optimizer.cc: 286: | | | | | | | | | opt: attached_conditions_computation: ending struct
sql_optimizer.cc: 273: | | | | | | | | | opt: attached_conditions_summary: starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 296: | | | | | | | | | opt: table: "`treenodes`"
sql_optimizer.cc: 346: | | | | | | | | | opt: attached: null
sql_optimizer.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: attached_conditions_summary: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: attaching_conditions_to_tables: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: | | | | | | | | <make_join_query_block
sql_optimizer.cc: 1273: | | | | | | | | >JOIN::optimize_distinct_group_order
sql_optimizer.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | | opt: optimizing_distinct_group_by_order_by: starting struct
sql_optimizer.cc: 9724: | | | | | | | | | >JOIN::remove_const
sql_optimizer.cc: 273: | | | | | | | | | | opt: simplifying_order_by: starting struct
sql_optimizer.cc: 296: | | | | | | | | | | opt: original_clause: ""
sql_optimizer.cc: 273: | | | | | | | | | | opt: items: starting struct
sql_optimizer.cc: 4757: | | | | | | | | | | >JOIN::update_depend_map
sql_optimizer.cc: | | | | | | | | | | <JOIN::update_depend_map
sql_optimizer.cc: 9831: | | | | | | | | | | exit: simple_order: 1
sql_optimizer.cc: 286: | | | | | | | | | | opt: items: ending struct
sql_optimizer.cc: 309: | | | | | | | | | | opt: resulting_clause_is_simple: 1
sql_optimizer.cc: 296: | | | | | | | | | | opt: resulting_clause: ""
sql_optimizer.cc: 286: | | | | | | | | | | opt: simplifying_order_by: ending struct
sql_optimizer.cc: | | | | | | | | | <JOIN::remove_const
sql_optimizer.cc: 9724: | | | | | | | | | >JOIN::remove_const
sql_optimizer.cc: 273: | | | | | | | | | | opt: simplifying_group_by: starting struct
sql_optimizer.cc: 296: | | | | | | | | | | opt: original_clause: ""
sql_optimizer.cc: 273: | | | | | | | | | | opt: items: starting struct
sql_optimizer.cc: 4757: | | | | | | | | | | >JOIN::update_depend_map
sql_optimizer.cc: | | | | | | | | | | <JOIN::update_depend_map
sql_optimizer.cc: 9831: | | | | | | | | | | exit: simple_order: 1
sql_optimizer.cc: 286: | | | | | | | | | | opt: items: ending struct
sql_optimizer.cc: 309: | | | | | | | | | | opt: resulting_clause_is_simple: 1
sql_optimizer.cc: 296: | | | | | | | | | | opt: resulting_clause: ""
sql_optimizer.cc: 286: | | | | | | | | | | opt: simplifying_group_by: ending struct
sql_optimizer.cc: | | | | | | | | | <JOIN::remove_const
sql_select.cc: 3884: | | | | | | | | | >calc_group_buffer
sql_select.cc: | | | | | | | | | <calc_group_buffer
my_bitmap.cc: 140: | | | | | | | | | >bitmap_init
my_bitmap.cc: | | | | | | | | | <bitmap_init
sql_select.cc: 4009: | | | | | | | | | >JOIN::make_sum_func_list
sql_select.cc: | | | | | | | | | <JOIN::make_sum_func_list
sql_optimizer.cc: 286: | | | | | | | | | opt: optimizing_distinct_group_by_order_by: ending struct
sql_optimizer.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: | | | | | | | | <JOIN::optimize_distinct_group_order
sql_optimizer.cc: 1207: | | | | | | | | >JOIN::replace_index_subquery
sql_optimizer.cc: | | | | | | | | <JOIN::replace_index_subquery
sql_test.cc: 110: | | | | | | | | >TEST_join
Info about JOIN
treenodes type: ALL q_keys: 0 refs: 0 key: -1 len: 0
sql_test.cc: | | | | | | | | <TEST_join
sql_optimizer.cc: 1460: | | | | | | | | >JOIN::test_skip_sort
sql_optimizer.cc: | | | | | | | | <JOIN::test_skip_sort
sql_optimizer.cc: 273: | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | opt: finalizing_table_conditions: starting struct
sql_optimizer.cc: 286: | | | | | | | | opt: finalizing_table_conditions: ending struct
sql_optimizer.cc: 286: | | | | | | | | opt: (null): ending struct
sql_select.cc: 3128: | | | | | | | | >make_join_readinfo
sql_select.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_select.cc: 273: | | | | | | | | | opt: refine_plan: starting struct
sql_select.cc: 1337: | | | | | | | | | >setup_semijoin_dups_elimination
sql_select.cc: | | | | | | | | | <setup_semijoin_dups_elimination
sql_select.cc: 273: | | | | | | | | | opt: (null): starting struct
sql_select.cc: 296: | | | | | | | | | opt: table: "`treenodes`"
ha_innodb.cc: 16718: | | | | | | | | | >int ha_innobase::info_low
ha_innodb.cc: 2795: | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | <ha_innobase::update_thd
ha_innodb.cc: 10043: | | | | | | | | | | >dict_index_t* ha_innobase::innobase_get_index
ha_innodb.cc: | | | | | | | | | | <dict_index_t* ha_innobase::innobase_get_index
ha_innodb.cc: | | | | | | | | | <int ha_innobase::info_low
sql_select.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_select.cc: 286: | | | | | | | | | opt: refine_plan: ending struct
sql_select.cc: 286: | | | | | | | | | opt: (null): ending struct
sql_select.cc: | | | | | | | | <make_join_readinfo
sql_optimizer.cc: 273: | | | | | | | | opt: (null): starting struct
sql_optimizer.cc: 273: | | | | | | | | opt: considering_tmp_tables: starting struct
sql_select.cc: 4205: | | | | | | | | >JOIN::make_tmp_tables_info
sql_executor.cc: 637: | | | | | | | | | >JOIN::get_end_select_func
sql_executor.cc: 648: | | | | | | | | | | info: Using end_send
sql_executor.cc: | | | | | | | | | <JOIN::get_end_select_func
sql_select.cc: | | | | | | | | <JOIN::make_tmp_tables_info
sql_optimizer.cc: 286: | | | | | | | | opt: considering_tmp_tables: ending struct
sql_optimizer.cc: 286: | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: 961: | | | | | | | | >JOIN::push_to_engines
sql_optimizer.cc: | | | | | | | | <JOIN::push_to_engines
sql_select.cc: 3780: | | | | | | | | >count_field_types
sql_select.cc: | | | | | | | | <count_field_types
sql_optimizer.cc: 286: | | | | | | | | opt: steps: ending struct
sql_optimizer.cc: 286: | | | | | | | | opt: join_optimization: ending struct
sql_optimizer.cc: 286: | | | | | | | | opt: (null): ending struct
sql_optimizer.cc: | | | | | | | <JOIN::optimize
sql_select.cc: | | | | | | <Query_block::optimize
sql_union.cc: | | | | | <Query_expression::optimize
sql_union.cc: 1269: | | | | | >Query_expression::execute
sql_union.cc: 314: | | | | | | THD::enter_stage: 'executing' /home/source_code/mysql-8.0.24/sql/sql_union.cc:1126
sql_profile.cc: 350: | | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | | <PROFILING::status_change
sql_union.cc: 273: | | | | | | opt: (null): starting struct
sql_union.cc: 273: | | | | | | opt: join_execution: starting struct
sql_union.cc: 328: | | | | | | opt: select#: 1
sql_union.cc: 273: | | | | | | opt: steps: starting struct
sql_class.cc: 2489: | | | | | | >THD::send_result_metadata
protocol_classic.cc: 3059: | | | | | | | >bool Protocol_classic::start_result_metadata
protocol_classic.cc: 3060: | | | | | | | | info: num_cols 3, flags 5
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3fd82bbbd7 Bytes: (1)
03
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::start_result_metadata
protocol_classic.cc: 3248: | | | | | | | >bool Protocol_classic::send_field_metadata
protocol_classic.cc: | | | | | | | <bool Protocol_classic::send_field_metadata
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (47)
03 64 65 66 03 64 62 61 09 74 72 65 65 6E 6F 64 65 73 09 74 72 65 65 6E 6F 64
65 73 02 69 64 02 69 64 0C 3F 00 0B 00 00 00 03 03 50 00 00 00
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
protocol_classic.cc: 3248: | | | | | | | >bool Protocol_classic::send_field_metadata
protocol_classic.cc: | | | | | | | <bool Protocol_classic::send_field_metadata
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (59)
03 64 65 66 03 64 62 61 09 74 72 65 65 6E 6F 64 65 73 09 74 72 65 65 6E 6F 64
65 73 08 6E 6F 64 65 6E 61 6D 65 08 6E 6F 64 65 6E 61 6D 65 0C FF 00 50 00 00
00 FD 00 00 00 00 00
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
protocol_classic.cc: 3248: | | | | | | | >bool Protocol_classic::send_field_metadata
protocol_classic.cc: | | | | | | | <bool Protocol_classic::send_field_metadata
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (49)
03 64 65 66 03 64 62 61 09 74 72 65 65 6E 6F 64 65 73 09 74 72 65 65 6E 6F 64
65 73 03 70 69 64 03 70 69 64 0C 3F 00 0B 00 00 00 03 00 00 00 00 00
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
protocol_classic.cc: 3103: | | | | | | | >bool Protocol_classic::end_result_metadata
protocol_classic.cc: 3104: | | | | | | | | info: num_cols 3, flags 5
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_result_metadata
sql_class.cc: | | | | | | <THD::send_result_metadata
handler.cc: 2937: | | | | | | >handler::ha_rnd_init
ha_innodb.cc: 10441: | | | | | | | >int ha_innobase::rnd_init
ha_innodb.cc: 10084: | | | | | | | | >ha_innobase::change_active_index
ha_innodb.cc: 10043: | | | | | | | | | >dict_index_t* ha_innobase::innobase_get_index
ha_innodb.cc: | | | | | | | | | <dict_index_t* ha_innobase::innobase_get_index
ha_innodb.cc: | | | | | | | | <ha_innobase::change_active_index
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_init
handler.cc: | | | | | | <handler::ha_rnd_init
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10301: | | | | | | | | >int ha_innobase::index_first
ha_innodb.cc: 9860: | | | | | | | | | >int ha_innobase::index_read
row0sel.cc: 4457: | | | | | | | | | | >row_search_mvcc
row0sel.cc: 2976: | | | | | | | | | | | >row_sel_store_mysql_rec
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | <row_sel_store_mysql_rec
row0sel.cc: 2976: | | | | | | | | | | | >row_sel_store_mysql_rec
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | <row_sel_store_mysql_rec
row0sel.cc: 2976: | | | | | | | | | | | >row_sel_store_mysql_rec
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | <row_sel_store_mysql_rec
row0sel.cc: 2976: | | | | | | | | | | | >row_sel_store_mysql_rec
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | <row_sel_store_mysql_rec
row0sel.cc: 2976: | | | | | | | | | | | >row_sel_store_mysql_rec
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | <row_sel_store_mysql_rec
row0sel.cc: 2976: | | | | | | | | | | | >row_sel_store_mysql_rec
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: 2801: | | | | | | | | | | | | >row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | | <row_sel_store_mysql_field_func
row0sel.cc: | | | | | | | | | | | <row_sel_store_mysql_rec
row0sel.cc: | | | | | | | | | | <row_search_mvcc
ha_innodb.cc: | | | | | | | | | <int ha_innobase::index_read
ha_innodb.cc: | | | | | | | | <int ha_innobase::index_first
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
query_result.cc: 96: | | | | | | >bool Query_result_send::send_data
sql_class.cc: 2531: | | | | | | | >THD::send_result_set_row
sql_class.cc: | | | | | | | <THD::send_result_set_row
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (6)
01 31 01 41 01 30
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
query_result.cc: | | | | | | <bool Query_result_send::send_data
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10186: | | | | | | | | >ha_innobase::general_fetch
row0sel.cc: 4457: | | | | | | | | | >row_search_mvcc
row0sel.cc: | | | | | | | | | <row_search_mvcc
ha_innodb.cc: | | | | | | | | <ha_innobase::general_fetch
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
query_result.cc: 96: | | | | | | >bool Query_result_send::send_data
sql_class.cc: 2531: | | | | | | | >THD::send_result_set_row
sql_class.cc: | | | | | | | <THD::send_result_set_row
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (6)
01 32 01 42 01 31
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
query_result.cc: | | | | | | <bool Query_result_send::send_data
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10186: | | | | | | | | >ha_innobase::general_fetch
row0sel.cc: 4457: | | | | | | | | | >row_search_mvcc
row0sel.cc: | | | | | | | | | <row_search_mvcc
ha_innodb.cc: | | | | | | | | <ha_innobase::general_fetch
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
query_result.cc: 96: | | | | | | >bool Query_result_send::send_data
sql_class.cc: 2531: | | | | | | | >THD::send_result_set_row
sql_class.cc: | | | | | | | <THD::send_result_set_row
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (6)
01 33 01 43 01 31
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
query_result.cc: | | | | | | <bool Query_result_send::send_data
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10186: | | | | | | | | >ha_innobase::general_fetch
row0sel.cc: 4457: | | | | | | | | | >row_search_mvcc
row0sel.cc: | | | | | | | | | <row_search_mvcc
ha_innodb.cc: | | | | | | | | <ha_innobase::general_fetch
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
query_result.cc: 96: | | | | | | >bool Query_result_send::send_data
sql_class.cc: 2531: | | | | | | | >THD::send_result_set_row
sql_class.cc: | | | | | | | <THD::send_result_set_row
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (6)
01 34 01 44 01 32
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
query_result.cc: | | | | | | <bool Query_result_send::send_data
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10186: | | | | | | | | >ha_innobase::general_fetch
row0sel.cc: 4457: | | | | | | | | | >row_search_mvcc
row0sel.cc: | | | | | | | | | <row_search_mvcc
ha_innodb.cc: | | | | | | | | <ha_innobase::general_fetch
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
query_result.cc: 96: | | | | | | >bool Query_result_send::send_data
sql_class.cc: 2531: | | | | | | | >THD::send_result_set_row
sql_class.cc: | | | | | | | <THD::send_result_set_row
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (6)
01 35 01 45 01 32
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
query_result.cc: | | | | | | <bool Query_result_send::send_data
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10186: | | | | | | | | >ha_innobase::general_fetch
row0sel.cc: 4457: | | | | | | | | | >row_search_mvcc复制
MVCC 快照读
ha_innodb.cc: | | | | | | | | <ha_innobase::general_fetch
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
query_result.cc: 96: | | | | | | >bool Query_result_send::send_data
sql_class.cc: 2531: | | | | | | | >THD::send_result_set_row
sql_class.cc: | | | | | | | <THD::send_result_set_row
protocol_classic.cc: 3341: | | | | | | | >bool Protocol_classic::end_row
protocol_classic.cc: 436: | | | | | | | | net write: Memory: 0x7f3f80013610 Bytes: (8)
02 31 37 01 51 02 31 35
viosocket.cc: 305: | | | | | | | | >vio_is_blocking
viosocket.cc: | | | | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
net_serv.cc: 936: | | | | | | | | >net_write_buff
net_serv.cc: | | | | | | | | <net_write_buff
protocol_classic.cc: | | | | | | | <bool Protocol_classic::end_row
query_result.cc: | | | | | | <bool Query_result_send::send_data
handler.cc: 2978: | | | | | | >handler::ha_rnd_next
ha_innodb.cc: 10472: | | | | | | | >int ha_innobase::rnd_next
ha_innodb.cc: 10186: | | | | | | | | >ha_innobase::general_fetch
row0sel.cc: 4457: | | | | | | | | | >row_search_mvcc
row0sel.cc: | | | | | | | | | <row_search_mvcc
ha_innodb.cc: | | | | | | | | <ha_innobase::general_fetch
ha_innodb.cc: | | | | | | | <int ha_innobase::rnd_next
handler.cc: | | | | | | <handler::ha_rnd_next
sql_select.cc: 3528: | | | | | | >JOIN::join_free
sql_select.cc: 3590: | | | | | | | >JOIN::cleanup
handler.cc: 2954: | | | | | | | | >handler::ha_rnd_end
ha_innodb.cc: 9738: | | | | | | | | | >int ha_innobase::index_end
handler.cc: 6618: | | | | | | | | | | >DsMrr_impl::dsmrr_close
handler.cc: | | | | | | | | | | <DsMrr_impl::dsmrr_close
ha_innodb.cc: | | | | | | | | | <int ha_innobase::index_end
handler.cc: | | | | | | | | <handler::ha_rnd_end
sql_base.cc: 1113: | | | | | | | | >free_io_cache
sql_base.cc: | | | | | | | | <free_io_cache
filesort.cc: 661: | | | | | | | | >filesort_free_buffers
filesort.cc: | | | | | | | | <filesort_free_buffers
sql_select.cc: | | | | | | | <JOIN::cleanup
lock.cc: 432: | | | | | | | >mysql_unlock_read_tables
lock.cc: 608: | | | | | | | | >unlock_external
handler.cc: 7747: | | | | | | | | | >handler::ha_external_lock
ha_innodb.cc: 18109: | | | | | | | | | | >int ha_innobase::external_lock
ha_innodb.cc: 18110: | | | | | | | | | | | enter: lock_type: 2
ha_innodb.cc: 2795: | | | | | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <ha_innobase::update_thd
ha_innodb.cc: 5470: | | | | | | | | | | | >innobase_commit
ha_innodb.cc: 5472: | | | | | | | | | | | | trans: ending transaction
ha_innodb.cc: 2575: | | | | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | | | | <innobase_commit
ha_innodb.cc: | | | | | | | | | | <int ha_innobase::external_lock
handler.cc: | | | | | | | | | <handler::ha_external_lock
lock.cc: | | | | | | | | <unlock_external
lock.cc: | | | | | | | <mysql_unlock_read_tables
sql_select.cc: | | | | | | <JOIN::join_free
sql_error.cc: 394: | | | | | | >Diagnostics_area::set_eof_status
sql_error.cc: | | | | | | <Diagnostics_area::set_eof_status
sql_union.cc: 286: | | | | | | opt: steps: ending struct
sql_union.cc: 286: | | | | | | opt: join_execution: ending struct
sql_union.cc: 286: | | | | | | opt: (null): ending struct
sql_union.cc: | | | | | <Query_expression::execute
sql_select.cc: 314: | | | | | THD::enter_stage: 'end' /home/source_code/mysql-8.0.24/sql/sql_select.cc:586
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
sql_union.cc: 1294: | | | | | >Query_expression::cleanup
sql_select.cc: 3590: | | | | | | >JOIN::cleanup
sql_base.cc: 1113: | | | | | | | >free_io_cache
sql_base.cc: | | | | | | | <free_io_cache
filesort.cc: 661: | | | | | | | >filesort_free_buffers
filesort.cc: | | | | | | | <filesort_free_buffers
sql_select.cc: | | | | | | <JOIN::cleanup
sql_union.cc: | | | | | <Query_expression::cleanup
sql_timer.cc: 222: | | | | | >thd_timer_reset
sql_timer.cc: | | | | | <thd_timer_reset
sql_select.cc: | | | | <bool Sql_cmd_dml::execute
sql_parse.cc: 314: | | | | THD::enter_stage: 'query end' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:4542
sql_profile.cc: 350: | | | | >PROFILING::status_change
sql_profile.cc: | | | | <PROFILING::status_change
sql_audit.cc: 1084: | | | | >mysql_audit_acquire_plugins
sql_audit.cc: | | | | <mysql_audit_acquire_plugins
transaction.cc: 513: | | | | >trans_commit_stmt
transaction.cc: 130: | | | | | debug: add_unsafe_rollback_flags: 0
transaction.cc: 314: | | | | | THD::enter_stage: 'waiting for handler commit' /home/source_code/mysql-8.0.24/sql/handler.cc:1594
sql_profile.cc: 350: | | | | | >PROFILING::status_change
sql_profile.cc: | | | | | <PROFILING::status_change
handler.cc: 1519: | | | | | >bool> commit_owned_gtids
handler.cc: | | | | | <bool> commit_owned_gtids
handler.cc: 1624: | | | | | >ha_commit_trans
handler.cc: 1627: | | | | | | info: all=0 thd->in_sub_stmt=0 ha_info=0x7f3f80002028 is_real_trans=1
binlog.cc: 7932: | | | | | | >TC_LOG::enum_result MYSQL_BIN_LOG::commit
binlog.cc: 7934: | | | | | | | info: query='select * from treenodes'
binlog.cc: 7945: | | | | | | | enter: thd: 0x7f3f800009c0, all: no, xid: 523630, cache_mngr: 0x0
handler.cc: 1866: | | | | | | | >ha_commit_low
rpl_slave_commit_order_manager.cc: 422: | | | | | | | | >bool Commit_order_manager::get_rollback_status
rpl_slave_commit_order_manager.cc: | | | | | | | | <bool Commit_order_manager::get_rollback_status
ha_innodb.cc: 5470: | | | | | | | | >innobase_commit
ha_innodb.cc: 5472: | | | | | | | | | trans: ending transaction
ha_innodb.cc: 2575: | | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | | <innobase_commit
transaction_info.h: 436: | | | | | | | | >Ha_trx_info::reset
transaction_info.h: | | | | | | | | <Ha_trx_info::reset
transaction_info.h: 358: | | | | | | | | >Transaction_ctx::reset_scope
transaction_info.h: | | | | | | | | <Transaction_ctx::reset_scope
handler.cc: | | | | | | | <ha_commit_low
binlog.cc: | | | | | | <TC_LOG::enum_result MYSQL_BIN_LOG::commit
transaction_info.h: 224: | | | | | | >Transaction_ctx::cleanup
rpl_transaction_ctx.cc: 43: | | | | | | | >Rpl_transaction_ctx::cleanup
rpl_transaction_ctx.cc: | | | | | | | <Rpl_transaction_ctx::cleanup
rpl_transaction_write_set_ctx.cc: 103: | | | | | | | >Rpl_transaction_write_set_ctx::reset_state
rpl_transaction_write_set_ctx.cc: 110: | | | | | | | | >Rpl_transaction_write_set_ctx::clear_write_set
rpl_transaction_write_set_ctx.cc: | | | | | | | | <Rpl_transaction_write_set_ctx::clear_write_set
rpl_transaction_write_set_ctx.cc: | | | | | | | <Rpl_transaction_write_set_ctx::reset_state
my_alloc.cc: 184: | | | | | | | >MEM_ROOT::ClearForReuse
my_alloc.cc: | | | | | | | <MEM_ROOT::ClearForReuse
transaction_info.h: | | | | | | <Transaction_ctx::cleanup
handler.cc: | | | | | <ha_commit_trans
rpl_context.cc: 69: | | | | | >bool Session_consistency_gtids_ctx::notify_after_transaction_commit
rpl_context.cc: | | | | | <bool Session_consistency_gtids_ctx::notify_after_transaction_commit
transaction.cc: 134: | | | | | debug: reset_unsafe_rollback_flags
transaction.cc: | | | | <trans_commit_stmt
sql_union.cc: 1294: | | | | >Query_expression::cleanup
sql_base.cc: 1113: | | | | | >free_io_cache
sql_base.cc: | | | | | <free_io_cache
filesort.cc: 661: | | | | | >filesort_free_buffers
filesort.cc: | | | | | <filesort_free_buffers
sql_union.cc: | | | | <Query_expression::cleanup
sql_parse.cc: 314: | | | | THD::enter_stage: 'closing tables' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:4593
sql_profile.cc: 350: | | | | >PROFILING::status_change
sql_profile.cc: | | | | <PROFILING::status_change
sql_base.cc: 1531: | | | | >close_thread_tables
sql_base.cc: 1565: | | | | | tcache: table: 'treenodes' query_id: 0
ha_innodb.cc: 2795: | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | <ha_innobase::update_thd
table.cc: 7512: | | | | | >TABLE::cleanup_partial_update
table.cc: | | | | | <TABLE::cleanup_partial_update
binlog.cc: 11230: | | | | | >THD::binlog_flush_pending_rows_event
binlog.cc: | | | | | <THD::binlog_flush_pending_rows_event
binlog.cc: 11230: | | | | | >THD::binlog_flush_pending_rows_event
binlog.cc: | | | | | <THD::binlog_flush_pending_rows_event
lock.cc: 406: | | | | | >mysql_unlock_tables
lock.cc: | | | | | <mysql_unlock_tables
sql_base.cc: 1400: | | | | | info: thd->open_tables: 0x7f3f8000fcd0
sql_base.cc: 1712: | | | | | >close_thread_table
ha_innodb.cc: 2795: | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | <ha_innobase::update_thd
handler.cc: 7789: | | | | | | >handler::ha_reset
sql_base.cc: 1113: | | | | | | | >free_io_cache
sql_base.cc: | | | | | | | <free_io_cache
ha_innodb.cc: 2795: | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | <ha_innobase::update_thd
ha_innodb.cc: 2795: | | | | | | | >ha_innobase::update_thd
ha_innodb.cc: 2797: | | | | | | | | ha_innobase::update_thd: user_thd: 0x7f3f800009c0 -> 0x7f3f800009c0
ha_innodb.cc: 2575: | | | | | | | | >innobase_trx_init
ha_innodb.cc: | | | | | | | | <innobase_trx_init
ha_innodb.cc: | | | | | | | <ha_innobase::update_thd
handler.cc: 6629: | | | | | | | >DsMrr_impl::reset
handler.cc: | | | | | | | <DsMrr_impl::reset
handler.cc: | | | | | | <handler::ha_reset
sql_base.cc: | | | | | <close_thread_table
sql_base.cc: | | | | <close_thread_tables
sql_class.cc: 1645: | | | | >THD::rollback_item_tree_changes
sql_class.cc: | | | | <THD::rollback_item_tree_changes
sql_parse.cc: 362: | | | | >stmt_causes_implicit_commit
sql_parse.cc: | | | | <stmt_causes_implicit_commit
mdl.cc: 4490: | | | | >MDL_context::release_transactional_locks
mdl.cc: 4219: | | | | | >MDL_context::release_locks_stored_before
mdl.cc: | | | | | <MDL_context::release_locks_stored_before
mdl.cc: 4219: | | | | | >MDL_context::release_locks_stored_before
mdl.cc: 4228: | | | | | | info: found lock to release ticket=0x7f3f8000f9a0
mdl.cc: 4087: | | | | | | >MDL_context::release_lock
mdl.cc: 4088: | | | | | | | enter: db=dba name=treenodes
mdl.cc: | | | | | | <MDL_context::release_lock
mdl.cc: | | | | | <MDL_context::release_locks_stored_before
mdl.cc: | | | | <MDL_context::release_transactional_locks
sql_parse.cc: 2645: | | | | >binlog_gtid_end_transaction
sql_parse.cc: 362: | | | | | >stmt_causes_implicit_commit
sql_parse.cc: | | | | | <stmt_causes_implicit_commit
sql_parse.cc: | | | | <binlog_gtid_end_transaction
sql_parse.cc: 286: | | | | opt: steps: ending struct
sql_parse.cc: 286: | | | | opt: (null): ending struct
opt_trace2server.cc: 239: | | | | >Opt_trace_start::~Opt_trace_start
Complete optimizer trace:
opt_trace.cc: 1002: | | | | | >Opt_trace_context::purge_stmts
opt_trace.cc: | | | | | <Opt_trace_context::purge_stmts
opt_trace2server.cc: | | | | <Opt_trace_start::~Opt_trace_start
sql_parse.cc: | | | <mysql_execute_command
sql_parse.cc: 314: | | | THD::enter_stage: 'freeing items' /home/source_code/mysql-8.0.24/sql/sql_parse.cc:5042
sql_profile.cc: 350: | | | >PROFILING::status_change
sql_profile.cc: | | | <PROFILING::status_change
sql_class.cc: 1688: | | | >THD::end_statement
sql_lex.cc: 533: | | | | >lex_end
sql_lex.cc: 534: | | | | | enter: lex: 0x7f3f80003920
sql_lex.cc: | | | | <lex_end
sql_class.cc: | | | <THD::end_statement
sql_parse.cc: 1179: | | | >cleanup_items
item.cc: 5475: | | | | >void Item_field::cleanup
item.cc: | | | | <void Item_field::cleanup
item.cc: 5475: | | | | >void Item_field::cleanup
item.cc: | | | | <void Item_field::cleanup
item.cc: 5475: | | | | >void Item_field::cleanup
item.cc: | | | | <void Item_field::cleanup
item.cc: 5475: | | | | >void Item_field::cleanup
item.cc: | | | | <void Item_field::cleanup
sql_parse.cc: | | | <cleanup_items
sql_class.cc: 1666: | | | >Query_arena::free_items
sql_class.cc: | | | <Query_arena::free_items
sql_parse.cc: | | <dispatch_sql_command
sql_parse.cc: 1942: | | info: query ready
sql_class.cc: 2545: | | >THD::send_statement_status
protocol_classic.cc: 1315: | | | >bool Protocol_classic::send_eof
protocol_classic.cc: 875: | | | | >net_send_ok
protocol_classic.cc: 911: | | | | | info: affected_rows: 0 id: 0 status: 34 warning_count: 0
protocol_classic.cc: 436: | | | | | net write: Memory: 0x7f3fd82bd5e0 Bytes: (7)
FE 00 00 22 00 00 00
viosocket.cc: 305: | | | | | >vio_is_blocking
viosocket.cc: | | | | | <vio_is_blocking
net_serv.cc: 936: | | | | | >net_write_buff
net_serv.cc: | | | | | <net_write_buff
net_serv.cc: 283: | | | | | >net_flush
net_serv.cc: 1288: | | | | | | >net_write_packet
viosocket.cc: 215: | | | | | | | >vio_write
viosocket.cc: | | | | | | | <vio_write
net_serv.cc: | | | | | | <net_write_packet
net_serv.cc: | | | | | <net_flush
protocol_classic.cc: 967: | | | | | info: OK sent, so no more error sending allowed
protocol_classic.cc: | | | | <net_send_ok
protocol_classic.cc: | | | <bool Protocol_classic::send_eof
sql_class.cc: | | <THD::send_statement_status
rpl_context.cc: 144: | | >bool Session_consistency_gtids_ctx::notify_after_response_packet
rpl_context.cc: | | <bool Session_consistency_gtids_ctx::notify_after_response_packet
sql_audit.cc: 1084: | | >mysql_audit_acquire_plugins
sql_audit.cc: | | <mysql_audit_acquire_plugins
sql_audit.cc: 1084: | | >mysql_audit_acquire_plugins
sql_audit.cc: | | <mysql_audit_acquire_plugins
sql_audit.cc: 1084: | | >mysql_audit_acquire_plugins
sql_audit.cc: | | <mysql_audit_acquire_plugins
log.cc: 1598: | | >log_slow_applicable
log.cc: | | <log_slow_applicable复制