diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index b050d3af39..09cc534d4d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -9483,6 +9483,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { Field f1 = (Field) parseField(S); parse(','); Field f2 = (Field) parseField(S); + Field f3 = (Field) (parseIf(',') ? parseField(N) : null); parse(')'); switch (parseFamily()) { @@ -9493,7 +9494,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { default: - return DSL.position(f2, f1); + return f3 == null ? DSL.position(f2, f1) : DSL.position(f2, f1, f3); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Position.java b/jOOQ/src/main/java/org/jooq/impl/Position.java index 0ce06fea7d..c7fa163444 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Position.java +++ b/jOOQ/src/main/java/org/jooq/impl/Position.java @@ -111,6 +111,18 @@ extends if (startIndex != null) { switch (ctx.family()) { + case DERBY: + case H2: + ctx.visit(N_LOCATE).sql('(').visit(search).sql(", ").visit(in).sql(", ").visit(startIndex).sql(')'); + break; + + + + + + + +