Skip to main content

Indent Clause Body

Controls whether clause bodies (WHERE conditions, HAVING conditions, JOIN ON) are indented under the clause keyword.

Default: clauseLayout=indented — AND/OR in WHERE/HAVING/JOIN ON are indented by 1 space under the clause keyword. Off: clauseLayout=left_aligned — AND/OR starts at the same indent level as the clause keyword.

Scope: Only affects AND/OR continuation lines in WHERE, HAVING, and JOIN ON. Does not affect SELECT item or GROUP BY indentation.

Default clauseLayout indented (baseline)

Default: clause bodies are indented (this is existing behavior, should pass already).

select a from t where x > 1 and y < 2
select a from t where x > 1 and y < 2

clauseLayout left_aligned WHERE

With clauseLayout=left_aligned, WHERE condition at same level as clause keyword.

select a from t where x > 1 and y < 2
select a from t where x > 1 and y < 2

clauseLayout left_aligned HAVING

HAVING condition at same level.

select a, count(*) from t group by a having count(*) > 1 and count(*) < 10
select a, count(*) from t group by a having count(*) > 1 and count(*) < 10

clauseLayout left_aligned JOIN ON

JOIN ON condition at same level.

select a from t1 join t2 on t1.id = t2.id and t1.active = 1
select a from t1 join t2 on t1.id = t2.id and t1.active = 1

clauseLayout left_aligned with subquery

Subquery indentation still works; only clause body indent is affected.

select a from t where a in (select b from t2 where c > 1 and d < 2)
select a from t where a in (select b from t2 where c > 1 and d < 2)

clauseLayout indented explicit

Explicit indented matches default.

select a from t where x > 1 and y < 2
select a from t where x > 1 and y < 2