From 4fe70c0767e52bb7d2514ed379017a7f032a4ca9 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 20 May 2022 09:59:35 +0200 Subject: [PATCH] [jOOQ/jOOQ#13581] Remove more unnecessary unary op parentheses - For bind values of internal types (non-custom Binding) - For TableField - For functions without emulations --- jOOQ/src/main/java/org/jooq/impl/Abs.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/AbstractParam.java | 9 +++++++++ jOOQ/src/main/java/org/jooq/impl/Cardinality.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/Cos.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/Sin.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java | 5 +++++ jOOQ/src/main/java/org/jooq/impl/Tan.java | 5 +++++ 8 files changed, 44 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/Abs.java b/jOOQ/src/main/java/org/jooq/impl/Abs.java index 594a471743..61f918f072 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Abs.java +++ b/jOOQ/src/main/java/org/jooq/impl/Abs.java @@ -89,6 +89,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + return true; + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java index 0b79517d46..d90d961f7a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractParam.java @@ -57,6 +57,7 @@ import org.jooq.Param; import org.jooq.ParamMode; import org.jooq.QualifiedRecord; import org.jooq.conf.ParamType; +import org.jooq.impl.DefaultBinding.InternalBinding; import org.jooq.impl.QOM.NotYetImplementedException; import org.jooq.tools.StringUtils; @@ -131,6 +132,14 @@ abstract class AbstractParam extends AbstractParamX implements SimpleQuery // XXX: QueryPart API // ------------------------------------------------------------------------ + @Override + final boolean parenthesised(Context ctx) { + + // [#13581] User defined Binding implementations can generate any type + // of SQL, including SQL that isn't parenthesised. + return getBinding() instanceof InternalBinding; + } + @Override public final Clause[] clauses(Context ctx) { return CLAUSES; diff --git a/jOOQ/src/main/java/org/jooq/impl/Cardinality.java b/jOOQ/src/main/java/org/jooq/impl/Cardinality.java index 93efe8b43e..7d5c442721 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cardinality.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cardinality.java @@ -89,6 +89,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + return true; + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/Cos.java b/jOOQ/src/main/java/org/jooq/impl/Cos.java index c294fadedc..cfd907601f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cos.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cos.java @@ -90,6 +90,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + return true; + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/Sin.java b/jOOQ/src/main/java/org/jooq/impl/Sin.java index 995a4ce60a..fbd7887209 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Sin.java +++ b/jOOQ/src/main/java/org/jooq/impl/Sin.java @@ -90,6 +90,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + return true; + } + @Override public final void accept(Context ctx) { switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java b/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java index 3d2d2dcb79..91b38ac18a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java +++ b/jOOQ/src/main/java/org/jooq/impl/SysConnectByPath.java @@ -174,6 +174,11 @@ package org.jooq.impl; + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java index fb9d2dfdcc..85283f1481 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableFieldImpl.java @@ -97,6 +97,11 @@ class TableFieldImpl extends AbstractField implements Ta // XXX: QueryPart API // ------------------------------------------------------------------------ + @Override + final boolean parenthesised(Context ctx) { + return true; + } + @Override public boolean declaresFields() { return super.declaresFields(); diff --git a/jOOQ/src/main/java/org/jooq/impl/Tan.java b/jOOQ/src/main/java/org/jooq/impl/Tan.java index 1eabede021..a74874cb5f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tan.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tan.java @@ -90,6 +90,11 @@ implements // XXX: QueryPart API // ------------------------------------------------------------------------- + @Override + final boolean parenthesised(Context ctx) { + return true; + } + @Override public final void accept(Context ctx) { switch (ctx.family()) {