X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=cdb%2Fcdb.tct;h=c42fb669a8c27d559dcef5c1700f318ecca566b6;hb=4988e4a246c7cc6893c83cec6683542b4b9dad8f;hp=017b4e63abedb69b96503f61c75b6a5e7cb5756b;hpb=4d5a1756e972ca3970cc5d7b9854a36ff3e47d1a;p=chiark-tcl.git diff --git a/cdb/cdb.tct b/cdb/cdb.tct index 017b4e6..c42fb66 100644 --- a/cdb/cdb.tct +++ b/cdb/cdb.tct @@ -13,11 +13,13 @@ Table cdb Cdb_SubCommand lookup db iddata(&cdbtcl_databases) key obj + ?def obj => obj lookup-hb db iddata(&cdbtcl_databases) key hb - => hb + ?def obj + => obj close db iddata(&cdbtcl_databases) @@ -28,7 +30,7 @@ Table cdbwr Cdbwr_SubCommand # .main # .lock # .cdb - # .log + # .jrn # .tmp (might be new .main or new .cdb) # invariants: # .lock is an empty file @@ -38,43 +40,45 @@ Table cdbwr Cdbwr_SubCommand # .cdb is a cdb database containing data # equivalent to and at least as recent as .main # (maybe not identical, because .cdb may - # have been updated with data from .log but - # .main not yet); if .log does not exist then + # have been updated with data from .jrn but + # .main not yet); if .jrn does not exist then # they are identical) # .cdb may not exist; in which case it is to # be treated as if it existed and was empty # but this is maximally early (so main must # exist and be empty since .main is never # newer than .cdb) - # if .log exists, it is a cdb native + # if .jrn exists, it is a cdb native # text file _without the trailing newline_; # its contents override values from .main or .cdb # if .main.tmp or .cdb.tmp exists it is irrelevant - # zero length values mean record is deleted (in .log only; + # zero length values mean record is deleted (in .jrn only; # forbidden elsewhere) # while db is open: # .lock is locked - # .log and open hash table contain same info + # .jrn and open hash table contain same info open 0 pathb string on_info obj - ?on_mintstamp obj - # on_mintstamp present and not empty list: provides a - # script which returns the current mintstamp. This - # means entries start with a 16-hex-digit signed - # integer known as a tstamp; occasionally, - # on_mintstamp will be called and then entries whose - # tstamp is < mintstamp will be deleted automatically. + ?on_lexminval obj + # on_lexminval present and not empty list: provides a + # script which returns the current lexminval. In + # this case, occasionally, + # on_lexminval will be called and then entries whose + # value is lexically strictly less than lexminval + # will be deleted automatically. The comparison + # is bytewise on the UTF-8 representations. => iddata(&cdbtcl_rwdatabases) open-okjunk RWSCF_OKJUNK pathb string on_info obj - ?on_mintstamp obj + ?on_lexminval obj => iddata(&cdbtcl_rwdatabases) # on_info ...: # on_info open-clean # on_info open-dirty-start - # on_info open-dirty-junk + # on_info open-dirty-junk \ + # # on_info open-dirty-done # on_info compact-start # on_info compact-done @@ -87,8 +91,8 @@ Table cdbwr Cdbwr_SubCommand lookup-hb 0 db iddata(&cdbtcl_rwdatabases) key string - ?def hb - => hb + ?def obj + => obj delete 0 db iddata(&cdbtcl_rwdatabases) key string @@ -104,7 +108,8 @@ Table cdbwr Cdbwr_SubCommand db iddata(&cdbtcl_rwdatabases) compact-check 0 db iddata(&cdbtcl_rwdatabases) - compact-onupdate 0 # this is the default + compact-auto 0 + # this is the default db iddata(&cdbtcl_rwdatabases) compact-explicit 0 db iddata(&cdbtcl_rwdatabases)