This commit is contained in:
Lukas Eder 2020-12-08 22:07:58 +01:00
parent 910f2dd760
commit 93c58aa9f5
2 changed files with 77 additions and 36 deletions

View File

@ -15469,6 +15469,42 @@ public class DSL {
return new Space(count);
}
/**
* The <code>SPLIT_PART</code> function.
*/
@NotNull
@Support({ POSTGRES })
public static Field<String> splitPart(Field<String> string, String delimiter, Number n) {
return new SplitPart(string, Tools.field(delimiter), Tools.field(n));
}
/**
* The <code>SPLIT_PART</code> function.
*/
@NotNull
@Support({ POSTGRES })
public static Field<String> splitPart(Field<String> string, String delimiter, Field<? extends Number> n) {
return new SplitPart(string, Tools.field(delimiter), n);
}
/**
* The <code>SPLIT_PART</code> function.
*/
@NotNull
@Support({ POSTGRES })
public static Field<String> splitPart(Field<String> string, Field<String> delimiter, Number n) {
return new SplitPart(string, delimiter, Tools.field(n));
}
/**
* The <code>SPLIT_PART</code> function.
*/
@NotNull
@Support({ POSTGRES })
public static Field<String> splitPart(Field<String> string, Field<String> delimiter, Field<? extends Number> n) {
return new SplitPart(string, delimiter, n);
}
/**
* The <code>SUBSTRING</code> function.
*/
@ -15733,24 +15769,6 @@ public class DSL {
return new RegexpReplace(field, Tools.nullSafe(pattern), Tools.nullSafe(replacement), false);
}
/**
* Get the <code>SPLIT_PART</code> function.
*/
@NotNull
@Support({ POSTGRES })
public static Field<String> splitPart(Field<String> field, String delimiter, int n) {
return splitPart(field, Tools.field(delimiter), Tools.field(n));
}
/**
* Get the <code>SPLIT_PART</code> function.
*/
@NotNull
@Support({ POSTGRES })
public static Field<String> splitPart(Field<String> field, Field<String> delimiter, Field<Integer> n) {
return new SplitPart(field, Tools.nullSafe(delimiter), Tools.nullSafe(n));
}
/**
* Get the overlay(in, placing, startIndex) function.
*/

View File

@ -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 <code>SPLIT PART</code> statement.
*/
final class SplitPart extends AbstractField<String> {
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
final class SplitPart
extends
AbstractField<String>
{
/**
* Generated UID
*/
private static final long serialVersionUID = -5368480391694006195L;
private final Field<String> field;
private final Field<String> delimiter;
private final Field<Integer> n;
private static final long serialVersionUID = 1L;
SplitPart(Field<String> field, Field<String> delimiter, Field<Integer> n) {
super(N_SPLIT_PART, field.getDataType());
private final Field<String> string;
private final Field<String> delimiter;
private final Field<? extends Number> n;
this.field = field;
this.delimiter = delimiter;
this.n = n;
SplitPart(
Field<String> string,
Field<String> delimiter,
Field<? extends Number> 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(')');
}
}