Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.Original topic: https://github.com/pingcap/parser这个包如何美化SQL

How to beautify SQL using the package GitHub - pingcap/parser: A MySQL Compatible SQL Parser
stmt, _, err := p.ParseSQL(sql)
||var sb strings.Builder|
||ctx := format.NewRestoreCtx(format.DefaultRestoreFlags, &sb)|
||err = stmt[0].Restore(ctx)|
After executing the above code, there are no line breaks.
Executed SQL:
select supplier_name, city from
(select * from suppliers join addresses on suppliers.address_id=addresses.id)
as suppliers
where supplier_id > 500
order by supplier_name asc, city desc;
Result:
SELECT supplier_name
, city
FROM (SELECT * FROM suppliers
JOIN addresses
ON suppliers
.address_id
= addresses
.id
) AS suppliers
WHERE supplier_id
> 500 ORDER BY supplier_name
, city
DESC
Desired SQL: