@@ -285,8 +285,12 @@ public List<? extends IginxPlan> generateSubPlans(RequestContext requestContext)
285285    public  List <DeleteColumnsPlan > splitDeleteColumnsPlan (DeleteColumnsPlan  plan , List <SplitInfo > infoList ) {
286286        List <DeleteColumnsPlan > plans  = new  ArrayList <>();
287287        for  (SplitInfo  info  : infoList ) {
288+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
289+             if  (paths .size () == 0 ) {
290+                 continue ;
291+             }
288292            DeleteColumnsPlan  subPlan  = new  DeleteColumnsPlan (
289-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
293+                     paths ,
290294                    info .getStorageUnit ()
291295            );
292296            plans .add (subPlan );
@@ -302,8 +306,12 @@ public List<InsertColumnRecordsPlan> splitInsertColumnRecordsPlan(InsertColumnRe
302306            if  (valuesAndBitmaps .k .length  == 0 ) {
303307                continue ;
304308            }
309+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
310+             if  (paths .size () == 0 ) {
311+                 continue ;
312+             }
305313            InsertColumnRecordsPlan  subPlan  = new  InsertColumnRecordsPlan (
306-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
314+                     paths ,
307315                    timestampsAndIndexes .k ,
308316                    valuesAndBitmaps .k ,
309317                    valuesAndBitmaps .v ,
@@ -325,8 +333,12 @@ public List<InsertRowRecordsPlan> splitInsertRowRecordsPlan(InsertRowRecordsPlan
325333            if  (valuesAndBitmaps .k .length  == 0 ) {
326334                continue ;
327335            }
336+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
337+             if  (paths .size () == 0 ) {
338+                 continue ;
339+             }
328340            InsertRowRecordsPlan  subPlan  = new  InsertRowRecordsPlan (
329-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
341+                     paths ,
330342                    timestampsAndIndexes .k ,
331343                    valuesAndBitmaps .k ,
332344                    valuesAndBitmaps .v ,
@@ -343,8 +355,12 @@ public List<InsertRowRecordsPlan> splitInsertRowRecordsPlan(InsertRowRecordsPlan
343355    public  List <DeleteDataInColumnsPlan > splitDeleteDataInColumnsPlan (DeleteDataInColumnsPlan  plan , List <SplitInfo > infoList ) {
344356        List <DeleteDataInColumnsPlan > plans  = new  ArrayList <>();
345357        for  (SplitInfo  info  : infoList ) {
358+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
359+             if  (paths .size () == 0 ) {
360+                 continue ;
361+             }
346362            DeleteDataInColumnsPlan  subPlan  = new  DeleteDataInColumnsPlan (
347-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
363+                     paths ,
348364                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
349365                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
350366                    info .getStorageUnit ()
@@ -357,8 +373,12 @@ public List<DeleteDataInColumnsPlan> splitDeleteDataInColumnsPlan(DeleteDataInCo
357373    public  List <QueryDataPlan > splitQueryDataPlan (QueryDataPlan  plan , List <SplitInfo > infoList ) {
358374        List <QueryDataPlan > plans  = new  ArrayList <>();
359375        for  (SplitInfo  info  : infoList ) {
376+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
377+             if  (paths .size () == 0 ) {
378+                 continue ;
379+             }
360380            QueryDataPlan  subPlan  = new  QueryDataPlan (
361-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
381+                     paths ,
362382                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
363383                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
364384                    info .getStorageUnit ()
@@ -371,8 +391,12 @@ public List<QueryDataPlan> splitQueryDataPlan(QueryDataPlan plan, List<SplitInfo
371391    public  List <ValueFilterQueryPlan > splitValueFilterQueryPlan (ValueFilterQueryPlan  plan , List <SplitInfo > infoList ) {
372392        List <ValueFilterQueryPlan > plans  = new  ArrayList <>();
373393        for  (SplitInfo  info  : infoList ) {
394+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
395+             if  (paths .size () == 0 ) {
396+                 continue ;
397+             }
374398            ValueFilterQueryPlan  subPlan  = new  ValueFilterQueryPlan (
375-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
399+                     paths ,
376400                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
377401                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
378402                    plan .getBooleanExpression (),
@@ -386,8 +410,12 @@ public List<ValueFilterQueryPlan> splitValueFilterQueryPlan(ValueFilterQueryPlan
386410    public  List <MaxQueryPlan > splitMaxQueryPlan (MaxQueryPlan  plan , List <SplitInfo > infoList ) {
387411        List <MaxQueryPlan > plans  = new  ArrayList <>();
388412        for  (SplitInfo  info  : infoList ) {
413+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
414+             if  (paths .size () == 0 ) {
415+                 continue ;
416+             }
389417            MaxQueryPlan  subPlan  = new  MaxQueryPlan (
390-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
418+                     paths ,
391419                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
392420                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
393421                    info .getStorageUnit ()
@@ -400,67 +428,71 @@ public List<MaxQueryPlan> splitMaxQueryPlan(MaxQueryPlan plan, List<SplitInfo> i
400428    private  List <IginxPlan > splitDownsampleQueryPlan (DownsampleQueryPlan  plan , List <SplitInfo > infoList ) {
401429        List <IginxPlan > plans  = new  ArrayList <>();
402430        for  (SplitInfo  info  : infoList ) {
431+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
432+             if  (paths .size () == 0 ) {
433+                 continue ;
434+             }
403435            IginxPlan  subPlan  = null ;
404436            switch  (info .getType ()) {
405437                case  MAX :
406438                    subPlan  = new  MaxQueryPlan (
407-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
439+                             paths ,
408440                            info .getTimeInterval ().getStartTime (),
409441                            info .getTimeInterval ().getEndTime (),
410442                            info .getStorageUnit ()
411443                    );
412444                    break ;
413445                case  MIN :
414446                    subPlan  = new  MinQueryPlan (
415-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
447+                             paths ,
416448                            info .getTimeInterval ().getStartTime (),
417449                            info .getTimeInterval ().getEndTime (),
418450                            info .getStorageUnit ()
419451                    );
420452                    break ;
421453                case  FIRST :
422454                    subPlan  = new  FirstQueryPlan (
423-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
455+                             paths ,
424456                            info .getTimeInterval ().getStartTime (),
425457                            info .getTimeInterval ().getEndTime (),
426458                            info .getStorageUnit ()
427459                    );
428460                    break ;
429461                case  LAST :
430462                    subPlan  = new  LastQueryPlan (
431-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
463+                             paths ,
432464                            info .getTimeInterval ().getStartTime (),
433465                            info .getTimeInterval ().getEndTime (),
434466                            info .getStorageUnit ()
435467                    );
436468                    break ;
437469                case  AVG :
438470                    subPlan  = new  AvgQueryPlan (
439-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
471+                             paths ,
440472                            info .getTimeInterval ().getStartTime (),
441473                            info .getTimeInterval ().getEndTime (),
442474                            info .getStorageUnit ()
443475                    );
444476                    break ;
445477                case  SUM :
446478                    subPlan  = new  SumQueryPlan (
447-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
479+                             paths ,
448480                            info .getTimeInterval ().getStartTime (),
449481                            info .getTimeInterval ().getEndTime (),
450482                            info .getStorageUnit ()
451483                    );
452484                    break ;
453485                case  COUNT :
454486                    subPlan  = new  CountQueryPlan (
455-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
487+                             paths ,
456488                            info .getTimeInterval ().getStartTime (),
457489                            info .getTimeInterval ().getEndTime (),
458490                            info .getStorageUnit ()
459491                    );
460492                    break ;
461493                case  DOWNSAMPLE_MAX :
462494                    subPlan  = new  DownsampleMaxQueryPlan (
463-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
495+                             paths ,
464496                            info .getTimeInterval ().getStartTime (),
465497                            info .getTimeInterval ().getEndTime (),
466498                            plan .getPrecision (),
@@ -469,7 +501,7 @@ private List<IginxPlan> splitDownsampleQueryPlan(DownsampleQueryPlan plan, List<
469501                    break ;
470502                case  DOWNSAMPLE_MIN :
471503                    subPlan  = new  DownsampleMinQueryPlan (
472-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
504+                             paths ,
473505                            info .getTimeInterval ().getStartTime (),
474506                            info .getTimeInterval ().getEndTime (),
475507                            plan .getPrecision (),
@@ -478,7 +510,7 @@ private List<IginxPlan> splitDownsampleQueryPlan(DownsampleQueryPlan plan, List<
478510                    break ;
479511                case  DOWNSAMPLE_FIRST :
480512                    subPlan  = new  DownsampleFirstQueryPlan (
481-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
513+                             paths ,
482514                            info .getTimeInterval ().getStartTime (),
483515                            info .getTimeInterval ().getEndTime (),
484516                            plan .getPrecision (),
@@ -487,7 +519,7 @@ private List<IginxPlan> splitDownsampleQueryPlan(DownsampleQueryPlan plan, List<
487519                    break ;
488520                case  DOWNSAMPLE_LAST :
489521                    subPlan  = new  DownsampleLastQueryPlan (
490-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
522+                             paths ,
491523                            info .getTimeInterval ().getStartTime (),
492524                            info .getTimeInterval ().getEndTime (),
493525                            plan .getPrecision (),
@@ -496,7 +528,7 @@ private List<IginxPlan> splitDownsampleQueryPlan(DownsampleQueryPlan plan, List<
496528                    break ;
497529                case  DOWNSAMPLE_AVG :
498530                    subPlan  = new  DownsampleAvgQueryPlan (
499-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
531+                             paths ,
500532                            info .getTimeInterval ().getStartTime (),
501533                            info .getTimeInterval ().getEndTime (),
502534                            plan .getPrecision (),
@@ -505,7 +537,7 @@ private List<IginxPlan> splitDownsampleQueryPlan(DownsampleQueryPlan plan, List<
505537                    break ;
506538                case  DOWNSAMPLE_SUM :
507539                    subPlan  = new  DownsampleSumQueryPlan (
508-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
540+                             paths ,
509541                            info .getTimeInterval ().getStartTime (),
510542                            info .getTimeInterval ().getEndTime (),
511543                            plan .getPrecision (),
@@ -514,7 +546,7 @@ private List<IginxPlan> splitDownsampleQueryPlan(DownsampleQueryPlan plan, List<
514546                    break ;
515547                case  DOWNSAMPLE_COUNT :
516548                    subPlan  = new  DownsampleCountQueryPlan (
517-                             plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
549+                             paths ,
518550                            info .getTimeInterval ().getStartTime (),
519551                            info .getTimeInterval ().getEndTime (),
520552                            plan .getPrecision (),
@@ -537,8 +569,12 @@ public List<IginxPlan> splitDownsampleMaxQueryPlan(DownsampleMaxQueryPlan plan,
537569    public  List <MinQueryPlan > splitMinQueryPlan (MinQueryPlan  plan , List <SplitInfo > infoList ) {
538570        List <MinQueryPlan > plans  = new  ArrayList <>();
539571        for  (SplitInfo  info  : infoList ) {
572+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
573+             if  (paths .size () == 0 ) {
574+                 continue ;
575+             }
540576            MinQueryPlan  subPlan  = new  MinQueryPlan (
541-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
577+                     paths ,
542578                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
543579                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
544580                    info .getStorageUnit ()
@@ -555,8 +591,12 @@ public List<IginxPlan> splitDownsampleMinQueryPlan(DownsampleMinQueryPlan plan,
555591    public  List <FirstQueryPlan > splitFirstQueryPlan (FirstQueryPlan  plan , List <SplitInfo > infoList ) {
556592        List <FirstQueryPlan > plans  = new  ArrayList <>();
557593        for  (SplitInfo  info  : infoList ) {
594+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
595+             if  (paths .size () == 0 ) {
596+                 continue ;
597+             }
558598            FirstQueryPlan  subPlan  = new  FirstQueryPlan (
559-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
599+                     paths ,
560600                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
561601                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
562602                    info .getStorageUnit ()
@@ -573,8 +613,12 @@ public List<IginxPlan> splitDownsampleFirstQueryPlan(DownsampleFirstQueryPlan pl
573613    public  List <LastQueryPlan > splitLastQueryPlan (LastQueryPlan  plan , List <SplitInfo > infoList ) {
574614        List <LastQueryPlan > plans  = new  ArrayList <>();
575615        for  (SplitInfo  info  : infoList ) {
616+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
617+             if  (paths .size () == 0 ) {
618+                 continue ;
619+             }
576620            LastQueryPlan  subPlan  = new  LastQueryPlan (
577-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
621+                     paths ,
578622                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
579623                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
580624                    info .getStorageUnit ()
@@ -591,8 +635,12 @@ public List<IginxPlan> splitDownsampleLastQueryPlan(DownsampleLastQueryPlan plan
591635    public  List <CountQueryPlan > splitCountQueryPlan (CountQueryPlan  plan , List <SplitInfo > infoList ) {
592636        List <CountQueryPlan > plans  = new  ArrayList <>();
593637        for  (SplitInfo  info  : infoList ) {
638+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
639+             if  (paths .size () == 0 ) {
640+                 continue ;
641+             }
594642            CountQueryPlan  subPlan  = new  CountQueryPlan (
595-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
643+                     paths ,
596644                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
597645                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
598646                    info .getStorageUnit ()
@@ -609,8 +657,12 @@ public List<IginxPlan> splitDownsampleCountQueryPlan(DownsampleCountQueryPlan pl
609657    public  List <SumQueryPlan > splitSumQueryPlan (SumQueryPlan  plan , List <SplitInfo > infoList ) {
610658        List <SumQueryPlan > plans  = new  ArrayList <>();
611659        for  (SplitInfo  info  : infoList ) {
660+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
661+             if  (paths .size () == 0 ) {
662+                 continue ;
663+             }
612664            SumQueryPlan  subPlan  = new  SumQueryPlan (
613-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
665+                     paths ,
614666                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
615667                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
616668                    info .getStorageUnit ()
@@ -627,8 +679,12 @@ public List<IginxPlan> splitDownsampleSumQueryPlan(DownsampleSumQueryPlan plan,
627679    public  List <AvgQueryPlan > splitAvgQueryPlan (AvgQueryPlan  plan , List <SplitInfo > infoList ) {
628680        List <AvgQueryPlan > plans  = new  ArrayList <>();
629681        for  (SplitInfo  info  : infoList ) {
682+             List <String > paths  = plan .getPathsByInterval (info .getTimeSeriesInterval ());
683+             if  (paths .size () == 0 ) {
684+                 continue ;
685+             }
630686            AvgQueryPlan  subPlan  = new  AvgQueryPlan (
631-                     plan . getPathsByInterval ( info . getTimeSeriesInterval ()) ,
687+                     paths ,
632688                    Math .max (plan .getStartTime (), info .getTimeInterval ().getStartTime ()),
633689                    Math .min (plan .getEndTime (), info .getTimeInterval ().getEndTime ()),
634690                    info .getStorageUnit ()
0 commit comments