Skip to content

Commit 914401d

Browse files
committed
Support array literals and accessors in PostgreSQL
1 parent 072c153 commit 914401d

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/languages/postgresql.formatter.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,6 +1675,8 @@ export default class PostgreSqlFormatter extends Formatter {
16751675
reservedJoins,
16761676
reservedDependentClauses,
16771677
reservedKeywords: dedupe([...Object.values(reservedFunctions).flat(), ...reservedKeywords]),
1678+
openParens: ['(', '['],
1679+
closeParens: [')', ']'],
16781680
stringTypes: [{ quote: "''", prefixes: ['U&', 'E', 'X', 'B'] }, '$$'],
16791681
identTypes: [{ quote: '""', prefixes: ['U&'] }],
16801682
identChars: { rest: '$' },

test/postgresql.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import supportsDeleteFrom from './features/deleteFrom';
1717
import supportsComments from './features/comments';
1818
import supportsIdentifiers from './features/identifiers';
1919
import supportsParams from './options/param';
20+
import supportsArrayAndMapAccessors from './features/arrayAndMapAccessors';
2021

2122
describe('PostgreSqlFormatter', () => {
2223
const language = 'postgresql';
@@ -26,6 +27,7 @@ describe('PostgreSqlFormatter', () => {
2627
supportsComments(format);
2728
supportsCreateTable(format);
2829
supportsConstraints(format);
30+
supportsArrayAndMapAccessors(format);
2931
supportsAlterTable(format);
3032
supportsDeleteFrom(format);
3133
supportsStrings(format, ["''", "U&''", "X''"]);
@@ -79,4 +81,11 @@ describe('PostgreSqlFormatter', () => {
7981
$$update$$
8082
`);
8183
});
84+
85+
it('supports ARRAY literals', () => {
86+
expect(format('SELECT ARRAY[1, 2, 3]')).toBe(dedent`
87+
SELECT
88+
ARRAY[1, 2, 3]
89+
`);
90+
});
8291
});

0 commit comments

Comments
 (0)