From ce4e0cef908741e7f3f190bafef1d139cf32a6d1 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 5 Mar 2021 14:22:08 +0100 Subject: [PATCH] [jOOQ/jOOQ#11578] Add DSL.inlined(Field): Field --- jOOQ/src/main/java/org/jooq/impl/DSL.java | 42 +++++++++++++++++++ .../main/java/org/jooq/impl/Expression.java | 4 ++ .../java/org/jooq/impl/JSONEntryImpl.java | 2 +- .../main/java/org/jooq/impl/JSONValue.java | 2 +- .../src/main/java/org/jooq/impl/Keywords.java | 2 +- .../jooq/impl/PositionalWindowFunction.java | 4 +- jOOQ/src/main/java/org/jooq/impl/Tools.java | 4 -- .../src/main/java/org/jooq/impl/XMLTable.java | 2 +- 8 files changed, 51 insertions(+), 11 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 63df58db13..c972ef561f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -92,6 +92,7 @@ import static org.jooq.SQLDialect.SQLITE; // ... // ... // ... +import static org.jooq.conf.ParamType.INLINED; import static org.jooq.impl.Keywords.K_CUBE; import static org.jooq.impl.Keywords.K_DEFAULT; import static org.jooq.impl.Keywords.K_GROUPING_SETS; @@ -406,6 +407,7 @@ import org.jooq.XMLAttributes; import org.jooq.XMLExistsPassingStep; import org.jooq.XMLQueryPassingStep; import org.jooq.XMLTablePassingStep; +import org.jooq.conf.ParamType; import org.jooq.conf.Settings; import org.jooq.exception.SQLDialectNotSupportedException; import org.jooq.impl.XMLParse.DocumentOrContent; @@ -25014,6 +25016,46 @@ public class DSL { return val(value, type); } + /** + * Inline all bind variables produced by the argument {@link Field}. + */ + @NotNull + @Support + public static Field inlined(Field field) { + return CustomField.of(field.getQualifiedName(), field.getDataType(), c -> c.visit(field, INLINED)); + } + + /** + * Inline all bind variables produced by the argument {@link Condition}. + */ + @NotNull + @Support + public static Condition inlined(Condition condition) { + return CustomCondition.of(c -> c.visit(condition, INLINED)); + } + + /** + * Inline all bind variables produced by the argument {@link QueryPart}. + */ + @NotNull + @Support + public static QueryPart inlined(QueryPart part) { + return CustomQueryPart.of(c -> c.visit(part, INLINED)); + } + + + + + + + + + + + + + + /** * Create a bind value, that is always inlined. *

diff --git a/jOOQ/src/main/java/org/jooq/impl/Expression.java b/jOOQ/src/main/java/org/jooq/impl/Expression.java index da922b7dd6..73af62520b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Expression.java +++ b/jOOQ/src/main/java/org/jooq/impl/Expression.java @@ -61,6 +61,7 @@ import static org.jooq.SQLDialect.SQLITE; // ... import static org.jooq.impl.DSL.function; import static org.jooq.impl.DSL.inline; +import static org.jooq.impl.DSL.inlined; import static org.jooq.impl.DSL.keyword; import static org.jooq.impl.DSL.two; import static org.jooq.impl.DSL.val; @@ -647,6 +648,9 @@ final class Expression extends AbstractTransformable { + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java index 5e1e027dbf..55e986310a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONEntryImpl.java @@ -41,12 +41,12 @@ package org.jooq.impl; import static org.jooq.impl.DSL.NULL; import static org.jooq.impl.DSL.coalesce; import static org.jooq.impl.DSL.field; +import static org.jooq.impl.DSL.inlined; import static org.jooq.impl.Keywords.K_FORMAT; import static org.jooq.impl.Keywords.K_JSON; import static org.jooq.impl.Keywords.K_KEY; import static org.jooq.impl.Keywords.K_VALUE; import static org.jooq.impl.SQLDataType.VARCHAR; -import static org.jooq.impl.Tools.inlined; import java.util.UUID; import java.util.function.Function; diff --git a/jOOQ/src/main/java/org/jooq/impl/JSONValue.java b/jOOQ/src/main/java/org/jooq/impl/JSONValue.java index f9e5052f64..529b343e64 100644 --- a/jOOQ/src/main/java/org/jooq/impl/JSONValue.java +++ b/jOOQ/src/main/java/org/jooq/impl/JSONValue.java @@ -39,6 +39,7 @@ package org.jooq.impl; // ... import static org.jooq.conf.ParamType.INLINED; +import static org.jooq.impl.DSL.inlined; import static org.jooq.impl.JSONValue.Behaviour.DEFAULT; import static org.jooq.impl.JSONValue.Behaviour.ERROR; import static org.jooq.impl.JSONValue.Behaviour.NULL; @@ -50,7 +51,6 @@ import static org.jooq.impl.Names.N_JSON_EXTRACT; import static org.jooq.impl.Names.N_JSON_VALUE; import static org.jooq.impl.SQLDataType.JSONB; import static org.jooq.impl.Tools.castIfNeeded; -import static org.jooq.impl.Tools.inlined; import java.util.Set; diff --git a/jOOQ/src/main/java/org/jooq/impl/Keywords.java b/jOOQ/src/main/java/org/jooq/impl/Keywords.java index a0dd85b746..5123ec8b7f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Keywords.java +++ b/jOOQ/src/main/java/org/jooq/impl/Keywords.java @@ -122,7 +122,7 @@ final class Keywords { static final Keyword K_DAY = keyword("day"); static final Keyword K_DAY_MICROSECOND = keyword("day_microsecond"); static final Keyword K_DAY_MILLISECOND = keyword("day_millisecond"); - static final Keyword K_DAY_TO_SECOND = keyword("day_to_second"); + static final Keyword K_DAY_TO_SECOND = keyword("day to second"); static final Keyword K_DECIMAL = keyword("decimal"); static final Keyword K_DECLARE = keyword("declare"); static final Keyword K_DEFAULT = keyword("default"); diff --git a/jOOQ/src/main/java/org/jooq/impl/PositionalWindowFunction.java b/jOOQ/src/main/java/org/jooq/impl/PositionalWindowFunction.java index 1e7982c970..54ed4a343a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/PositionalWindowFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/PositionalWindowFunction.java @@ -37,17 +37,15 @@ */ package org.jooq.impl; -// ... import static org.jooq.conf.ParamType.INLINED; +import static org.jooq.impl.DSL.inlined; import static org.jooq.impl.Keywords.K_COALESCE; import static org.jooq.impl.PositionalWindowFunction.PositionalFunctionType.LAG; import static org.jooq.impl.PositionalWindowFunction.PositionalFunctionType.LEAD; -import static org.jooq.impl.Tools.inlined; import org.jooq.Context; import org.jooq.Field; import org.jooq.Name; -import org.jooq.conf.ParamType; /** * @author Lukas Eder diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 09f6e98db4..8bfe2e4497 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -1959,10 +1959,6 @@ final class Tools { return result; } - static final Field inlined(Field field) { - return CustomField.of(field.getQualifiedName(), field.getDataType(), c -> c.visit(field, INLINED)); - } - static final IllegalArgumentException indexFail(Row row, Field field) { return new IllegalArgumentException("Field (" + field + ") is not contained in Row " + row); } diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLTable.java b/jOOQ/src/main/java/org/jooq/impl/XMLTable.java index 67a6c489de..86d5ee4815 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLTable.java @@ -42,6 +42,7 @@ package org.jooq.impl; import static org.jooq.conf.ParamType.INLINED; import static org.jooq.impl.DSL.cast; import static org.jooq.impl.DSL.inline; +import static org.jooq.impl.DSL.inlined; import static org.jooq.impl.DSL.rowNumber; import static org.jooq.impl.DSL.select; import static org.jooq.impl.DSL.table; @@ -56,7 +57,6 @@ import static org.jooq.impl.Keywords.K_VALUE; import static org.jooq.impl.Keywords.K_XMLTABLE; import static org.jooq.impl.Names.N_XMLTABLE; import static org.jooq.impl.SQLDataType.XML; -import static org.jooq.impl.Tools.inlined; import static org.jooq.impl.Tools.visitSubquery; import static org.jooq.impl.XMLPassingMechanism.BY_REF; import static org.jooq.impl.XMLPassingMechanism.BY_VALUE;