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
>

Reply via email to