diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index bffc2507ad..bcaee61146 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -15469,6 +15469,42 @@ public class DSL { return new Space(count); } + /** + * The SPLIT_PART function. + */ + @NotNull + @Support({ POSTGRES }) + public static Field splitPart(Field string, String delimiter, Number n) { + return new SplitPart(string, Tools.field(delimiter), Tools.field(n)); + } + + /** + * The SPLIT_PART function. + */ + @NotNull + @Support({ POSTGRES }) + public static Field splitPart(Field string, String delimiter, Field n) { + return new SplitPart(string, Tools.field(delimiter), n); + } + + /** + * The SPLIT_PART function. + */ + @NotNull + @Support({ POSTGRES }) + public static Field splitPart(Field string, Field delimiter, Number n) { + return new SplitPart(string, delimiter, Tools.field(n)); + } + + /** + * The SPLIT_PART function. + */ + @NotNull + @Support({ POSTGRES }) + public static Field splitPart(Field string, Field delimiter, Field n) { + return new SplitPart(string, delimiter, n); + } + /** * The SUBSTRING function. */ @@ -15733,24 +15769,6 @@ public class DSL { return new RegexpReplace(field, Tools.nullSafe(pattern), Tools.nullSafe(replacement), false); } - /** - * Get the SPLIT_PART function. - */ - @NotNull - @Support({ POSTGRES }) - public static Field splitPart(Field field, String delimiter, int n) { - return splitPart(field, Tools.field(delimiter), Tools.field(n)); - } - - /** - * Get the SPLIT_PART function. - */ - @NotNull - @Support({ POSTGRES }) - public static Field splitPart(Field field, Field delimiter, Field n) { - return new SplitPart(field, Tools.nullSafe(delimiter), Tools.nullSafe(n)); - } - /** * Get the overlay(in, placing, startIndex) function. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/SplitPart.java b/jOOQ/src/main/java/org/jooq/impl/SplitPart.java index 5ffd7d7a78..833d12042a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SplitPart.java +++ b/jOOQ/src/main/java/org/jooq/impl/SplitPart.java @@ -37,34 +37,57 @@ */ package org.jooq.impl; -import static org.jooq.impl.Names.N_SPLIT_PART; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; +import static org.jooq.impl.Keywords.*; +import static org.jooq.impl.Names.*; +import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; +import static org.jooq.impl.Tools.BooleanDataKey.*; +import static org.jooq.SQLDialect.*; -import org.jooq.Context; -import org.jooq.Field; +import org.jooq.*; +import org.jooq.impl.*; + +import java.util.*; /** - * @author Lukas Eder + * The SPLIT PART statement. */ -final class SplitPart extends AbstractField { +@SuppressWarnings({ "rawtypes", "unchecked", "unused" }) +final class SplitPart +extends + AbstractField +{ - /** - * Generated UID - */ - private static final long serialVersionUID = -5368480391694006195L; - private final Field field; - private final Field delimiter; - private final Field n; + private static final long serialVersionUID = 1L; - SplitPart(Field field, Field delimiter, Field n) { - super(N_SPLIT_PART, field.getDataType()); + private final Field string; + private final Field delimiter; + private final Field n; - this.field = field; - this.delimiter = delimiter; - this.n = n; + SplitPart( + Field string, + Field delimiter, + Field n + ) { + super(N_SPLIT_PART, allNotNull(VARCHAR, string, delimiter, n)); + + this.string = nullSafeNotNull(string, VARCHAR); + this.delimiter = nullSafeNotNull(delimiter, VARCHAR); + this.n = nullSafeNotNull(n, INTEGER); } + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + + + @Override public final void accept(Context ctx) { - ctx.visit(N_SPLIT_PART).sql('(').visit(field).sql(", ").visit(delimiter).sql(", ").visit(n).sql(')'); + ctx.visit(N_SPLIT_PART).sql('(').visit(string).sql(", ").visit(delimiter).sql(", ").visit(n).sql(')'); } + + }