@@ -1624,6 +1624,44 @@ <h4 id="remove_wrong_end_comma" class="doc_header"><code>remove_wrong_end_comma<
16241624</ div >
16251625</ div >
16261626
1627+ </ div >
1628+ {% endraw %}
1629+
1630+ < div class ="cell border-box-sizing text_cell rendered "> < div class ="inner_cell ">
1631+ < div class ="text_cell_render border-box-sizing rendered_html ">
1632+ < h4 id ="Helper-function-for-case-when "> Helper function for < code > case when</ code > < a class ="anchor-link " href ="#Helper-function-for-case-when "> </ a > </ h4 >
1633+ </ div >
1634+ </ div >
1635+ </ div >
1636+ {% raw %}
1637+
1638+ < div class ="cell border-box-sizing code_cell rendered ">
1639+
1640+ < div class ="output_wrapper ">
1641+ < div class ="output ">
1642+
1643+ < div class ="output_area ">
1644+
1645+
1646+ < div class ="output_markdown rendered_html output_subarea ">
1647+ < h4 id ="format_case_when " class ="doc_header "> < code > format_case_when</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L159 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_case_when</ code > (< strong > < code > s</ code > </ strong > )</ p >
1648+ </ blockquote >
1649+ < p > Format case when statement in line < code > s</ code > </ p >
1650+
1651+ </ div >
1652+
1653+ </ div >
1654+
1655+ </ div >
1656+ </ div >
1657+
1658+ </ div >
1659+ {% endraw %}
1660+
1661+ {% raw %}
1662+
1663+ < div class ="cell border-box-sizing code_cell rendered ">
1664+
16271665</ div >
16281666 {% endraw %}
16291667
@@ -1644,7 +1682,7 @@ <h3 id="SELECT">SELECT<a class="anchor-link" href="#SELECT"> </a></h3>
16441682
16451683
16461684< div class ="output_markdown rendered_html output_subarea ">
1647- < h4 id ="format_select " class ="doc_header "> < code > format_select</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L159 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_select</ code > (< strong > < code > s</ code > </ strong > )</ p >
1685+ < h4 id ="format_select " class ="doc_header "> < code > format_select</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L183 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_select</ code > (< strong > < code > s</ code > </ strong > )</ p >
16481686</ blockquote >
16491687< p > Format SELECT statement line < code > s</ code > </ p >
16501688
@@ -1779,68 +1817,12 @@ <h4 id="format_select" class="doc_header"><code>format_select</code><a href="htt
17791817< div class ="output_area ">
17801818
17811819< div class ="output_subarea output_stream output_stdout output_text ">
1782- < pre > Assertion failed
1783-
1784- Observed:
1785-
1786- select asdf, -- Some comment -- Another comment
1787- asdforqwer
1788-
1789-
1790- Expected:
1791-
1792- select asdf, -- Some comment
1820+ < pre > select asdf, -- Some comment
17931821 asdforqwer -- Another comment
1794- Exception found at position 28:
1795-
1796- 10-characters window:
1797-
1798- Observed:
1799-
1800- mment -- A
1801-
1802-
1803- Expected:
1804-
1805- mment
1806-
18071822</ pre >
18081823</ div >
18091824</ div >
18101825
1811- < div class ="output_area ">
1812-
1813- < div class ="output_subarea output_text output_error ">
1814- < pre >
1815- < span class ="ansi-red-fg "> -----------------------------------------------------------------------</ span >
1816- < span class ="ansi-red-fg "> AssertionError</ span > Traceback (most recent call last)
1817- < span class ="ansi-green-fg "> ~/Dokumente/Python_Stuff/Projekte/sql_formatter/sql_formatter/utils.py</ span > in < span class ="ansi-cyan-fg "> assert_and_print</ span > < span class ="ansi-blue-fg "> (s_in, s_expected)</ span >
1818- < span class ="ansi-green-intense-fg ansi-bold "> 18</ span > < span class ="ansi-green-fg "> try</ span > < span class ="ansi-blue-fg "> :</ span >
1819- < span class ="ansi-green-fg "> ---> 19</ span > < span class ="ansi-red-fg "> </ span > < span class ="ansi-green-fg "> assert</ span > s_in < span class ="ansi-blue-fg "> ==</ span > s_expected
1820- < span class ="ansi-green-intense-fg ansi-bold "> 20</ span > < span class ="ansi-green-fg "> except</ span > < span class ="ansi-blue-fg "> :</ span >
1821-
1822- < span class ="ansi-red-fg "> AssertionError</ span > :
1823-
1824- During handling of the above exception, another exception occurred:
1825-
1826- < span class ="ansi-red-fg "> AssertionError</ span > Traceback (most recent call last)
1827- < span class ="ansi-green-fg "> <ipython-input-70-57dc18c8340b></ span > in < span class ="ansi-cyan-fg "> <module></ span >
1828- < span class ="ansi-green-intense-fg ansi-bold "> 4</ span > select asdf< span class ="ansi-blue-fg "> ,</ span > < span class ="ansi-blue-fg "> -</ span > < span class ="ansi-blue-fg "> -</ span > Some comment
1829- < span class ="ansi-green-intense-fg ansi-bold "> 5</ span > asdforqwer < span class ="ansi-blue-fg "> -</ span > < span class ="ansi-blue-fg "> -</ span > Another comment
1830- < span class ="ansi-green-fg "> ----> 6</ span > < span class ="ansi-red-fg "> """.strip()
1831- </ span > < span class ="ansi-green-intense-fg ansi-bold "> 7</ span > )
1832-
1833- < span class ="ansi-green-fg "> ~/Dokumente/Python_Stuff/Projekte/sql_formatter/sql_formatter/utils.py</ span > in < span class ="ansi-cyan-fg "> assert_and_print</ span > < span class ="ansi-blue-fg "> (s_in, s_expected)</ span >
1834- < span class ="ansi-green-intense-fg ansi-bold "> 35</ span > print< span class ="ansi-blue-fg "> (</ span > < span class ="ansi-blue-fg "> "Expected:\n"</ span > < span class ="ansi-blue-fg "> )</ span >
1835- < span class ="ansi-green-intense-fg ansi-bold "> 36</ span > print< span class ="ansi-blue-fg "> (</ span > s_expected< span class ="ansi-blue-fg "> [</ span > max< span class ="ansi-blue-fg "> (</ span > i< span class ="ansi-blue-fg "> -</ span > < span class ="ansi-cyan-fg "> 5</ span > < span class ="ansi-blue-fg "> ,</ span > < span class ="ansi-cyan-fg "> 0</ span > < span class ="ansi-blue-fg "> )</ span > < span class ="ansi-blue-fg "> :</ span > i< span class ="ansi-blue-fg "> +</ span > < span class ="ansi-cyan-fg "> 5</ span > < span class ="ansi-blue-fg "> ]</ span > < span class ="ansi-blue-fg "> )</ span >
1836- < span class ="ansi-green-fg "> ---> 37</ span > < span class ="ansi-red-fg "> </ span > < span class ="ansi-green-fg "> assert</ span > s_in < span class ="ansi-blue-fg "> ==</ span > s_expected
1837- < span class ="ansi-green-intense-fg ansi-bold "> 38</ span > print< span class ="ansi-blue-fg "> (</ span > s_in< span class ="ansi-blue-fg "> )</ span >
1838- < span class ="ansi-green-intense-fg ansi-bold "> 39</ span > < span class ="ansi-green-fg "> return</ span > < span class ="ansi-green-fg "> None</ span >
1839-
1840- < span class ="ansi-red-fg "> AssertionError</ span > : </ pre >
1841- </ div >
1842- </ div >
1843-
18441826</ div >
18451827</ div >
18461828
@@ -2588,6 +2570,90 @@ <h4 id="format_select" class="doc_header"><code>format_select</code><a href="htt
25882570</ div >
25892571</ div >
25902572
2573+ </ div >
2574+ {% endraw %}
2575+
2576+ {% raw %}
2577+
2578+ < div class ="cell border-box-sizing code_cell rendered ">
2579+ < div class ="input ">
2580+
2581+ < div class ="inner_cell ">
2582+ < div class ="input_area ">
2583+ < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> assert_and_print</ span > < span class ="p "> (</ span >
2584+ < span class ="n "> format_select</ span > < span class ="p "> (</ span > < span class ="s2 "> "select qwer1, substr(qwer, case when asdf = 'J' then 1 else 0 end, 4) as qwer2, qwer3"</ span > < span class ="p "> ),</ span >
2585+ < span class ="sd "> """</ span >
2586+ < span class ="sd "> select qwer1,</ span >
2587+ < span class ="sd "> substr(qwer, case when asdf = 'J' then 1</ span >
2588+ < span class ="sd "> else 0 end, 4) as qwer2,</ span >
2589+ < span class ="sd "> qwer3</ span >
2590+ < span class ="sd "> """</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> ()</ span >
2591+ < span class ="p "> )</ span >
2592+ </ pre > </ div >
2593+
2594+ </ div >
2595+ </ div >
2596+ </ div >
2597+
2598+ < div class ="output_wrapper ">
2599+ < div class ="output ">
2600+
2601+ < div class ="output_area ">
2602+
2603+ < div class ="output_subarea output_stream output_stdout output_text ">
2604+ < pre > select qwer1,
2605+ substr(qwer, case when asdf = 'J' then 1
2606+ else 0 end, 4) as qwer2,
2607+ qwer3
2608+ </ pre >
2609+ </ div >
2610+ </ div >
2611+
2612+ </ div >
2613+ </ div >
2614+
2615+ </ div >
2616+ {% endraw %}
2617+
2618+ {% raw %}
2619+
2620+ < div class ="cell border-box-sizing code_cell rendered ">
2621+ < div class ="input ">
2622+
2623+ < div class ="inner_cell ">
2624+ < div class ="input_area ">
2625+ < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> assert_and_print</ span > < span class ="p "> (</ span >
2626+ < span class ="n "> format_select</ span > < span class ="p "> (</ span > < span class ="s2 "> "select qwer1, substr('blabla', case when asdf = 'J' then 1 else 0 end, 4) as qwer2, qwer3"</ span > < span class ="p "> ),</ span >
2627+ < span class ="sd "> """</ span >
2628+ < span class ="sd "> select qwer1,</ span >
2629+ < span class ="sd "> substr('blabla', case when asdf = 'J' then 1</ span >
2630+ < span class ="sd "> else 0 end, 4) as qwer2,</ span >
2631+ < span class ="sd "> qwer3</ span >
2632+ < span class ="sd "> """</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> ()</ span >
2633+ < span class ="p "> )</ span >
2634+ </ pre > </ div >
2635+
2636+ </ div >
2637+ </ div >
2638+ </ div >
2639+
2640+ < div class ="output_wrapper ">
2641+ < div class ="output ">
2642+
2643+ < div class ="output_area ">
2644+
2645+ < div class ="output_subarea output_stream output_stdout output_text ">
2646+ < pre > select qwer1,
2647+ substr('blabla', case when asdf = 'J' then 1
2648+ else 0 end, 4) as qwer2,
2649+ qwer3
2650+ </ pre >
2651+ </ div >
2652+ </ div >
2653+
2654+ </ div >
2655+ </ div >
2656+
25912657</ div >
25922658 {% endraw %}
25932659
@@ -2981,7 +3047,7 @@ <h3 id="FROM">FROM<a class="anchor-link" href="#FROM"> </a></h3>
29813047
29823048
29833049< div class ="output_markdown rendered_html output_subarea ">
2984- < h4 id ="format_from " class ="doc_header "> < code > format_from</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L240 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_from</ code > (< strong > < code > s</ code > </ strong > )</ p >
3050+ < h4 id ="format_from " class ="doc_header "> < code > format_from</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L230 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_from</ code > (< strong > < code > s</ code > </ strong > )</ p >
29853051</ blockquote >
29863052< p > Format FROM statement line < code > s</ code > </ p >
29873053
@@ -3050,7 +3116,7 @@ <h3 id="(LEFT-/-RIGHT-/-INNER-/-OUTER)-JOIN">(LEFT / RIGHT / INNER / OUTER) JOIN
30503116
30513117
30523118< div class ="output_markdown rendered_html output_subarea ">
3053- < h4 id ="format_join " class ="doc_header "> < code > format_join</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L251 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_join</ code > (< strong > < code > s</ code > </ strong > )</ p >
3119+ < h4 id ="format_join " class ="doc_header "> < code > format_join</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L241 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_join</ code > (< strong > < code > s</ code > </ strong > )</ p >
30543120</ blockquote >
30553121< p > Format JOIN statement line < code > s</ code > </ p >
30563122
@@ -3119,7 +3185,7 @@ <h3 id="ON">ON<a class="anchor-link" href="#ON"> </a></h3>
31193185
31203186
31213187< div class ="output_markdown rendered_html output_subarea ">
3122- < h4 id ="format_on " class ="doc_header "> < code > format_on</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L257 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_on</ code > (< strong > < code > s</ code > </ strong > )</ p >
3188+ < h4 id ="format_on " class ="doc_header "> < code > format_on</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L247 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_on</ code > (< strong > < code > s</ code > </ strong > )</ p >
31233189</ blockquote >
31243190< p > Format ON statement line < code > s</ code > </ p >
31253191
@@ -3318,7 +3384,7 @@ <h3 id="WHERE">WHERE<a class="anchor-link" href="#WHERE"> </a></h3>
33183384
33193385
33203386< div class ="output_markdown rendered_html output_subarea ">
3321- < h4 id ="format_where " class ="doc_header "> < code > format_where</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L283 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_where</ code > (< strong > < code > s</ code > </ strong > )</ p >
3387+ < h4 id ="format_where " class ="doc_header "> < code > format_where</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L273 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_where</ code > (< strong > < code > s</ code > </ strong > )</ p >
33223388</ blockquote >
33233389< p > Format WHERE statement line < code > s</ code > </ p >
33243390
@@ -3467,7 +3533,7 @@ <h2 id="Format-all-statements">Format all statements<a class="anchor-link" href=
34673533
34683534
34693535< div class ="output_markdown rendered_html output_subarea ">
3470- < h4 id ="format_statement_line " class ="doc_header "> < code > format_statement_line</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L312 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_statement_line</ code > (< strong > < code > s</ code > </ strong > )</ p >
3536+ < h4 id ="format_statement_line " class ="doc_header "> < code > format_statement_line</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L302 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_statement_line</ code > (< strong > < code > s</ code > </ strong > )</ p >
34713537</ blockquote >
34723538< p > Format statement line < code > s</ code > </ p >
34733539
@@ -3611,7 +3677,7 @@ <h4 id="format_statement_line" class="doc_header"><code>format_statement_line</c
36113677
36123678
36133679< div class ="output_markdown rendered_html output_subarea ">
3614- < h4 id ="format_statements " class ="doc_header "> < code > format_statements</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L330 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_statements</ code > (< strong > < code > s</ code > </ strong > )</ p >
3680+ < h4 id ="format_statements " class ="doc_header "> < code > format_statements</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L320 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_statements</ code > (< strong > < code > s</ code > </ strong > )</ p >
36153681</ blockquote >
36163682< p > Format statements lines < code > s</ code > </ p >
36173683
@@ -3689,7 +3755,7 @@ <h3 id="Format-multiline-comments">Format multiline comments<a class="anchor-lin
36893755
36903756
36913757< div class ="output_markdown rendered_html output_subarea ">
3692- < h4 id ="format_multiline_comments " class ="doc_header "> < code > format_multiline_comments</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L340 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_multiline_comments</ code > (< strong > < code > s</ code > </ strong > )</ p >
3758+ < h4 id ="format_multiline_comments " class ="doc_header "> < code > format_multiline_comments</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L330 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_multiline_comments</ code > (< strong > < code > s</ code > </ strong > )</ p >
36933759</ blockquote >
36943760< p > Format multiline comments by replacing multiline comment [CI] by newline and adding indentation</ p >
36953761
@@ -3728,7 +3794,7 @@ <h2 id="Putting-everything-together">Putting everything together<a class="anchor
37283794
37293795
37303796< div class ="output_markdown rendered_html output_subarea ">
3731- < h4 id ="format_simple_sql " class ="doc_header "> < code > format_simple_sql</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L355 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_simple_sql</ code > (< strong > < code > s</ code > </ strong > )</ p >
3797+ < h4 id ="format_simple_sql " class ="doc_header "> < code > format_simple_sql</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L345 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_simple_sql</ code > (< strong > < code > s</ code > </ strong > )</ p >
37323798</ blockquote >
37333799< p > Format a simple SQL query without subqueries < code > s</ code > </ p >
37343800
@@ -3952,7 +4018,7 @@ <h3 id="Main-function-handling-queries-with-subqueries">Main function handling q
39524018
39534019
39544020< div class ="output_markdown rendered_html output_subarea ">
3955- < h4 id ="format_sql " class ="doc_header "> < code > format_sql</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L369 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_sql</ code > (< strong > < code > s</ code > </ strong > )</ p >
4021+ < h4 id ="format_sql " class ="doc_header "> < code > format_sql</ code > < a href ="https://github.com/PabloRMira/sql_formatter/tree/master/sql_formatter/core.py#L359 " class ="source_link " style ="float:right "> [source]</ a > </ h4 > < blockquote > < p > < code > format_sql</ code > (< strong > < code > s</ code > </ strong > )</ p >
39564022</ blockquote >
39574023< p > Format SQL query with subqueries < code > s</ code > </ p >
39584024
0 commit comments