Coverage for mindsdb / api / executor / planner / query_plan.py: 58%

24 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-21 00:36 +0000

1 

2class QueryPlan: 

3 def __init__(self, steps=None, **kwargs): 

4 self.steps = [] 

5 self.is_resumable = False 

6 self.is_async = False 

7 

8 if steps: 

9 for step in steps: 

10 self.add_step(step) 

11 

12 def __eq__(self, other): 

13 if type(self) != type(other): 

14 return False 

15 

16 if len(self.steps) != len(other.steps): 

17 return False 

18 

19 for step, other_step in zip(self.steps, other.steps): 

20 if step != other_step: 

21 return False 

22 

23 @property 

24 def last_step_index(self): 

25 return len(self.steps) - 1 

26 

27 def add_step(self, step): 

28 if not step.step_num: 

29 step.step_num = len(self.steps) 

30 self.steps.append(step) 

31 return self.steps[-1]