diff options
| author | Fredy Wijaya <fredy.wijaya@gmail.com> | 2018-12-13 16:44:29 -0600 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2019-03-10 08:03:05 +0100 |
| commit | fa7def01d00fc7c5c3047b077bc0f1a4cdc1d10a (patch) | |
| tree | 2187017bc7dd709028d8f9e505cb6f4be2ed1ae6 /tests/test_format.py | |
| parent | 53dd1d566aefef305b13030cac14ae6fa71cadf7 (diff) | |
| download | sqlparse-fa7def01d00fc7c5c3047b077bc0f1a4cdc1d10a.tar.gz | |
Fix formatting on INSERT (fixes #329)
This patch fixes the formatting on INSERT by creating a new
instance of sql.Values to group all the values.
SQL: insert into foo values (1, 'foo'), (2, 'bar'), (3, 'baz')
Before:
insert into foo
values (1,
'foo'), (2,
'bar'), (3,
'baz')
After:
insert into foo
values (1, 'foo'),
(2, 'bar'),
(3, 'baz')
Diffstat (limited to 'tests/test_format.py')
| -rw-r--r-- | tests/test_format.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test_format.py b/tests/test_format.py index acee9ac..a95b3d1 100644 --- a/tests/test_format.py +++ b/tests/test_format.py @@ -554,6 +554,49 @@ class TestFormatReindent(object): ' nvl(1)', 'from dual']) + def test_insert_values(self): + # issue 329 + f = lambda sql: sqlparse.format(sql, reindent=True) + s = 'insert into foo values (1, 2)' + assert f(s) == '\n'.join([ + 'insert into foo', + 'values (1, 2)']) + + s = 'insert into foo values (1, 2), (3, 4), (5, 6)' + assert f(s) == '\n'.join([ + 'insert into foo', + 'values (1, 2),', + ' (3, 4),', + ' (5, 6)']) + + s = 'insert into foo(a, b) values (1, 2), (3, 4), (5, 6)' + assert f(s) == '\n'.join([ + 'insert into foo(a, b)', + 'values (1, 2),', + ' (3, 4),', + ' (5, 6)']) + + f = lambda sql: sqlparse.format(sql, reindent=True, + comma_first=True) + s = 'insert into foo values (1, 2)' + assert f(s) == '\n'.join([ + 'insert into foo', + 'values (1, 2)']) + + s = 'insert into foo values (1, 2), (3, 4), (5, 6)' + assert f(s) == '\n'.join([ + 'insert into foo', + 'values (1, 2)', + ' , (3, 4)', + ' , (5, 6)']) + + s = 'insert into foo(a, b) values (1, 2), (3, 4), (5, 6)' + assert f(s) == '\n'.join([ + 'insert into foo(a, b)', + 'values (1, 2)', + ' , (3, 4)', + ' , (5, 6)']) + class TestOutputFormat(object): def test_python(self): |
