There's functions like ilike where the docs say:
Supported by PostgreSQL only.
Or others where both MySQL and Postgres support them, but no other RDBMSes. Then there's also modules like Database.Esqueleto.PostgreSQL that have RDBMS-specific code, and this is explicitly pointed out. So it seems like the intent is that such functions don't go in the generic Database.Esqueleto.
It's also pretty confusing as a user, and sometimes frustrating to find a function in HLS autocomplete that I can't actually use. It would be preferable if I can safely use anything from Database.Esqueleto (or of course .Experimental) without having to check individual docs if it's actually available on my RDBMS; anything that's implementation-specific should come from other modules.
There's functions like
ilikewhere the docs say:Or others where both MySQL and Postgres support them, but no other RDBMSes. Then there's also modules like
Database.Esqueleto.PostgreSQLthat have RDBMS-specific code, and this is explicitly pointed out. So it seems like the intent is that such functions don't go in the genericDatabase.Esqueleto.It's also pretty confusing as a user, and sometimes frustrating to find a function in HLS autocomplete that I can't actually use. It would be preferable if I can safely use anything from
Database.Esqueleto(or of course.Experimental) without having to check individual docs if it's actually available on my RDBMS; anything that's implementation-specific should come from other modules.