summaryrefslogtreecommitdiffstats
path: root/sqlglot/executor
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/executor')
-rw-r--r--sqlglot/executor/context.py6
-rw-r--r--sqlglot/executor/python.py6
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