Thanks Joh-Tob, I think properties work for me. I was thinking that symbol would map to "key" but that need not be the case. My goal is to figure out a way to store records that are 4 tuple - "Entity name", "Attribute", "Value", "TimeStamp/TransactionID" (just like datomic). What do you recommend? Regards, Kashyap
On Tue, Apr 16, 2019 at 3:26 PM Joh-Tob Schäg <johtob...@gmail.com> wrote: > Your code has several unclearities/problems. > Why do you create and store a new Symbol in the property and then set it's > value to the value you want to store? > Why don't you just store the value in the property? > (Like (put *DB k v) for kv-add) > Why do you set the value of the first symbol to "Root" ? > > > If you want to get the complete property list of any symbol (internal or > in the DB) just call 'getl on it > > > > > > > Ursprüngliche Nachricht > > > > Von: ckkash...@gmail.com > Gesendet: 16. April 2019 16:42 > An: picolisp@software-lab.de > Antworten: picolisp@software-lab.de > Betreff: Re: Database question > > > Hi Alex, > > > > > Does this look reasonable? I tried to implement key-value store/get. I am > not sure how to enumerate all the keys though. > > > > > (pool "test.db") > > > > > (set *DB "ROOT") > > > > > (de kv-add (k v) > > (let nv (new T) > > (set nv v) > > (put *DB k nv) > > (commit))) > > > > > (de kv-get (k) > > (val (get *DB k))) > > > > > > > > Regards, > > Kashyap > > > > > > > On Sun, Apr 14, 2019 at 1:58 PM C K Kashyap <ckkash...@gmail.com> wrote: > > Thanks Alex! > Regards, > Kashyap > > > On Sun, Apr 14, 2019 at 1:20 PM Alexander Burger <a...@software-lab.de> > wrote: > > On Sun, Apr 14, 2019 at 12:54:19PM -0700, C K Kashyap wrote: > > Is the builtin database in picolisp tied to OOP? The documentation seems > to > > indicate it. > > Not necessarily. The DB consists of three independent layers. > > Persistent "external" symbols are the base. They are directly in the core > language. They are used to implement b-trees, and in addition - and on top > of > those - the entity and relation objects (only those are OOP). > > > > Is there a way I could use the DB to just accrue immutable > > facts (just like Clojure Datomic works)? > > Just create external symbols (with 'new' without a class), and store stuff > into > their values and property lists. > > > > Is there a non-OOP sample that I could use as a starting point? > > The tutorial at https://software-lab.de/doc/tut.html#ext > > ☺/ A!ex > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe >