From fc4860acccca45a0cdde68567042e3e72a31aef0 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 26 Mar 2019 14:41:10 +0100 Subject: [PATCH] [#7518] [#8401] Add support for Oracle REGEXP_LIKE --- .../src/main/resources/org/jooq/web/grammar-3.12.txt | 1 + jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt index a956f36e7f..f5675976be 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt +++ b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt @@ -674,6 +674,7 @@ predicate = | concat '*=' concat | concat '=*' concat | row2 'OVERLAPS' row2 +| 'REGEXP_LIKE' '(' concat ',' concat ')' ; row2 = [ 'ROW' ] '(' field ',' field ')' diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index f90b8b1964..6b0a07a894 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -4191,7 +4191,15 @@ final class ParserImpl implements Parser { return exists(select); } + else if (parseKeywordIf(ctx, "REGEXP_LIKE")) { + parse(ctx, '('); + Field f1 = parseField(ctx); + parse(ctx, ','); + Field f2 = parseField(ctx); + parse(ctx, ')'); + return f1.likeRegex((Field) f2); + } else { FieldOrRow left; Comparator comp;