diff options
Diffstat (limited to 'sqlglot/executor')
-rw-r--r-- | sqlglot/executor/context.py | 6 | ||||
-rw-r--r-- | sqlglot/executor/python.py | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/sqlglot/executor/context.py b/sqlglot/executor/context.py index c405c45..630cb65 100644 --- a/sqlglot/executor/context.py +++ b/sqlglot/executor/context.py @@ -63,11 +63,9 @@ class Context: reader = table[i] yield reader, self - def table_iter(self, table: str) -> t.Iterator[t.Tuple[TableIter, Context]]: + def table_iter(self, table: str) -> TableIter: self.env["scope"] = self.row_readers - - for reader in self.tables[table]: - yield reader, self + return iter(self.tables[table]) def filter(self, condition) -> None: rows = [reader.row for reader, _ in self if self.eval(condition)] diff --git a/sqlglot/executor/python.py b/sqlglot/executor/python.py index 635ec2c..a927181 100644 --- a/sqlglot/executor/python.py +++ b/sqlglot/executor/python.py @@ -276,11 +276,9 @@ class PythonExecutor: end = 1 length = len(context.table) table = self.table(list(step.group) + step.aggregations) - condition = self.generate(step.condition) def add_row(): - if not condition or context.eval(condition): - table.append(group + context.eval_tuple(aggregations)) + table.append(group + context.eval_tuple(aggregations)) if length: for i in range(length): @@ -304,7 +302,7 @@ class PythonExecutor: context = self.context({step.name: table, **{name: table for name in context.tables}}) - if step.projections: + if step.projections or step.condition: return self.scan(step, context) return context |