groovy2shoes has quit [Quit: Leaving]
aw- has joined #picolisp
groovy2shoes has joined #picolisp
orivej has quit [Ping timeout: 248 seconds]
zod_ has joined #picolisp
<
clacke[m]>
I'm not 40 quite yet! One year left.
<
clacke[m]>
beneroth being a decade younger than me is a surprise
<
clacke[m]>
next year will be my 16th 25th birthday
<
aw->
almost 36 here.. .getting old
<
Regenaxer>
Hi m_mans
<
m_mans>
Regenaxer: I have question about archiving :)
<
m_mans>
Archived object must have some links from other places (e.g. at least one index), otherwise it will be zap'ed during dbgc, right?
<
Regenaxer>
correct
<
Regenaxer>
And can't be found anyway, basically non-existent
<
m_mans>
how do you provide this for your objects?
<
m_mans>
do you make some indexes for archived version?
<
Regenaxer>
Usually no need. All indexes are deleted, but objects are referred to from other objects
<
Regenaxer>
eg if a customer is deleted, it is still there in the invoices
<
Regenaxer>
There will always be a link, otherwise the object is really useless and
*can* be deleted
<
m_mans>
if all network of linked objects got archived, so you let them be purged, right?
<
Regenaxer>
if they can't be found, yes
<
Regenaxer>
They are not "archived"
<
Regenaxer>
I archive objects which should
*not* be gone
<
m_mans>
so, in general, archiving is not about "storing forever"
<
Regenaxer>
no, it is
<
m_mans>
hm, I'm confused
<
Regenaxer>
they are to be searched in the future, but should be out of the way
<
Regenaxer>
To make searching for active objects easier
<
m_mans>
so, how do provide that they are not gone?
<
Regenaxer>
So the user eg. selects the archived class in the search dialog
<
Regenaxer>
I switch the class
<
Regenaxer>
a common abstract superclass
<
Regenaxer>
and one "normal" and one "archived" subclass
<
m_mans>
and +Arc.. class has own index?
<
Regenaxer>
not needed
<
Regenaxer>
(collect 'nr '+Cls) <-> (collect 'nr '+Arc)
<
Regenaxer>
The class definition is the same
<
Regenaxer>
Just (set!> Obj '(+Arc))
<
m_mans>
just with 'isa restriction
<
Regenaxer>
no 'isa' called
<
m_mans>
ok, got it
<
m_mans>
I mean in low level
<
Regenaxer>
yes, so 'isa' is also not called internally
<
Regenaxer>
The class determines the behavior completely
<
m_mans>
but what about 'select' predicate?
<
m_mans>
I should use 'isa' then?
<
Regenaxer>
What should be different?
<
Regenaxer>
usually not
<
Regenaxer>
It uses +Arc for the search
<
Regenaxer>
btw, to define the classes in er.l I do:
<
m_mans>
but e.g. 'nr index is in common superclass?
<
Regenaxer>
(de "person" ()
<
Regenaxer>
(rel nm (+Need +Sn +IdxFold +String)) # Name
<
Regenaxer>
(rel plz (+Ref +String)) # Postleitzahl
<
Regenaxer>
(rel ort (+Ref +String)) # Ort
<
Regenaxer>
(rel lnd (+Ref +Link) NIL (+Land)) # Land
<
Regenaxer>
(class +Kunde +Person)
<
Regenaxer>
("person")
<
Regenaxer>
(class +Partner +Person)
<
Regenaxer>
("person")
<
Regenaxer>
(class +Btg +Person)
<
Regenaxer>
("person")
<
Regenaxer>
same for archived objects
<
Regenaxer>
ie define the relations in a common function
<
Regenaxer>
No, 'nr' is
*not* in common usually
<
Regenaxer>
(collect 'nr '+Cls) <-> (collect 'nr '+Arc)
<
m_mans>
ok. Btw, 'common function' is interesting hack :)
<
Regenaxer>
yes, so we do not need to write (rel nr ...) multiple times
<
m_mans>
yes, but in that case only code is shared, but index trees are different (just for explain to everybody)
<
Regenaxer>
they always refer to the current class
<
Regenaxer>
The above is not an example for archiving, but easier to understand without context
<
Regenaxer>
For +Arc it is the same principle
orivej has joined #picolisp
roundsf`` has joined #picolisp
roundsf` has quit [Ping timeout: 264 seconds]
<
beneroth>
Regenaxer, nice explanation.
<
beneroth>
My approach is similar
<
Regenaxer>
Hi beneroth
<
Regenaxer>
Good to hear
nihirash has joined #picolisp
miskatonic has joined #picolisp
rob_w has joined #picolisp
nihirash has quit [Quit: Ex-Chat]
orivej has quit [Ping timeout: 240 seconds]
rob_w has quit [Quit: Leaving]
orivej has joined #picolisp
<
cess11>
Clever way to reuse 'rel, thanks for sharing.
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<
beneroth>
no patch yet, but a workaround
beneroth has left #picolisp ["Verlassend"]
beneroth has joined #picolisp
miskatonic has joined #picolisp
aw- has quit [Quit: Leaving.]
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
zod_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
miskatonic has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
alexshendi has quit [Ping timeout: 260 seconds]
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
alexshendi has joined #picolisp
nihirash has joined #picolisp
nihirash has quit [Remote host closed the connection]
nihirash has joined #picolisp
nihirash has quit [Remote host closed the connection]
orivej has joined #picolisp
zod_ has joined #picolisp
alexshendi has quit [Ping timeout: 248 seconds]
alexshendi has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
zod_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zod_ has joined #picolisp
zod_ has quit [Client Quit]
miskatonic has joined #picolisp
<
miskatonic>
frankenstein is responsible for everything
<
miskatonic>
so this mongodb is not spql, but still relational?
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<
beneroth>
no, it is not relational
<
beneroth>
not in the slightest