|
251 | 251 | {
|
252 | 252 | "SQL": "explain format = 'brief' select count(*) from fact_t, d1_t where fact_t.d1_k = d1_t.d1_k",
|
253 | 253 | "Plan": [
|
254 |
| - "HashAgg 1.00 root funcs:count(Column#12)->Column#11", |
255 |
| - "└─TableReader 1.00 root data:ExchangeSender", |
256 |
| - " └─ExchangeSender 1.00 batchCop[tiflash] ExchangeType: PassThrough", |
257 |
| - " └─HashAgg 1.00 batchCop[tiflash] funcs:count(1)->Column#12", |
258 |
| - " └─HashJoin 8.00 batchCop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)]", |
259 |
| - " ├─ExchangeReceiver(Build) 2.00 batchCop[tiflash] ", |
260 |
| - " │ └─ExchangeSender 2.00 batchCop[tiflash] ExchangeType: Broadcast", |
261 |
| - " │ └─Selection 2.00 batchCop[tiflash] not(isnull(test.d1_t.d1_k))", |
262 |
| - " │ └─TableFullScan 2.00 batchCop[tiflash] table:d1_t keep order:false", |
263 |
| - " └─Selection(Probe) 8.00 batchCop[tiflash] not(isnull(test.fact_t.d1_k))", |
264 |
| - " └─TableFullScan 8.00 batchCop[tiflash] table:fact_t keep order:false" |
| 254 | + "StreamAgg 1.00 root funcs:count(1)->Column#11", |
| 255 | + "└─TableReader 8.00 root data:ExchangeSender", |
| 256 | + " └─ExchangeSender 8.00 cop[tiflash] ExchangeType: PassThrough", |
| 257 | + " └─HashJoin 8.00 cop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)]", |
| 258 | + " ├─ExchangeReceiver(Build) 2.00 cop[tiflash] ", |
| 259 | + " │ └─ExchangeSender 2.00 cop[tiflash] ExchangeType: Broadcast", |
| 260 | + " │ └─Selection 2.00 cop[tiflash] not(isnull(test.d1_t.d1_k))", |
| 261 | + " │ └─TableFullScan 2.00 cop[tiflash] table:d1_t keep order:false", |
| 262 | + " └─Selection(Probe) 8.00 cop[tiflash] not(isnull(test.fact_t.d1_k))", |
| 263 | + " └─TableFullScan 8.00 cop[tiflash] table:fact_t keep order:false" |
265 | 264 | ]
|
266 | 265 | },
|
267 | 266 | {
|
268 | 267 | "SQL": "explain format = 'brief' select count(*) from fact_t, d1_t, d2_t, d3_t where fact_t.d1_k = d1_t.d1_k and fact_t.d2_k = d2_t.d2_k and fact_t.d3_k = d3_t.d3_k",
|
269 | 268 | "Plan": [
|
270 |
| - "HashAgg 1.00 root funcs:count(Column#18)->Column#17", |
271 |
| - "└─TableReader 1.00 root data:ExchangeSender", |
272 |
| - " └─ExchangeSender 1.00 batchCop[tiflash] ExchangeType: PassThrough", |
273 |
| - " └─HashAgg 1.00 batchCop[tiflash] funcs:count(1)->Column#18", |
274 |
| - " └─HashJoin 8.00 batchCop[tiflash] inner join, equal:[eq(test.fact_t.d3_k, test.d3_t.d3_k)]", |
275 |
| - " ├─ExchangeReceiver(Build) 2.00 batchCop[tiflash] ", |
276 |
| - " │ └─ExchangeSender 2.00 batchCop[tiflash] ExchangeType: Broadcast", |
277 |
| - " │ └─Selection 2.00 batchCop[tiflash] not(isnull(test.d3_t.d3_k))", |
278 |
| - " │ └─TableFullScan 2.00 batchCop[tiflash] table:d3_t keep order:false", |
279 |
| - " └─HashJoin(Probe) 8.00 batchCop[tiflash] inner join, equal:[eq(test.fact_t.d2_k, test.d2_t.d2_k)]", |
280 |
| - " ├─ExchangeReceiver(Build) 2.00 batchCop[tiflash] ", |
281 |
| - " │ └─ExchangeSender 2.00 batchCop[tiflash] ExchangeType: Broadcast", |
282 |
| - " │ └─Selection 2.00 batchCop[tiflash] not(isnull(test.d2_t.d2_k))", |
283 |
| - " │ └─TableFullScan 2.00 batchCop[tiflash] table:d2_t keep order:false", |
284 |
| - " └─HashJoin(Probe) 8.00 batchCop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)]", |
285 |
| - " ├─ExchangeReceiver(Build) 2.00 batchCop[tiflash] ", |
286 |
| - " │ └─ExchangeSender 2.00 batchCop[tiflash] ExchangeType: Broadcast", |
287 |
| - " │ └─Selection 2.00 batchCop[tiflash] not(isnull(test.d1_t.d1_k))", |
288 |
| - " │ └─TableFullScan 2.00 batchCop[tiflash] table:d1_t keep order:false", |
289 |
| - " └─Selection(Probe) 8.00 batchCop[tiflash] not(isnull(test.fact_t.d1_k)), not(isnull(test.fact_t.d2_k)), not(isnull(test.fact_t.d3_k))", |
290 |
| - " └─TableFullScan 8.00 batchCop[tiflash] table:fact_t keep order:false" |
| 269 | + "StreamAgg 1.00 root funcs:count(1)->Column#17", |
| 270 | + "└─TableReader 8.00 root data:ExchangeSender", |
| 271 | + " └─ExchangeSender 8.00 cop[tiflash] ExchangeType: PassThrough", |
| 272 | + " └─HashJoin 8.00 cop[tiflash] inner join, equal:[eq(test.fact_t.d3_k, test.d3_t.d3_k)]", |
| 273 | + " ├─ExchangeReceiver(Build) 2.00 cop[tiflash] ", |
| 274 | + " │ └─ExchangeSender 2.00 cop[tiflash] ExchangeType: Broadcast", |
| 275 | + " │ └─Selection 2.00 cop[tiflash] not(isnull(test.d3_t.d3_k))", |
| 276 | + " │ └─TableFullScan 2.00 cop[tiflash] table:d3_t keep order:false", |
| 277 | + " └─HashJoin(Probe) 8.00 cop[tiflash] inner join, equal:[eq(test.fact_t.d2_k, test.d2_t.d2_k)]", |
| 278 | + " ├─ExchangeReceiver(Build) 2.00 cop[tiflash] ", |
| 279 | + " │ └─ExchangeSender 2.00 cop[tiflash] ExchangeType: Broadcast", |
| 280 | + " │ └─Selection 2.00 cop[tiflash] not(isnull(test.d2_t.d2_k))", |
| 281 | + " │ └─TableFullScan 2.00 cop[tiflash] table:d2_t keep order:false", |
| 282 | + " └─HashJoin(Probe) 8.00 cop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)]", |
| 283 | + " ├─ExchangeReceiver(Build) 2.00 cop[tiflash] ", |
| 284 | + " │ └─ExchangeSender 2.00 cop[tiflash] ExchangeType: Broadcast", |
| 285 | + " │ └─Selection 2.00 cop[tiflash] not(isnull(test.d1_t.d1_k))", |
| 286 | + " │ └─TableFullScan 2.00 cop[tiflash] table:d1_t keep order:false", |
| 287 | + " └─Selection(Probe) 8.00 cop[tiflash] not(isnull(test.fact_t.d1_k)), not(isnull(test.fact_t.d2_k)), not(isnull(test.fact_t.d3_k))", |
| 288 | + " └─TableFullScan 8.00 cop[tiflash] table:fact_t keep order:false" |
291 | 289 | ]
|
292 | 290 | },
|
293 | 291 | {
|
294 | 292 | "SQL": "explain format = 'brief' select count(*) from fact_t, d1_t where fact_t.d1_k = d1_t.d1_k",
|
295 | 293 | "Plan": [
|
296 |
| - "HashAgg 1.00 root funcs:count(Column#12)->Column#11", |
297 |
| - "└─TableReader 1.00 root data:ExchangeSender", |
298 |
| - " └─ExchangeSender 1.00 batchCop[tiflash] ExchangeType: PassThrough", |
299 |
| - " └─HashAgg 1.00 batchCop[tiflash] funcs:count(1)->Column#12", |
300 |
| - " └─HashJoin 8.00 batchCop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)]", |
301 |
| - " ├─ExchangeReceiver(Build) 2.00 batchCop[tiflash] ", |
302 |
| - " │ └─ExchangeSender 2.00 batchCop[tiflash] ExchangeType: Broadcast", |
303 |
| - " │ └─Selection 2.00 batchCop[tiflash] not(isnull(test.d1_t.d1_k))", |
304 |
| - " │ └─TableFullScan 2.00 batchCop[tiflash] table:d1_t keep order:false", |
305 |
| - " └─Selection(Probe) 8.00 batchCop[tiflash] not(isnull(test.fact_t.d1_k))", |
306 |
| - " └─TableFullScan 8.00 batchCop[tiflash] table:fact_t keep order:false" |
| 294 | + "StreamAgg 1.00 root funcs:count(1)->Column#11", |
| 295 | + "└─TableReader 8.00 root data:ExchangeSender", |
| 296 | + " └─ExchangeSender 8.00 cop[tiflash] ExchangeType: PassThrough", |
| 297 | + " └─HashJoin 8.00 cop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)]", |
| 298 | + " ├─ExchangeReceiver(Build) 2.00 cop[tiflash] ", |
| 299 | + " │ └─ExchangeSender 2.00 cop[tiflash] ExchangeType: Broadcast", |
| 300 | + " │ └─Selection 2.00 cop[tiflash] not(isnull(test.d1_t.d1_k))", |
| 301 | + " │ └─TableFullScan 2.00 cop[tiflash] table:d1_t keep order:false", |
| 302 | + " └─Selection(Probe) 8.00 cop[tiflash] not(isnull(test.fact_t.d1_k))", |
| 303 | + " └─TableFullScan 8.00 cop[tiflash] table:fact_t keep order:false" |
307 | 304 | ]
|
308 | 305 | },
|
309 | 306 | {
|
|
337 | 334 | {
|
338 | 335 | "SQL": "explain format = 'brief' select count(*) from fact_t join d1_t on fact_t.d1_k = d1_t.d1_k and fact_t.col1 > d1_t.value",
|
339 | 336 | "Plan": [
|
340 |
| - "HashAgg 1.00 root funcs:count(Column#12)->Column#11", |
341 |
| - "└─TableReader 1.00 root data:ExchangeSender", |
342 |
| - " └─ExchangeSender 1.00 batchCop[tiflash] ExchangeType: PassThrough", |
343 |
| - " └─HashAgg 1.00 batchCop[tiflash] funcs:count(1)->Column#12", |
344 |
| - " └─HashJoin 8.00 batchCop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)], other cond:gt(test.fact_t.col1, test.d1_t.value)", |
345 |
| - " ├─ExchangeReceiver(Build) 2.00 batchCop[tiflash] ", |
346 |
| - " │ └─ExchangeSender 2.00 batchCop[tiflash] ExchangeType: Broadcast", |
347 |
| - " │ └─Selection 2.00 batchCop[tiflash] not(isnull(test.d1_t.d1_k)), not(isnull(test.d1_t.value))", |
348 |
| - " │ └─TableFullScan 2.00 batchCop[tiflash] table:d1_t keep order:false", |
349 |
| - " └─Selection(Probe) 8.00 batchCop[tiflash] not(isnull(test.fact_t.col1)), not(isnull(test.fact_t.d1_k))", |
350 |
| - " └─TableFullScan 8.00 batchCop[tiflash] table:fact_t keep order:false" |
| 337 | + "StreamAgg 1.00 root funcs:count(1)->Column#11", |
| 338 | + "└─TableReader 8.00 root data:ExchangeSender", |
| 339 | + " └─ExchangeSender 8.00 cop[tiflash] ExchangeType: PassThrough", |
| 340 | + " └─HashJoin 8.00 cop[tiflash] inner join, equal:[eq(test.d1_t.d1_k, test.fact_t.d1_k)], other cond:gt(test.fact_t.col1, test.d1_t.value)", |
| 341 | + " ├─ExchangeReceiver(Build) 2.00 cop[tiflash] ", |
| 342 | + " │ └─ExchangeSender 2.00 cop[tiflash] ExchangeType: Broadcast", |
| 343 | + " │ └─Selection 2.00 cop[tiflash] not(isnull(test.d1_t.d1_k)), not(isnull(test.d1_t.value))", |
| 344 | + " │ └─TableFullScan 2.00 cop[tiflash] table:d1_t keep order:false", |
| 345 | + " └─Selection(Probe) 8.00 cop[tiflash] not(isnull(test.fact_t.col1)), not(isnull(test.fact_t.d1_k))", |
| 346 | + " └─TableFullScan 8.00 cop[tiflash] table:fact_t keep order:false" |
351 | 347 | ]
|
352 | 348 | },
|
353 | 349 | {
|
|
0 commit comments