@@ -106,27 +106,44 @@ func (s *testTableSuite) TestStmtSummaryTable(c *C) {
106
106
tk .MustExec ("/**/insert into t values(4, 'd')" )
107
107
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
108
108
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
109
- max_prewrite_regions, avg_affected_rows, query_sample_text
109
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
110
110
from performance_schema.events_statements_summary_by_digest
111
111
where digest_text like 'insert into t%'` ,
112
- ).Check (testkit .Rows ("insert test test.t <nil> 4 0 0 0 0 0 2 2 1 1 1 /**/ insert into t values(4 , 'd') " ))
112
+ ).Check (testkit .Rows ("insert test test.t <nil> 4 0 0 0 0 0 2 2 1 1 1 insert into t values(1 , 'a') " ))
113
113
114
114
// Test SELECT.
115
+ const failpointName = "github.com/pingcap/tidb/planner/core/mockPlanRowCount"
116
+ c .Assert (failpoint .Enable (failpointName , "return(100)" ), IsNil )
117
+ defer func () { c .Assert (failpoint .Disable (failpointName ), IsNil ) }()
115
118
tk .MustQuery ("select * from t where a=2" )
116
119
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
117
120
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
118
- max_prewrite_regions, avg_affected_rows, query_sample_text
121
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
119
122
from performance_schema.events_statements_summary_by_digest
120
123
where digest_text like 'select * from t%'` ,
121
- ).Check (testkit .Rows ("select test test.t t:k 1 2 0 0 0 0 0 0 0 0 0 select * from t where a=2" ))
124
+ ).Check (testkit .Rows ("select test test.t t:k 1 2 0 0 0 0 0 0 0 0 0 select * from t where a=2 \t IndexLookUp_10\t root\t 100\t \n " +
125
+ "\t ├─IndexScan_8 \t cop \t 100\t table:t, index:a, range:[2,2], keep order:false, stats:pseudo\n " +
126
+ "\t └─TableScan_9 \t cop \t 100\t table:t, keep order:false, stats:pseudo" ))
122
127
123
128
// select ... order by
124
129
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
125
130
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
126
- max_prewrite_regions, avg_affected_rows, query_sample_text
131
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
127
132
from performance_schema.events_statements_summary_by_digest
128
133
order by exec_count desc limit 1` ,
129
- ).Check (testkit .Rows ("insert test test.t <nil> 4 0 0 0 0 0 2 2 1 1 1 /**/insert into t values(4, 'd')" ))
134
+ ).Check (testkit .Rows ("insert test test.t <nil> 4 0 0 0 0 0 2 2 1 1 1 insert into t values(1, 'a') " ))
135
+
136
+ // Test different plans with same digest.
137
+ c .Assert (failpoint .Enable (failpointName , "return(1000)" ), IsNil )
138
+ tk .MustQuery ("select * from t where a=3" )
139
+ tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
140
+ max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
141
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
142
+ from performance_schema.events_statements_summary_by_digest
143
+ where digest_text like 'select * from t%'` ,
144
+ ).Check (testkit .Rows ("select test test.t t:k 2 4 0 0 0 0 0 0 0 0 0 select * from t where a=2 \t IndexLookUp_10\t root\t 100\t \n " +
145
+ "\t ├─IndexScan_8 \t cop \t 100\t table:t, index:a, range:[2,2], keep order:false, stats:pseudo\n " +
146
+ "\t └─TableScan_9 \t cop \t 100\t table:t, keep order:false, stats:pseudo" ))
130
147
131
148
// Disable it again.
132
149
tk .MustExec ("set global tidb_enable_stmt_summary = false" )
@@ -141,7 +158,7 @@ func (s *testTableSuite) TestStmtSummaryTable(c *C) {
141
158
// The table should be cleared.
142
159
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
143
160
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
144
- max_prewrite_regions, avg_affected_rows, query_sample_text
161
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
145
162
from performance_schema.events_statements_summary_by_digest` ,
146
163
).Check (testkit .Rows ())
147
164
@@ -153,24 +170,26 @@ func (s *testTableSuite) TestStmtSummaryTable(c *C) {
153
170
tk .MustExec ("commit" )
154
171
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
155
172
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
156
- max_prewrite_regions, avg_affected_rows, query_sample_text, prev_sample_text
173
+ max_prewrite_regions, avg_affected_rows, query_sample_text, prev_sample_text, plan
157
174
from performance_schema.events_statements_summary_by_digest
158
175
where digest_text like 'insert into t%'` ,
159
- ).Check (testkit .Rows ("insert test test.t <nil> 1 0 0 0 0 0 0 0 0 0 1 insert into t values(1, 'a') " ))
176
+ ).Check (testkit .Rows ("insert test test.t <nil> 1 0 0 0 0 0 0 0 0 0 1 insert into t values(1, 'a') " ))
160
177
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
161
178
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
162
- max_prewrite_regions, avg_affected_rows, query_sample_text, prev_sample_text
179
+ max_prewrite_regions, avg_affected_rows, query_sample_text, prev_sample_text, plan
163
180
from performance_schema.events_statements_summary_by_digest
164
181
where digest_text='commit'` ,
165
- ).Check (testkit .Rows ("commit test <nil> <nil> 1 0 0 0 0 0 2 2 1 1 0 commit insert into t values(1, 'a')" ))
182
+ ).Check (testkit .Rows ("commit test <nil> <nil> 1 0 0 0 0 0 2 2 1 1 0 commit insert into t values(1, 'a') " ))
166
183
167
184
tk .MustQuery ("select * from t where a=2" )
168
185
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
169
186
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
170
- max_prewrite_regions, avg_affected_rows, query_sample_text
187
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
171
188
from performance_schema.events_statements_summary_by_digest
172
189
where digest_text like 'select * from t%'` ,
173
- ).Check (testkit .Rows ("select test test.t t:k 1 2 0 0 0 0 0 0 0 0 0 select * from t where a=2" ))
190
+ ).Check (testkit .Rows ("select test test.t t:k 1 2 0 0 0 0 0 0 0 0 0 select * from t where a=2 \t IndexLookUp_10\t root\t 1000\t \n " +
191
+ "\t ├─IndexScan_8 \t cop \t 1000\t table:t, index:a, range:[2,2], keep order:false, stats:pseudo\n " +
192
+ "\t └─TableScan_9 \t cop \t 1000\t table:t, keep order:false, stats:pseudo" ))
174
193
175
194
// Disable it in global scope.
176
195
tk .MustExec ("set global tidb_enable_stmt_summary = off" )
@@ -183,10 +202,12 @@ func (s *testTableSuite) TestStmtSummaryTable(c *C) {
183
202
// Statement summary is still enabled.
184
203
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
185
204
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
186
- max_prewrite_regions, avg_affected_rows, query_sample_text
205
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
187
206
from performance_schema.events_statements_summary_by_digest
188
207
where digest_text like 'select * from t%'` ,
189
- ).Check (testkit .Rows ("select test test.t t:k 2 4 0 0 0 0 0 0 0 0 0 select * from t where a=2" ))
208
+ ).Check (testkit .Rows ("select test test.t t:k 2 4 0 0 0 0 0 0 0 0 0 select * from t where a=2 \t IndexLookUp_10\t root\t 1000\t \n " +
209
+ "\t ├─IndexScan_8 \t cop \t 1000\t table:t, index:a, range:[2,2], keep order:false, stats:pseudo\n " +
210
+ "\t └─TableScan_9 \t cop \t 1000\t table:t, keep order:false, stats:pseudo" ))
190
211
191
212
// Unset session variable.
192
213
tk .MustExec ("set session tidb_enable_stmt_summary = ''" )
@@ -195,7 +216,7 @@ func (s *testTableSuite) TestStmtSummaryTable(c *C) {
195
216
// Statement summary is disabled.
196
217
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
197
218
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
198
- max_prewrite_regions, avg_affected_rows, query_sample_text
219
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
199
220
from performance_schema.events_statements_summary_by_digest` ,
200
221
).Check (testkit .Rows ())
201
222
}
@@ -232,15 +253,15 @@ func (s *testTableSuite) TestStmtSummaryHistoryTable(c *C) {
232
253
tk .MustExec ("/**/insert into t values(4, 'd')" )
233
254
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
234
255
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
235
- max_prewrite_regions, avg_affected_rows, query_sample_text
256
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
236
257
from performance_schema.events_statements_summary_by_digest_history
237
258
where digest_text like 'insert into t%'` ,
238
- ).Check (testkit .Rows ("insert test test.t <nil> 4 0 0 0 0 0 2 2 1 1 1 /**/ insert into t values(4 , 'd') " ))
259
+ ).Check (testkit .Rows ("insert test test.t <nil> 4 0 0 0 0 0 2 2 1 1 1 insert into t values(1 , 'a') " ))
239
260
240
261
tk .MustExec ("set global tidb_stmt_summary_history_size = 0" )
241
262
tk .MustQuery (`select stmt_type, schema_name, table_names, index_names, exec_count, cop_task_num, avg_total_keys,
242
263
max_total_keys, avg_processed_keys, max_processed_keys, avg_write_keys, max_write_keys, avg_prewrite_regions,
243
- max_prewrite_regions, avg_affected_rows, query_sample_text
264
+ max_prewrite_regions, avg_affected_rows, query_sample_text, plan
244
265
from performance_schema.events_statements_summary_by_digest_history` ,
245
266
).Check (testkit .Rows ())
246
267
}
0 commit comments