From 077ac9001b982b2dc39e00facd42ee761e7e174c Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 6 Nov 2024 13:06:26 +0100 Subject: [PATCH] [jOOQ/jOOQ#17561] The LIKE and SIMILAR TO predicates should use DataType.isString() internally to decide whether to auto-cast arguments, not Field.getType() == String.class --- jOOQ/src/main/java/org/jooq/impl/Like.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Like.java b/jOOQ/src/main/java/org/jooq/impl/Like.java index e4306379da..399b969140 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Like.java +++ b/jOOQ/src/main/java/org/jooq/impl/Like.java @@ -178,18 +178,18 @@ implements case SIMILAR_TO: case NOT_LIKE: case NOT_SIMILAR_TO: - if (arg1.getType() != String.class && REQUIRES_CAST_ON_LIKE.contains(ctx.dialect())) + if (!arg1.getDataType().isString() && REQUIRES_CAST_ON_LIKE.contains(ctx.dialect())) arg1 = castIfNeeded(arg1, String.class); - if (arg2.getType() != String.class && REQUIRES_CAST_ON_LIKE.contains(ctx.dialect())) + if (!arg2.getDataType().isString() && REQUIRES_CAST_ON_LIKE.contains(ctx.dialect())) arg2 = castIfNeeded(arg2, String.class); break; case LIKE_IGNORE_CASE: case NOT_LIKE_IGNORE_CASE: - if (arg1.getType() != String.class) + if (!arg1.getDataType().isString()) arg1 = castIfNeeded(arg1, String.class); - if (arg2.getType() != String.class) + if (!arg2.getDataType().isString()) arg2 = castIfNeeded(arg2, String.class); break;