@@ -222,12 +222,6 @@ impl FuseTableSource {
222
222
fn generate_one_block ( & mut self , block : DataBlock ) -> Result < ( ) > {
223
223
let mut partitions = self . ctx . try_get_partitions ( 1 ) ?;
224
224
225
- let progress_values = ProgressValues {
226
- rows : block. num_rows ( ) ,
227
- bytes : block. memory_size ( ) ,
228
- } ;
229
- self . scan_progress . incr ( & progress_values) ;
230
-
231
225
self . state = match partitions. is_empty ( ) {
232
226
true => State :: Generated ( None , block) ,
233
227
false => State :: Generated ( Some ( partitions. remove ( 0 ) ) , block) ,
@@ -322,9 +316,21 @@ impl Processor for FuseTableSource {
322
316
return Err ( ErrorCode :: LogicalError ( "It's a bug. Need remain reader" ) ) ;
323
317
} ;
324
318
// the last step of prewhere
319
+ let progress_values = ProgressValues {
320
+ rows : block. num_rows ( ) ,
321
+ bytes : block. memory_size ( ) ,
322
+ } ;
323
+ self . scan_progress . incr ( & progress_values) ;
325
324
DataBlock :: filter_block ( block, & filter) ?
326
325
} else {
327
- self . output_reader . deserialize ( part, chunks) ?
326
+ let block = self . output_reader . deserialize ( part, chunks) ?;
327
+ let progress_values = ProgressValues {
328
+ rows : block. num_rows ( ) ,
329
+ bytes : block. memory_size ( ) ,
330
+ } ;
331
+ self . scan_progress . incr ( & progress_values) ;
332
+
333
+ block
328
334
} ;
329
335
330
336
self . generate_one_block ( data_block) ?;
@@ -341,11 +347,21 @@ impl Processor for FuseTableSource {
341
347
if !DataBlock :: filter_exists ( & filter) ? {
342
348
// all rows in this block are filtered out
343
349
// turn to read next part
350
+ let progress_values = ProgressValues {
351
+ rows : data_block. num_rows ( ) ,
352
+ bytes : data_block. memory_size ( ) ,
353
+ } ;
354
+ self . scan_progress . incr ( & progress_values) ;
344
355
self . generate_one_empty_block ( ) ?;
345
356
return Ok ( ( ) ) ;
346
357
}
347
358
if self . remain_reader . is_none ( ) {
348
359
// shortcut, we don't need to read remain data
360
+ let progress_values = ProgressValues {
361
+ rows : data_block. num_rows ( ) ,
362
+ bytes : data_block. memory_size ( ) ,
363
+ } ;
364
+ self . scan_progress . incr ( & progress_values) ;
349
365
let block = DataBlock :: filter_block ( data_block, & filter) ?;
350
366
self . generate_one_block ( block) ?;
351
367
} else {
0 commit comments