Skip to content

Commit db8b260

Browse files
committed
feat(prettier-plugin-sql): add support for clickhouse sql formatting
1 parent 7a4346d commit db8b260

8 files changed

Lines changed: 49 additions & 6 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"prettier-plugin-sql": minor
3+
---
4+
5+
feat: add support for clickhouse sql formatting

packages/sql/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ interface SqlOptions {
130130
| 'transactsql'
131131
| 'tsql'
132132
| 'trino'
133+
| 'clickhouse'
133134
// default `sql`
134135
dialect: string // `JSOX` **stringified**, please refer https://github.com/sql-formatter-org/sql-formatter/blob/master/docs/dialect.md for more details
135136
keywordCase: 'preserve' | 'upper' | 'lower' // default `preserve`

packages/sql/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"dependencies": {
5353
"jsox": "^1.2.123",
5454
"node-sql-parser": "^5.3.10",
55-
"sql-formatter": "^15.6.5",
55+
"sql-formatter": "^15.7.0",
5656
"tslib": "^2.8.1"
5757
},
5858
"publishConfig": {

packages/sql/src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ const SqlPlugin: Plugin<AST | string> = {
202202
value: 'trino',
203203
description: 'Trino: https://trino.io',
204204
},
205+
{
206+
value: 'clickhouse',
207+
description: 'ClickHouse: https://clickhouse.com',
208+
},
205209
],
206210
},
207211
keywordCase: {

packages/sql/test/__snapshots__/fixtures.spec.ts.snap

Lines changed: 21 additions & 0 deletions
Large diffs are not rendered by default.

packages/sql/test/fixtures.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ const PARSER_OPTIONS: Partial<Record<string, SqlFormatOptions>> = {
3737
405: {
3838
language: 'postgresql',
3939
},
40+
495: {
41+
language: 'clickhouse',
42+
},
4043
}
4144

4245
describe('parser and printer', () => {

packages/sql/test/fixtures/495.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CREATE TABLE table_name
2+
(
3+
`date_time` DateTime,
4+
`big_id` UInt64,
5+
`lowcard_string` LowCardinality(String),
6+
`mid_id` UInt32,
7+
`array_lowcard_string` Array (LowCardinality (String))
8+
)
9+
ENGINE = MergeTree PARTITION BY toYYYYMMDD(date_time) ORDER BY date_time TTL date_time + toIntervalMonth(12);

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13271,7 +13271,7 @@ __metadata:
1327113271
dependencies:
1327213272
jsox: "npm:^1.2.123"
1327313273
node-sql-parser: "npm:^5.3.10"
13274-
sql-formatter: "npm:^15.6.5"
13274+
sql-formatter: "npm:^15.7.0"
1327513275
tslib: "npm:^2.8.1"
1327613276
peerDependencies:
1327713277
prettier: ^3.0.3
@@ -15514,15 +15514,15 @@ __metadata:
1551415514
languageName: node
1551515515
linkType: hard
1551615516

15517-
"sql-formatter@npm:^15.6.5":
15518-
version: 15.6.5
15519-
resolution: "sql-formatter@npm:15.6.5"
15517+
"sql-formatter@npm:^15.7.0":
15518+
version: 15.7.0
15519+
resolution: "sql-formatter@npm:15.7.0"
1552015520
dependencies:
1552115521
argparse: "npm:^2.0.1"
1552215522
nearley: "npm:^2.20.1"
1552315523
bin:
1552415524
sql-formatter: bin/sql-formatter-cli.cjs
15525-
checksum: 10c0/2968069abd9231c7933a2f77b29609d40bb82a6a529a5894a41b712d173eeeb193d124e4a841a3e5bd0edfa65e22e5efcd9fb0af786540b762dcd2224026ac17
15525+
checksum: 10c0/2af1e9deb75c733119f800bdd4c4c4f9e7438165fc082d0c264e4a6295ae641082281b90b5d70f2faac8f0f79ab9b0971124a8aa7d46d5c4837a9e5cd6347bfc
1552615526
languageName: node
1552715527
linkType: hard
1552815528

0 commit comments

Comments
 (0)