On Apr 16, 2012, at 1:14 PM, Kit wrote: > 2012/4/16 Puneet Kishor <punk.k...@gmail.com>: >> I am experimenting with a home-grown versioning system where every >> "significant" modification to row would be performed on a copy of the row, >> the original being preserved. >> Any other suggestions to achieve a similar functionality would be welcome. >> -- >> Puneet Kishor > > 1. Use Git or Mercurial
My statement might have been misunderstood. I am not trying to create a versioning system a la Git, Mercurial or Fossil. I am trying to create a data versioning system so that a query done at a particular time can be reproduced identically as to the original query even if the data have been modified in the interim time. So, if a query returns one or more rows today, the same query (that is, the same query params with an additional time stamp param) should return exactly the same result 3 years from now even if the rows themselves may have been modified. In Postgres world they call it timetravel. See "F.39.2. timetravel — Functions for Implementing Time Travel" at http://www.postgresql.org/docs/9.1/static/contrib-spi.html for reference. > 2. Try this: > > CREATE TABLE instance ( > filename TEXT, > version INT, > size INT, > md5sum TEXT, > creation_date TEXT, > last_write_time TEXT, > PRIMARY KEY(filename,version), > FOREIGN KEY (md5sum) REFERENCES resource (md5sum) > ); > > CREATE TABLE resource ( > md5sum TEXT, > data BLOB, > primary key(md5sum) > ); _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users