diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index f9d1da8cde..067fc70baf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -739,12 +739,12 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final LikeEscapeStep like(String value) { - return like(Tools.field(value, String.class)); + return like(Tools.field(value)); } @Override public final Condition like(String value, char escape) { - return like(Tools.field(value, String.class), escape); + return like(Tools.field(value), escape); } @Override @@ -759,12 +759,12 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final LikeEscapeStep likeIgnoreCase(String value) { - return likeIgnoreCase(Tools.field(value, String.class)); + return likeIgnoreCase(Tools.field(value)); } @Override public final Condition likeIgnoreCase(String value, char escape) { - return likeIgnoreCase(Tools.field(value, String.class), escape); + return likeIgnoreCase(Tools.field(value), escape); } @Override @@ -779,7 +779,7 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final Condition likeRegex(String pattern) { - return likeRegex(Tools.field(pattern, String.class)); + return likeRegex(Tools.field(pattern)); } @Override @@ -789,12 +789,12 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final LikeEscapeStep notLike(String value) { - return notLike(Tools.field(value, String.class)); + return notLike(Tools.field(value)); } @Override public final Condition notLike(String value, char escape) { - return notLike(Tools.field(value, String.class), escape); + return notLike(Tools.field(value), escape); } @Override @@ -809,12 +809,12 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final LikeEscapeStep notLikeIgnoreCase(String value) { - return notLikeIgnoreCase(Tools.field(value, String.class)); + return notLikeIgnoreCase(Tools.field(value)); } @Override public final Condition notLikeIgnoreCase(String value, char escape) { - return notLikeIgnoreCase(Tools.field(value, String.class), escape); + return notLikeIgnoreCase(Tools.field(value), escape); } @Override @@ -1217,7 +1217,7 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final Condition equalIgnoreCase(String value) { - return equalIgnoreCase(Tools.field(value, String.class)); + return equalIgnoreCase(Tools.field(value)); } @Override @@ -1247,7 +1247,7 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override public final Condition notEqualIgnoreCase(String value) { - return notEqualIgnoreCase(Tools.field(value, String.class)); + return notEqualIgnoreCase(Tools.field(value)); } @Override @@ -2052,13 +2052,25 @@ abstract class AbstractField extends AbstractNamed implements Field { @Override @Deprecated public final Field decode(T search, Z result) { - return DSL.decode(this, search, result); + return DSL.decode(this, Tools.field(search, this), Tools.field(result)); } @Override @Deprecated public final Field decode(T search, Z result, Object... more) { - return DSL.decode(this, search, result, more); + Field r = Tools.field(result); + DataType[] types = new DataType[more.length]; + + for (int i = 0; i < types.length - 1; i = i + 2) { + types[i] = getDataType(); + types[i + 1] = r.getDataType(); + } + + if (types.length % 2 == 1) { + types[types.length - 1] = r.getDataType(); + } + + return DSL.decode(this, Tools.field(search, this), r, Tools.fieldArray(Tools.fields(more, types))); } @Override @@ -2079,7 +2091,7 @@ abstract class AbstractField extends AbstractNamed implements Field { @SafeVarargs public final Field coalesce(T option, T... options) { - return DSL.coalesce(this, Tools.combine(Tools.field(option), Tools.fields(options).toArray(EMPTY_FIELD))); + return DSL.coalesce(this, Tools.combine(Tools.field(option, this), Tools.fields(options, this).toArray(EMPTY_FIELD))); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CaseValueStepImpl.java b/jOOQ/src/main/java/org/jooq/impl/CaseValueStepImpl.java index f121d14bcc..870babadde 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CaseValueStepImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CaseValueStepImpl.java @@ -60,17 +60,17 @@ final class CaseValueStepImpl implements CaseValueStep { @Override public final CaseWhenStep when(V compareValue, T result) { - return when(Tools.field(compareValue), Tools.field(result)); + return when(Tools.field(compareValue, value), Tools.field(result)); } @Override public final CaseWhenStep when(V compareValue, Field result) { - return when(Tools.field(compareValue), result); + return when(Tools.field(compareValue, value), result); } @Override public final CaseWhenStep when(V compareValue, Select> result) { - return when(Tools.field(compareValue), DSL.field(result)); + return when(Tools.field(compareValue, value), DSL.field(result)); } @Override @@ -93,7 +93,7 @@ final class CaseValueStepImpl implements CaseValueStep { Map, Field> fields = new LinkedHashMap, Field>(); for (Entry entry : values.entrySet()) - fields.put(Tools.field(entry.getKey()), Tools.field(entry.getValue())); + fields.put(Tools.field(entry.getKey(), value), Tools.field(entry.getValue())); return mapFields(fields); } diff --git a/jOOQ/src/main/java/org/jooq/impl/CaseWhenStepImpl.java b/jOOQ/src/main/java/org/jooq/impl/CaseWhenStepImpl.java index ed6c91b4f2..caa63a0f9d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CaseWhenStepImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CaseWhenStepImpl.java @@ -114,12 +114,12 @@ final class CaseWhenStepImpl extends AbstractFunction implements CaseWh @Override public final CaseWhenStep when(V compareValue, T result) { - return when(Tools.field(compareValue), Tools.field(result)); + return when(Tools.field(compareValue, value), Tools.field(result)); } @Override public final CaseWhenStep when(V compareValue, Field result) { - return when(Tools.field(compareValue), result); + return when(Tools.field(compareValue, value), result); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index a658149596..cd1a081716 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -10830,7 +10830,7 @@ public class DSL { */ @Support public static Condition condition(Boolean value) { - return condition(Tools.field(value, Boolean.class)); + return condition(Tools.field(value)); } /** @@ -11069,7 +11069,7 @@ public class DSL { @Deprecated @Support public static Field not(Boolean value) { - return not(Tools.field(value, Boolean.class)); + return not(Tools.field(value)); } /** @@ -12372,7 +12372,7 @@ public class DSL { */ @Support public static Field nvl(T value, Field defaultValue) { - return nvl0(Tools.field(value), nullSafe(defaultValue)); + return nvl0(Tools.field(value, defaultValue), nullSafe(defaultValue)); } /** @@ -12382,7 +12382,7 @@ public class DSL { */ @Support public static Field nvl(Field value, T defaultValue) { - return nvl0(nullSafe(value), Tools.field(defaultValue)); + return nvl0(nullSafe(value), Tools.field(defaultValue, value)); } /** @@ -12481,7 +12481,7 @@ public class DSL { */ @Support public static Field nvl2(Field value, Z valueIfNotNull, Field valueIfNull) { - return nvl20(nullSafe(value), Tools.field(valueIfNotNull), nullSafe(valueIfNull)); + return nvl20(nullSafe(value), Tools.field(valueIfNotNull, valueIfNull), nullSafe(valueIfNull)); } /** @@ -12491,7 +12491,7 @@ public class DSL { */ @Support public static Field nvl2(Field value, Field valueIfNotNull, Z valueIfNull) { - return nvl20(nullSafe(value), nullSafe(valueIfNotNull), Tools.field(valueIfNull)); + return nvl20(nullSafe(value), nullSafe(valueIfNotNull), Tools.field(valueIfNull, valueIfNotNull)); } /** @@ -12534,7 +12534,7 @@ public class DSL { */ @Support public static Field nullif(T value, Field other) { - return nullif0(Tools.field(value), nullSafe(other)); + return nullif0(Tools.field(value, other), nullSafe(other)); } /** @@ -12544,7 +12544,7 @@ public class DSL { */ @Support public static Field nullif(Field value, T other) { - return nullif0(nullSafe(value), Tools.field(other)); + return nullif0(nullSafe(value), Tools.field(other, value)); } /** @@ -12600,7 +12600,7 @@ public class DSL { */ @Support public static Field lower(String value) { - return lower(Tools.field(value, String.class)); + return lower(Tools.field(value)); } /** @@ -12621,7 +12621,7 @@ public class DSL { */ @Support public static Field trim(String value) { - return trim(Tools.field(value, String.class)); + return trim(Tools.field(value)); } /** @@ -12664,7 +12664,7 @@ public class DSL { */ @Support public static Field ltrim(String value) { - return ltrim(Tools.field(value, String.class)); + return ltrim(Tools.field(value)); } /** @@ -12719,7 +12719,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field rpad(Field field, int length, String character) { - return rpad(nullSafe(field), Tools.field(length), Tools.field(character, String.class)); + return rpad(nullSafe(field), Tools.field(length), Tools.field(character)); } /** @@ -12780,7 +12780,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field lpad(Field field, int length, String character) { - return lpad(nullSafe(field), Tools.field(length), Tools.field(character, String.class)); + return lpad(nullSafe(field), Tools.field(length), Tools.field(character)); } /** @@ -12825,7 +12825,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field repeat(String field, int count) { - return repeat(Tools.field(field, String.class), Tools.field(count)); + return repeat(Tools.field(field), Tools.field(count)); } /** @@ -12835,7 +12835,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field repeat(String field, Field count) { - return repeat(Tools.field(field, String.class), nullSafe(count)); + return repeat(Tools.field(field), nullSafe(count)); } /** @@ -12957,7 +12957,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field replace(Field field, String search) { - return replace(nullSafe(field), Tools.field(search, String.class)); + return replace(nullSafe(field), Tools.field(search)); } /** @@ -12981,7 +12981,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field replace(Field field, String search, String replace) { - return replace(nullSafe(field), Tools.field(search, String.class), Tools.field(replace, String.class)); + return replace(nullSafe(field), Tools.field(search), Tools.field(replace)); } /** @@ -13003,7 +13003,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(String in, String search) { - return position(Tools.field(in, String.class), Tools.field(search, String.class)); + return position(Tools.field(in), Tools.field(search)); } /** @@ -13013,7 +13013,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(String in, Field search) { - return position(Tools.field(in, String.class), nullSafe(search)); + return position(Tools.field(in), nullSafe(search)); } /** @@ -13023,7 +13023,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(Field in, String search) { - return position(nullSafe(in), Tools.field(search, String.class)); + return position(nullSafe(in), Tools.field(search)); } /** @@ -13048,7 +13048,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(String in, String search, int startIndex) { - return position(Tools.field(in, String.class), Tools.field(search, String.class), Tools.field(startIndex)); + return position(Tools.field(in), Tools.field(search), Tools.field(startIndex)); } /** @@ -13058,7 +13058,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(String in, Field search, int startIndex) { - return position(Tools.field(in, String.class), nullSafe(search), Tools.field(startIndex)); + return position(Tools.field(in), nullSafe(search), Tools.field(startIndex)); } /** @@ -13068,7 +13068,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(Field in, String search, int startIndex) { - return position(nullSafe(in), Tools.field(search, String.class), Tools.field(startIndex)); + return position(nullSafe(in), Tools.field(search), Tools.field(startIndex)); } /** @@ -13093,7 +13093,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(String in, String search, Field startIndex) { - return position(Tools.field(in, String.class), Tools.field(search, String.class), nullSafe(startIndex)); + return position(Tools.field(in), Tools.field(search), nullSafe(startIndex)); } /** @@ -13103,7 +13103,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(String in, Field search, Field startIndex) { - return position(Tools.field(in, String.class), nullSafe(search), nullSafe(startIndex)); + return position(Tools.field(in), nullSafe(search), nullSafe(startIndex)); } /** @@ -13113,7 +13113,7 @@ public class DSL { */ @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field position(Field in, String search, Field startIndex) { - return position(nullSafe(in), Tools.field(search, String.class), nullSafe(startIndex)); + return position(nullSafe(in), Tools.field(search), nullSafe(startIndex)); } /** @@ -13138,7 +13138,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES }) public static Field ascii(String field) { - return ascii(Tools.field(field, String.class)); + return ascii(Tools.field(field)); } /** @@ -13159,7 +13159,7 @@ public class DSL { */ @Support public static Field concat(Field field, String value) { - return concat(nullSafe(field), Tools.field(value, String.class)); + return concat(nullSafe(field), Tools.field(value)); } /** @@ -13169,7 +13169,7 @@ public class DSL { */ @Support public static Field concat(String value, Field field) { - return concat(Tools.field(value, String.class), nullSafe(field)); + return concat(Tools.field(value), nullSafe(field)); } /** @@ -13375,7 +13375,7 @@ public class DSL { */ @Support public static Field length(String value) { - return length(Tools.field(value, String.class)); + return length(Tools.field(value)); } /** @@ -13436,7 +13436,7 @@ public class DSL { */ @Support public static Field octetLength(String value) { - return octetLength(Tools.field(value, String.class)); + return octetLength(Tools.field(value)); } /** @@ -14550,7 +14550,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field date(String value) { - return Tools.field(Convert.convert(value, Date.class), SQLDataType.DATE); + return Tools.field(Convert.convert(value, Date.class)); } /** @@ -14558,7 +14558,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field date(java.util.Date value) { - return Tools.field(Convert.convert(value, Date.class), SQLDataType.DATE); + return Tools.field(Convert.convert(value, Date.class)); } /** @@ -14574,7 +14574,7 @@ public class DSL { */ @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) public static Field