From 56ebbfb62e504677b8a30349868c3ff3d4136954 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 22 Jan 2021 20:57:04 +0100 Subject: [PATCH] [jOOQ/jOOQ#11295] POSITION(in, search, startIndex) emulation returns wrong result when search was not found --- jOOQ/src/main/java/org/jooq/impl/Position.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Position.java b/jOOQ/src/main/java/org/jooq/impl/Position.java index 84f156762a..b0058e9e58 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Position.java +++ b/jOOQ/src/main/java/org/jooq/impl/Position.java @@ -121,7 +121,11 @@ extends default: - ctx.visit(iadd(DSL.position(DSL.substring(in, startIndex), search), isub(startIndex, one()))); + ctx.visit( + DSL.case_(DSL.position(DSL.substring(in, startIndex), search)) + .when(inline(0), inline(0)) + .else_(iadd(DSL.position(DSL.substring(in, startIndex), search), isub(startIndex, one()))) + ); break; } }