From 5cbbe58e012a08b882390ae1adb884cb26b4725d Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 21 Mar 2017 18:19:57 +0100 Subject: [PATCH] [#5955] Add support for FOR UPDATE --- .../main/java/org/jooq/impl/ParserImpl.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 1f65c9d838..b24bd16ad5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -543,7 +543,27 @@ class ParserImpl implements Parser { throw ctx.unexpectedToken(); } } - // TODO FOR UPDATE, etc. + + if (parseKeywordIf(ctx, "FOR")) { + if (parseKeywordIf(ctx, "SHARE")) { + result.setForShare(true); + } + else if (parseKeywordIf(ctx, "UPDATE")) { + result.setForUpdate(true); + + if (parseKeywordIf(ctx, "OF")) + result.setForUpdateOf(parseFields(ctx)); + + if (parseKeywordIf(ctx, "NOWAIT")) + result.setForUpdateNoWait(); + else if (parseKeywordIf(ctx, "WAIT")) + result.setForUpdateWait((int) (long) parseUnsignedInteger(ctx)); + else if (parseKeywordIf(ctx, "SKIP LOCKED")) + result.setForUpdateSkipLocked(); + } + else + throw ctx.unexpectedToken(); + } return result; } @@ -4647,6 +4667,7 @@ class ParserImpl implements Parser { "CROSS", "EXCEPT", "FETCH", + "FOR", "FULL", "FROM", "GROUP BY",