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
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
2class QueryPlan:
3 def __init__(self, steps=None, **kwargs):
4 self.steps = []
5 self.is_resumable = False
6 self.is_async = False
8 if steps:
9 for step in steps:
10 self.add_step(step)
12 def __eq__(self, other):
13 if type(self) != type(other):
14 return False
16 if len(self.steps) != len(other.steps):
17 return False
19 for step, other_step in zip(self.steps, other.steps):
20 if step != other_step:
21 return False
23 @property
24 def last_step_index(self):
25 return len(self.steps) - 1
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]