diff options
| -rw-r--r-- | sqlparse/filters.py | 3 | ||||
| -rw-r--r-- | tests/test_format.py | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/sqlparse/filters.py b/sqlparse/filters.py index 9d1e0b9..b4f252e 100644 --- a/sqlparse/filters.py +++ b/sqlparse/filters.py @@ -227,8 +227,9 @@ class ReindentFilter(Filter): self.offset += outer_offset for cond, value in tlist.get_cases(): if is_first: + tcond = list(cond[0].flatten())[0] is_first = False - num_offset = self._get_offset(cond[0]) - len(cond[0].value) + num_offset = self._get_offset(tcond) - len(tcond.value) self.offset += num_offset continue if cond is None: diff --git a/tests/test_format.py b/tests/test_format.py index b56ceaf..f9740d5 100644 --- a/tests/test_format.py +++ b/tests/test_format.py @@ -186,6 +186,14 @@ class TestFormatReindent(TestCaseBase): ' else 5', 'end'])) + def test_case2(self): + f = lambda sql: sqlparse.format(sql, reindent=True) + s = 'case(foo) when bar = 1 then 2 else 3 end' + self.ndiffAssertEqual(f(s), '\n'.join(['case(foo)', + ' when bar = 1 then 2', + ' else 3', + 'end'])) + def test_nested_identifier_list(self): # issue4 f = lambda sql: sqlparse.format(sql, reindent=True) s = '(foo as bar, bar1, bar2 as bar3, b4 as b5)' |
