From 5d027014a08b14f11324c718d53b2b085bf38b2d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 22 Jan 2021 21:07:39 +0100 Subject: [PATCH] [jOOQ/jOOQ#11107] Parse 3-argument SQL Server CHARINDEX() function --- .../main/java/org/jooq/impl/ParserImpl.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 77b2f70f6d..db26a906d9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -8987,8 +8987,10 @@ final class ParserContext { Field f1 = (Field) parseField(S); parse(','); Field f2 = (Field) parseField(S); + Field f3 = parseIf(',') ? (Field) parseField(N) : null; parse(')'); - return DSL.position(f2, f1); + + return f3 == null ? DSL.position(f2, f1) : DSL.position(f2, f1, f3); } return null; @@ -9000,13 +9002,10 @@ final class ParserContext { Field f1 = (Field) parseField(S); parse(','); Field f2 = (Field) parseField(N); - Field f3 = parseIf(',') - ? (Field) parseField(S) - : null; + Field f3 = parseIf(',') ? (Field) parseField(S) : null; parse(')'); - return f3 == null - ? lpad(f1, f2) - : lpad(f1, f2, f3); + + return f3 == null ? lpad(f1, f2) : lpad(f1, f2, f3); } return null; @@ -9018,13 +9017,10 @@ final class ParserContext { Field f1 = (Field) parseField(S); parse(','); Field f2 = (Field) parseField(N); - Field f3 = parseIf(',') - ? (Field) parseField(S) - : null; + Field f3 = parseIf(',') ? (Field) parseField(S) : null; parse(')'); - return f3 == null - ? rpad(f1, f2) - : rpad(f1, f2, f3); + + return f3 == null ? rpad(f1, f2) : rpad(f1, f2, f3); } return null;