Nested CTEs identation problem
Open
Nobody has claimed this yet.
- Dominant language
- PLpgSQL
- Stars
- 2k
- Forks
- 121
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 7
Description
The structure like this:
WITH hello_world AS (
WITH hello_another_world AS (
WITH hello_third_world AS (
SELECT
FROM
WHERE
ORDER BY
), hello_third_world_again AS (
SELECT
FROM
WHERE
ORDER BY
)
SELECT
FROM
WHERE
ORDER BY
), hello_another_world_again AS (
SELECT
FROM
WHERE
ORDER BY
)
SELECT
FROM
WHERE
ORDER BY
)
SELECT
FROM
WHERE
ORDER BY
Gets formatted as:
WITH hello_world AS (
WITH hello_another_world AS (
WITH hello_third_world AS (
SELECT
FROM
WHERE
ORDER BY
),
hello_third_world_again AS (
SELECT
FROM
WHERE
ORDER BY
)
SELECT
FROM
WHERE
ORDER BY
),
hello_another_world_again AS (
SELECT
FROM
WHERE
ORDER BY
)
SELECT
FROM
WHERE
ORDER BY
)
SELECT
FROM
WHERE
ORDER BY
It is kind of a problem since nested CTEs tend to be used in complex queries in which indentation is a hint to the CTEs scope visibility.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the nested CTE example from the issue through pgFormatter and compare its indentation with the expected structure. Trace the formatter path that handles nested WITH clauses, then verify that sibling CTEs and their following SELECT statements retain indentation reflecting their scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, sql
- Domain
- databases, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100