Skip to content

Commit 2cc1717

Browse files
committed
Format the full range of PostgreSQL interval literals
1 parent b4958a9 commit 2cc1717

2 files changed

Lines changed: 15 additions & 5 deletions

File tree

src/syntax/expr.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,8 @@ export const exprMap: CstToDocMap<AllExprNodes> = {
172172
extract_expr: (print) => print(["extractKw", "args"]),
173173
extract_from: (print) => print.spaced(["unit", "fromKw", "expr"]),
174174
week_expr: (print) => print(["weekKw", "args"]),
175-
interval_literal: (print) => print.spaced(["intervalKw", "value", "unit"]),
175+
interval_literal: (print) =>
176+
print.spaced(["intervalKw", "precision", "value", "unit"]),
176177
array_literal_expr: (print) => print(["arrayKw", "expr"]),
177178
array_expr: (print) =>
178179
group(["[", indent([softline, print("expr")]), softline, "]"]),

test/expr/literal.test.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ describe("literal", () => {
1010
await testBigquery(`SELECT NUMERIC '12345', BIGNUMERIC '1.23456e05'`);
1111
});
1212

13-
it(`formats PostgreSQL INTERVAL literals`, async () => {
14-
await testPostgresql(`SELECT INTERVAL '1 day'`);
15-
});
16-
1713
it(`formats DATE/TIME literals`, async () => {
1814
await testBigquery(
1915
dedent`
@@ -45,6 +41,19 @@ describe("literal", () => {
4541
);
4642
});
4743

44+
it(`formats PostgreSQL INTERVAL literals`, async () => {
45+
await testPostgresql(
46+
dedent`
47+
SELECT
48+
INTERVAL '1 day',
49+
INTERVAL (3) '25 second',
50+
INTERVAL '25' SECOND (15),
51+
INTERVAL '30:25' MINUTE TO SECOND (15),
52+
INTERVAL '30:25' MINUTE TO SECOND
53+
`,
54+
);
55+
});
56+
4857
describe("array literals", () => {
4958
it(`formats BigQuery array literals`, async () => {
5059
await testBigquery(

0 commit comments

Comments
 (0)