I'm a bit puzzled by this behavior. If you define your own function, and reference it in a check constraint, and then try to select from sqlite_master, the select fails with Error: malformed database schema. I've noticed this since 3.7.2 and it still happens at 3.7.15.1.
Example (hopefully this will format properly): /rococo3/peter > sqlite3 -header -column b.sqlite sqlite3 -header -column b.sqlite SQLite version 3.7.15.1 2012-12-19 20:39:10 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .read add_check.sql select load_extension ('libspatialite.so'); load_extension ('libspatialite.so') ----------------------------------- create table if not exists boom (c1 float check(c1 <> PI())); select * from sqlite_master; type name tbl_name rootpage sql ---------- ---------- ---------- ---------- ---------------------------------------------- table boom boom 2 CREATE TABLE boom (c1 float check(c1 <> PI())) .quit sqlite> .q .q /rococo3/peter > sqlite3 -header -column b.sqlite SQLite version 3.7.15.1 2012-12-19 20:39:10 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from sqlite_master; Error: malformed database schema (boom) - no such function: PI sqlite> .q /rococo3/peter > Oddly enough, this doesn't happen with triggers -- you only get an error message when actually firing the trigger. Peter _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users