From 3e3b195fc6909248e410a6c561a890136c6a33ac Mon Sep 17 00:00:00 2001 From: Charles Leifer Date: Thu, 18 Aug 2022 14:29:31 -0500 Subject: [PATCH] Fix infinite loop possible when iterating columnbase types. Fixes #2606 --- peewee.py | 1 + tests/regressions.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/peewee.py b/peewee.py index 2279feb6c..046fcf5be 100644 --- a/peewee.py +++ b/peewee.py @@ -1240,6 +1240,7 @@ def __getitem__(self, item): 'end-point.') return self.between(item.start, item.stop) return self == item + def __iter__(self): raise NotImplementedError # Prevent accidents. def distinct(self): return NodeList((SQL('DISTINCT'), self)) diff --git a/tests/regressions.py b/tests/regressions.py index 25f4baa4b..195f93884 100644 --- a/tests/regressions.py +++ b/tests/regressions.py @@ -1736,3 +1736,8 @@ def assertNames(q, expected): q = DF.select().join(DFC).join(DFGC) assertNames(q.filter(dfc_set__dfgc_set__name='a1-1'), ['a']) + + +class TestFunctionInfiniteLoop(BaseTestCase): + def test_function_infinite_loop(self): + self.assertRaises(NotImplementedError, lambda: list(fn.COUNT()))