[jOOQ/jOOQ#11061] [jOOQ/jOOQ#11070] [jOOQ/jOOQ#11091] REPLACE
This commit is contained in:
parent
7b659728fa
commit
2f8d68812c
@ -15151,6 +15151,114 @@ public class DSL {
|
||||
return new Repeat(string, count);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(String string, String search, String replace) {
|
||||
return new Replace(Tools.field(string), Tools.field(search), Tools.field(replace));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(String string, String search, Field<String> replace) {
|
||||
return new Replace(Tools.field(string), Tools.field(search), replace);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(String string, Field<String> search, String replace) {
|
||||
return new Replace(Tools.field(string), search, Tools.field(replace));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(String string, Field<String> search, Field<String> replace) {
|
||||
return new Replace(Tools.field(string), search, replace);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> string, String search, String replace) {
|
||||
return new Replace(string, Tools.field(search), Tools.field(replace));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> string, String search, Field<String> replace) {
|
||||
return new Replace(string, Tools.field(search), replace);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> string, Field<String> search, String replace) {
|
||||
return new Replace(string, search, Tools.field(replace));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> string, Field<String> search, Field<String> replace) {
|
||||
return new Replace(string, search, replace);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(String string, String search) {
|
||||
return new Replace(Tools.field(string), Tools.field(search));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(String string, Field<String> search) {
|
||||
return new Replace(Tools.field(string), search);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> string, String search) {
|
||||
return new Replace(string, Tools.field(search));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPLACE</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> string, Field<String> search) {
|
||||
return new Replace(string, search);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REVERSE</code> function.
|
||||
*/
|
||||
@ -15683,56 +15791,6 @@ public class DSL {
|
||||
return replace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the replace(field, search) function.
|
||||
*
|
||||
* @see #replace(Field, Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> field, String search) {
|
||||
return replace(Tools.nullSafe(field), Tools.field(search));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the replace(field, search) function.
|
||||
* <p>
|
||||
* This renders the replace or str_replace function where available:
|
||||
* <code><pre>replace([field], [search]) or
|
||||
* str_replace([field], [search])</pre></code> ... or emulates it elsewhere
|
||||
* using the three-argument replace function:
|
||||
* <code><pre>replace([field], [search], '')</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> field, Field<String> search) {
|
||||
return new Replace(Tools.nullSafe(field), Tools.nullSafe(search), null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the replace(field, search, replace) function.
|
||||
*
|
||||
* @see #replace(Field, Field, Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> field, String search, String replace) {
|
||||
return replace(Tools.nullSafe(field), Tools.field(search), Tools.field(replace));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the replace(field, search, replace) function.
|
||||
* <p>
|
||||
* This renders the replace or str_replace function:
|
||||
* <code><pre>replace([field], [search]) or
|
||||
* str_replace([field], [search])</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> replace(Field<String> field, Field<String> search, Field<String> replace) {
|
||||
return new Replace(Tools.nullSafe(field), Tools.nullSafe(search), Tools.nullSafe(replace));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>REGEXP_REPLACE_ALL</code> function.
|
||||
*/
|
||||
|
||||
@ -37,35 +37,64 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import static org.jooq.impl.DSL.function;
|
||||
import static org.jooq.impl.DSL.val;
|
||||
import static org.jooq.impl.Names.N_REPLACE;
|
||||
import static org.jooq.impl.SQLDataType.VARCHAR;
|
||||
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>REPLACE</code> statement.
|
||||
*/
|
||||
final class Replace extends AbstractField<String> {
|
||||
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
|
||||
final class Replace
|
||||
extends
|
||||
AbstractField<String>
|
||||
{
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = -7273879239726265322L;
|
||||
private final Field<?> field;
|
||||
private final Field<?> search;
|
||||
private final Field<?> replace;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
Replace(Field<?> field, Field<?> search, Field<?> replace) {
|
||||
super(N_REPLACE, SQLDataType.VARCHAR);
|
||||
private final Field<String> string;
|
||||
private final Field<String> search;
|
||||
private final Field<String> replace;
|
||||
|
||||
this.field = field;
|
||||
this.search = search;
|
||||
this.replace = replace;
|
||||
Replace(
|
||||
Field string,
|
||||
Field search
|
||||
) {
|
||||
super(N_REPLACE, allNotNull(VARCHAR, string, search));
|
||||
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.search = nullSafeNotNull(search, VARCHAR);
|
||||
this.replace = null;
|
||||
}
|
||||
|
||||
Replace(
|
||||
Field string,
|
||||
Field search,
|
||||
Field replace
|
||||
) {
|
||||
super(N_REPLACE, allNotNull(VARCHAR, string, search, replace));
|
||||
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.search = nullSafeNotNull(search, VARCHAR);
|
||||
this.replace = nullSafeNotNull(replace, VARCHAR);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
|
||||
@ -109,19 +138,21 @@ final class Replace extends AbstractField<String> {
|
||||
case POSTGRES:
|
||||
case SQLITE:
|
||||
if (replace == null)
|
||||
ctx.visit(function("replace", VARCHAR, field, search, val("")));
|
||||
ctx.visit(function("replace", VARCHAR, string, search, val("")));
|
||||
else
|
||||
ctx.visit(function("replace", VARCHAR, field, search, replace));
|
||||
ctx.visit(function("replace", VARCHAR, string, search, replace));
|
||||
|
||||
return;
|
||||
|
||||
default:
|
||||
if (replace == null)
|
||||
ctx.visit(function("replace", VARCHAR, field, search));
|
||||
ctx.visit(function("replace", VARCHAR, string, search));
|
||||
else
|
||||
ctx.visit(function("replace", VARCHAR, field, search, replace));
|
||||
ctx.visit(function("replace", VARCHAR, string, search, replace));
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user