From 56a3789a92af7473a201300275e16ea18ec44e02 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 12 Jan 2022 13:15:43 +0100 Subject: [PATCH] [jOOQ/jOOQ#12843] Support parsing LOG(n) without explicit base, based on input dialect --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 8f8c29a36d..73356b9c0b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -9613,6 +9613,10 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { private final Field parseFieldLogIf() { if (parseFunctionNameIf("LOG")) { parse('('); + Field f1 = toField(parseNumericOp()); + Field f2 = parseIf(',') ? toField(parseNumericOp()) : null; + parse(')'); + switch (parseFamily()) { @@ -9625,16 +9629,12 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { - - - + case POSTGRES: + case SQLITE: + return f2 == null ? log10(f1) : log(f2, f1); default: - Field base = toField(parseNumericOp()); - parse(','); - Field value = toField(parseNumericOp()); - parse(')'); - return log((Field) value, (Field) base); + return f2 == null ? ln(f1) : log(f2, f1); } }