Skip to content

The search box in the website knows all the secrets—try it!

For any queries, join our Discord Channel to reach us faster.

JasperFx Logo

JasperFx provides formal support for Marten and other JasperFx libraries. Please check our Support Plans for more details.

Case Sensitivity

String comparisons in PostgreSQL are case sensitive* (unless a case-insensitive collation were to be introduced). To work around this, PostgreSQL has several methods to match strings in a case-insensitive manner. Consequently, Marten also makes use of these methods to translate case-insensitive queries to pgSQL. See querying document with Linq for querying by strings.

INFO

Databases, tables, fields and column names are case-independent, unless created with double quotes.

Case-Insensitivity & Marten Internals

Marten query parser recognizes case-insensitive comparisons from the use of StringComparison.CurrentCultureIgnoreCase. Such comparisons are translated to use the ILIKE (or its equivalent operator ~~*) PostgreSQL extension that matches strings independent of case.

The use of ILIKE pattern match in place of equality comparison has the consequence that matching on % wildcard literal needs to be escaped as \%, e.g. abc% would match on abc followed by any characters, whereas abc\% would only match the exact string of abc%.

See Postgresql documentation on pattern matching for more.

Released under the MIT License.