From 5de6b504d8dfa3f89bac8f61e1852065b485aee9 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 25 Feb 2021 11:00:54 +0100 Subject: [PATCH] [jOOQ/jOOQ#10243] Don't interfere with operators and precedence --- .../src/main/java/org/jooq/ParseListener.java | 21 ++++++++++ .../main/java/org/jooq/impl/ParserImpl.java | 39 +++++++++---------- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/ParseListener.java b/jOOQ/src/main/java/org/jooq/ParseListener.java index 2dea1cd4c4..649a8e70ed 100644 --- a/jOOQ/src/main/java/org/jooq/ParseListener.java +++ b/jOOQ/src/main/java/org/jooq/ParseListener.java @@ -103,6 +103,27 @@ package org.jooq; + + + + + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index e875c4adaa..b48f903100 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -5945,12 +5945,6 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { @Override public final Condition parseCondition() { - - - - - - return toCondition(parseOr()); } @@ -5979,6 +5973,12 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { } private final QueryPart parsePredicate() { + + + + + + if (parseKeywordIf("EXISTS")) { parse('('); Select select = parseWithOrSelect(); @@ -6290,14 +6290,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { @Override public final Table parseTable() { - Table result; - - - - - - - result = parseLateral(); + Table result = parseLateral(); for (;;) { Table joined = parseJoinedTableIf(result); @@ -6333,6 +6326,11 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { // [#7982] Postpone turning Select into a Table in case there is an alias TableLike result = null; + + + + + // TODO [#5306] Support FINAL TABLE () // TOOD ONLY ( table primary ) if (parseFunctionNameIf("UNNEST", "TABLE")) { @@ -6931,13 +6929,6 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { @Override public final Field parseField() { - Field result; - - - - - - return parseField(null); } @@ -7300,6 +7291,11 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { FieldOrRow field; Object value; + + + + + switch (characterUpper()) { case ':': case '?': @@ -7926,6 +7922,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { case '7': case '8': case '9': + case '-': case '.': if (N.is(type)) if ((field = parseFieldUnsignedNumericLiteralIf(Sign.NONE)) != null)