Skip to content

Localize Ecto version 1.0.0-rc.0

Choose a tag to compare

@kipcole9 kipcole9 released this 31 Jul 00:22
· 7 commits to main since this release

[1.0.0-rc.0] - 2026-07-28

The 1.0 release candidate. localize_ecto now supports SQLite as well as PostgreSQL, with the same locale resolving to the same collation on both.

Added

  • SQLite support via localize_icu, a bundled SQLite loadable extension that registers ICU collations under the same names PostgreSQL uses. The same locale sorts identically on both databases.

  • Localize.Ecto.SQLite3 provides collate/1,2, lower/1,2, upper/1,2 and initcap/1,2 for SQLite. BCP 47 tailorings such as -u-co-phonebk need no migration; collations are registered on demand.

  • Localize.Ecto.SQLite3.Extension locates the compiled extension for the :load_extensions option of Exqlite and Ecto.Adapters.SQLite3.

  • Localize.Ecto.Postgres names the PostgreSQL macros explicitly, alongside the new SQLite module.

Notes

  • SQLite compares canonically equivalent strings (the NFC and NFD forms of café) as equal where PostgreSQL, using deterministic collations, compares them as unequal. Ordering agrees on both; normalizing on write removes the difference.

Changed

  • The SQLite extension is an opt-in build (config :localize_ecto, :sqlite_icu, true, or LOCALIZE_ECTO_SQLITE_ICU=true). Without it the package stays pure Elixir and PostgreSQL users are unaffected.

  • Query macros emit Ecto's identifier/1 rather than the deprecated literal/1. The generated SQL is unchanged.