containsCase method

Expression<bool?> containsCase(
  1. String substring, {
  2. bool caseSensitive = false,
})

Version of contains that allows controlling case sensitivity better.

The default contains method uses sqlite's LIKE, which is case- insensitive for the English alphabet only. containsCase is implemented in Dart with better support for casing. When caseSensitive is false (the default), this is equivalent to the Dart expression this.contains(substring), where this is the string value this expression evaluates to. When caseSensitive is true, the equivalent Dart expression would be this.toLowerCase().contains(substring.toLowerCase()).

Note that, while Dart has better support for an international alphabet, it can still yield unexpected results like the Turkish İ Problem

Implementation

Expression<bool?> containsCase(String substring,
    {bool caseSensitive = false}) {
  return FunctionCallExpression('moor_contains', [
    this,
    Variable<String>(substring),
    if (caseSensitive) const Constant<int>(1) else const Constant<int>(0),
  ]);
}