darold / pgFormatter

A PostgreSQL SQL syntax beautifier that can work as a console program or as a CGI. On-line demo site at http://sqlformat.darold.net/
PostgreSQL License
1.66k stars 100 forks source link

Breaks query when CTE is present #296

Open trsdln opened 1 year ago

trsdln commented 1 year ago

Input query:

some_cte as (select a from test_table)
select
  my_fn ((select * from some_cte1))
from
  test_table;

Expected output query:

some_cte as (
  select
    a
  from
    test_table
)
select
  my_fn ((
    select
      *
    from some_cte1))
from
  test_table;

Actual output query:

some_cte as (
  select
    a
  from
    test_table
)
select
  my_fn (
    select
      *
    from some_cte1)
from
  test_table;

Removing one pair of round brackets breaks the query.

pgformatter version: 5.3

darold commented 1 year ago

Right, most of the remaining open issue on pgFormatter are about CTE formatting. Unfortunately fixing them require a huge work in pgFormatter code so it require lot of time. That sadly, I don't have for the moment.