Hi Martin, I haven't touched at the code of mirage/orm for a very long time (2.5y!) but I'm not very surprised you can still find bugs in it: the code is quite fragile (too much camlp4 for its own good) and (mainly) works only because of the relatively large test-suite. But patches are always very welcome!
Thanks, Thomas > On 30 Mar 2015, at 12:20, Martin DeMello <[email protected]> wrote: > > Problem demonstrated below: violating a unique constraint in sqlite3 seems to > leave things in an inconsistent state. > > Also, tangentially, I discovered this while trying to maintain my own id on a > table because my app is serving json objects over a rest api, and I need some > sort of unique id for clients to be able to send updates to existing objects. > If there were a way to have the autogenerated sql __id__ column be a record > field, that would be extremely useful. > > martin > > $ cat db.ml <http://db.ml/> > type item = { > id: int; > } with orm ( > unique: item<id> > ) > > let db_name = "test.db" > > $ cat init_db.ml <http://init_db.ml/> > open Db > > let _ = > let db = item_init Db.db_name in > let item = { > id = 1; > } in > item_save db item > > > $ ./init_db.native > $ ./init_db.native > Fatal error: exception Sqlite3.Error("CONSTRAINT") > > $ sqlite3 test.db > sqlite> select * from item; > __id__ id > ---------- ---------- > 1 1 > 2 > sqlite> delete from item; > Error: no such function: SYNC_CACHE_item > > _______________________________________________ > MirageOS-devel mailing list > [email protected] > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
_______________________________________________ MirageOS-devel mailing list [email protected] http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
