On 9/7/15, Domingo Alvarez Duarte <sqlite-mail at dev.dadbiz.es> wrote: > Hello ! > > I'm converting a database from postgresql and when I tried to create this > index it fails: > > CREATE UNIQUE INDEX country_name_idx on country(lower(name)); > > Error: "non-deterministic functions prohibited in index expressions" > > Can the lower function be non deterministic ? >
My guess: You are using ICU or some other extension that is replacing the built-in lower() function with another. And that extension is not marking its new lower() function as SQLITE_DETERMINISTIC. (https://www.sqlite.org/c3ref/c_deterministic.html) -- D. Richard Hipp drh at sqlite.org