Skip to content

Commit 2507528

Browse files
authored
Add FOR UPDATE clause support for Postgres (#574)
2 parents dabd664 + 74787b7 commit 2507528

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

src/languages/plsql/plsql.formatter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const reservedClauses = expandPhrases([
1717
'ORDER [SIBLINGS] BY',
1818
'OFFSET',
1919
'FETCH {FIRST | NEXT}',
20-
'FOR UPDATE',
20+
'FOR UPDATE [OF]',
2121
// Data manipulation
2222
// - insert:
2323
'INSERT [INTO | ALL INTO]',

src/languages/postgresql/postgresql.formatter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const reservedClauses = expandPhrases([
1818
'LIMIT',
1919
'OFFSET',
2020
'FETCH {FIRST | NEXT}',
21+
'FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]',
2122
// Data manipulation
2223
// - insert:
2324
'INSERT INTO',

test/plsql.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,8 @@ describe('PlSqlFormatter', () => {
159159
*
160160
FROM
161161
tbl
162-
FOR UPDATE
163-
OF tbl.salary;
162+
FOR UPDATE OF
163+
tbl.salary;
164164
`);
165165
});
166166
});

test/postgresql.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,4 +262,26 @@ describe('PostgreSqlFormatter', () => {
262262
DROP NOT NULL;
263263
`);
264264
});
265+
266+
it('formats FOR UPDATE clause', () => {
267+
expect(
268+
format(`
269+
SELECT * FROM tbl FOR UPDATE;
270+
SELECT * FROM tbl FOR UPDATE OF tbl.salary;
271+
`)
272+
).toBe(dedent`
273+
SELECT
274+
*
275+
FROM
276+
tbl
277+
FOR UPDATE;
278+
279+
SELECT
280+
*
281+
FROM
282+
tbl
283+
FOR UPDATE OF
284+
tbl.salary;
285+
`);
286+
});
265287
});

0 commit comments

Comments
 (0)