diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/PredicateTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/PredicateTests.java index 9d359c13fb..c7a21f46ab 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/PredicateTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/PredicateTests.java @@ -487,4 +487,19 @@ extends BaseTest extends NamedTypeProviderQueryPart, AliasProvider field); + /** + * lower(this) = lower(value) + */ + @Support + Condition equalIgnoreCase(String value); + + /** + * lower(this) = lower(value) + */ + @Support + Condition equalIgnoreCase(Field value); + /** * this = (Select ...) */ @@ -780,6 +792,18 @@ public interface Field extends NamedTypeProviderQueryPart, AliasProvider field); + /** + * lower(this) != lower(value) + */ + @Support + Condition notEqualIgnoreCase(String value); + + /** + * lower(this) != lower(value) + */ + @Support + Condition notEqualIgnoreCase(Field value); + /** * this != (Select ...) */ diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index d2f18c4529..3f140bee3f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -535,6 +535,16 @@ abstract class AbstractField extends AbstractNamedTypeProviderQueryPart im return new CompareCondition(this, nullSafe(field), Comparator.EQUALS); } + @Override + public final Condition equalIgnoreCase(String value) { + return equalIgnoreCase(val(value)); + } + + @Override + public final Condition equalIgnoreCase(Field value) { + return Factory.lower(cast(String.class)).equal(Factory.lower(value)); + } + @Override public final Condition equal(Select query) { return new SelectQueryAsSubQueryCondition(query, this, SubQueryOperator.EQUALS); @@ -586,6 +596,16 @@ abstract class AbstractField extends AbstractNamedTypeProviderQueryPart im return new CompareCondition(this, nullSafe(field), Comparator.NOT_EQUALS); } + @Override + public final Condition notEqualIgnoreCase(String value) { + return notEqualIgnoreCase(val(value)); + } + + @Override + public final Condition notEqualIgnoreCase(Field value) { + return Factory.lower(cast(String.class)).notEqual(Factory.lower(value)); + } + @Override public final Condition notEqual(Select query) { return new SelectQueryAsSubQueryCondition(query, this, SubQueryOperator.NOT_EQUALS);