From 3409423a0afb6569066eb65fbe4aeec9d7e14c53 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 3 Sep 2021 20:32:04 +0200 Subject: [PATCH] [jOOQ/jOOQ#12394] Parser should accept 1 and 0 as boolean literals in MySQL --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 8374d77b5c..b1c5981bbc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -6900,13 +6900,17 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return (Condition) part; } else if (part instanceof Field) { - Class type = ((Field) part).getDataType().getType(); + DataType dataType = ((Field) part).getDataType(); + Class type = dataType.getType(); if (type == Boolean.class) return condition((Field) part); + + // [#11631] [#12394] Numeric expressions are booleans in MySQL + else if (dataType.isNumeric()) + return ((Field) part).ne(zero()); // [#7266] Support parsing column references as predicates - // [#11631] Or bind values too else if (type == Object.class && (part instanceof TableFieldImpl || part instanceof Val)) return condition((Field) part); else