From 7c3a77a5092e5cedb13601cc48cf060edf440e35 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Mon, 5 Jun 2017 21:40:20 +0200 Subject: [PATCH] [#5955] Added LEFT SEMI / ANTI JOIN --- .../main/java/org/jooq/impl/ParserImpl.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 7baafe5224..ad9594b508 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -2343,6 +2343,8 @@ class ParserImpl implements Parser { case JOIN: case STRAIGHT_JOIN: + case LEFT_SEMI_JOIN: + case LEFT_ANTI_JOIN: boolean on = parseKeywordIf(ctx, "ON"); if (on) { @@ -5247,9 +5249,19 @@ class ParserImpl implements Parser { else if (parseKeywordIf(ctx, "JOIN")) return JoinType.JOIN; else if (parseKeywordIf(ctx, "LEFT")) { - parseKeywordIf(ctx, "OUTER"); - parseKeyword(ctx, "JOIN"); - return JoinType.LEFT_OUTER_JOIN; + if (parseKeywordIf(ctx, "SEMI")) { + parseKeyword(ctx, "JOIN"); + return JoinType.LEFT_SEMI_JOIN; + } + else if (parseKeywordIf(ctx, "ANTI")) { + parseKeyword(ctx, "JOIN"); + return JoinType.LEFT_ANTI_JOIN; + } + else { + parseKeywordIf(ctx, "OUTER"); + parseKeyword(ctx, "JOIN"); + return JoinType.LEFT_OUTER_JOIN; + } } else if (parseKeywordIf(ctx, "RIGHT")) { parseKeywordIf(ctx, "OUTER");