<Regenaxer>
I do a brute-force search for that symbol
<Regenaxer>
Haha, I know!!!
<Regenaxer>
It is not really a bug, but indeed a name clash
<Regenaxer>
However not *inside* the grid, but with existing symbols
<tankf33der>
ok
<tankf33der>
sounds good.
<Regenaxer>
To be exact, it is 'if2'
<tankf33der>
:)
<Regenaxer>
So the whole thing was perhaps not a geod idea
<tankf33der>
also i had idea to capitalize grid's symbols
<Regenaxer>
yeah, but we will never be sure
<Regenaxer>
Even the old grid was not safe
<Regenaxer>
Eg 'd', 'e', 'u'
<Regenaxer>
Hmm, no
<Regenaxer>
d1, e1 ...
<Regenaxer>
Using a namespace would solve it
<Regenaxer>
iirc I recommended that in the mailing list
<Regenaxer>
on Jul 1st
<Regenaxer>
Current version is unusable
<Regenaxer>
Shall we revert and forget the matter?
<tankf33der>
yea. capitalized symbols helped.
<Regenaxer>
ok, but looks ugly e.g. in chess
<Regenaxer>
and violates naming convention
<Regenaxer>
a1 etc. are globals
<tankf33der>
write to ML what happened and revert.
<Regenaxer>
OK, yes
<tankf33der>
afk.
<Regenaxer>
Thanks a lot!
<Regenaxer>
Done
beneroth has joined #picolisp
<beneroth>
Hi all
<Regenaxer>
Hi beneroth!
aw- has joined #picolisp
<beneroth>
Regenaxer, I have a entity with 3 +Ref properties, no +Key property. I like to have a pilog query to get the combined objects from all 3 indexes. I figure select predicate is the right for this, using a combinated generic clause without any filtering. 1) select predicate ensures uniqueness of results, right? 2) how to do a combinated generic clause without a filter parameter?
<beneroth>
e.g. (? (select (@@) ((name +Town)))) and (? (select (@@) ((zip +Town)))) combined into a single quer
<beneroth>
query
<Regenaxer>
Optimal would be +Aux +Ref
<Regenaxer>
then only a single tree access
<aw->
Regenaxer beneroth hi!
<beneroth>
hi aw- !
<Regenaxer>
(if the combination is unique, else a 'collect')
<Regenaxer>
hi aw-!
<aw->
brb
aw- has quit [Quit: Leaving.]
<beneroth>
Regenaxer, I want pilog for doing (dump), and also only for that I need the combined output...
<beneroth>
I see your point about +Aux.
<Regenaxer>
ok, no +Aux then
<beneroth>
T
<Regenaxer>
Why do you want to avoid the filters?
<beneroth>
I simply want all objects
<beneroth>
for dump
<Regenaxer>
Ah, not AND ?
<beneroth>
T, OR :)
<Regenaxer>
combine the indexes sequentially?
<Regenaxer>
yes
<beneroth>
T, and ensure unique output
<Regenaxer>
thaws easy
<beneroth>
from the select predicate documentation: ((tel +CuSu @Tel mob +CuSu @Tel))
<Regenaxer>
here it is the line ((exp +Ort @Rel imp +Ort @Rel) (ort @Cls))
<Regenaxer>
So it needs one *more* paren! ;)
<Regenaxer>
Envoy your lunch first!
aw- has joined #picolisp
aw- has quit [Client Quit]
aw- has joined #picolisp
<Regenaxer>
aw- wb!
<aw->
hi, thanks
aw- has quit [Quit: Leaving.]
<beneroth>
back
<beneroth>
Regenaxer, you're still having a parameter in the generator clause
<beneroth>
I see no difference with additional parens
<beneroth>
Regenaxer, ugly solution for my dump: I could do 3 dumps: (dump (db name +Town)) (dump (db zip +Town)) (dump (db country +Town)) -> ugly, as multiple time the same (object ...) gets generated, but would work.
<beneroth>
better: not using pilog, (let All NIL (iter (tree 'name '+Town) '((E) (push1 'All E))) (iter (tree 'zip '+Town) '((E) (push1 'All E))) ...)
<beneroth>
(for E All (dumpExt E))
orivej has quit [Ping timeout: 268 seconds]
<Regenaxer>
Sorry, was away
xkapastel has joined #picolisp
<Regenaxer>
beneroth, no, it must work now
<Regenaxer>
It needs an extra paren, because it groups several indexes
<beneroth>
you mean (select (@@) (((em +User @S nm +User @S)))) with @S being?
<Regenaxer>
The parameter is needed, but (NIL . T) is OK
<beneroth>
T, works!
<Regenaxer>
You could do (? @S '(NIL . T) .., but diect is better
* beneroth
rereading select doc about that extra parent
<beneroth>
that was a a bit stupid from my side, should have read more properly
<beneroth>
ah, btw. Regenaxer do you get my special characters? Über Hügel nächste fördern.
rob_w has quit [Quit: Leaving]
<Regenaxer>
Ahh, cool! I see Umlauts now :)
<Regenaxer>
New client?
<beneroth>
yes. HexChat. successor to what I used before, but less bugs apparently :)
<beneroth>
looks the same
<Regenaxer>
Perfect
<beneroth>
thanks for you time, once more. I believe I finally got to a level of (user) understanding of pilog I don't forgot 2 seconds after a successful query :)
<Regenaxer>
:)
<beneroth>
the syntax is a bit tricky, parens do matter (unlike as in lisp, where they seem natural to me, no effort), but the resulting database code is beautifully short and clear :)
<Regenaxer>
As you see, I forget it too rather often
<beneroth>
tricky stuff. well, it db querying is complex material :)
<Regenaxer>
yeah
<beneroth>
not the single units of complexity, but the sheer number and the many ways stuff interacts
<Regenaxer>
... and is connectet to each other
<beneroth>
aye
<beneroth>
pilog code is really beautiful once one get the query together :)
<beneroth>
s/get/got
<Regenaxer>
at least it is compact. Whether Pi(Pro)log is beautiful is also a matter of (intellectual) taste
<Regenaxer>
I still have problems with it
<Regenaxer>
get my brain around it
razzy has joined #picolisp
razzy has quit [Changing host]
razzy has joined #picolisp
orivej has joined #picolisp
<beneroth>
Regenaxer, last time I wrote SQL I wrote over 10k LOC for a complex data sync logic, mostly boiler plate code because a proper (request) is pretty hard in SQL..
<Regenaxer>
wow
<Regenaxer>
Last time I wrote SQL was around 1996
<Regenaxer>
23 years ago :)
<beneroth>
nice uptime :D
<Regenaxer>
yeah
<beneroth>
how did you manage to implement pilog, especially the pilDB parts of it? just learning and grokking it for the moment? or just following some textbook?
<beneroth>
I'm not yet daring to wrap my head around this pilog backtracking tree (the side-effect of prove)
<Regenaxer>
For Pilog I had a book, "Implementations of Prolog" or so
<Regenaxer>
PilDB came from alone ;)
<beneroth>
awesome
<beneroth>
whats the upper number of objects your current pilDB projects contain/manage (a single instance, not a distributed setup overall) ?
<beneroth>
battle tested load numbers, so to say
<Regenaxer>
Not as big as I had for SmApper 10 years ago
<Regenaxer>
a few million
<beneroth>
a few million at the moment? and SmApper ?
<Regenaxer>
But for testing I imported some OSM
<Regenaxer>
SmApper was around 800 million iirc
<beneroth>
right, I think I remember
<beneroth>
ah nice
<Regenaxer>
Let me check OSM
<beneroth>
no need
<Regenaxer>
ok, seems I erased it again ;)
<beneroth>
no problem
<beneroth>
I'm still in the kilo range. will move to 20k+ the next days. and might get a project going into 100k+ to million range into the pipeline.
<Regenaxer>
great
<beneroth>
so far performance was always better than with "comparable" state of the art microsoft stack
<beneroth>
while my applications are not really well tuned yet.
<Regenaxer>
ok
<beneroth>
even including some blunders (e.g. packing strings instead of working in stream etc)
<Regenaxer>
The biggest bottleneck is usually import
<Regenaxer>
That's why I made 'create'
<beneroth>
T
<beneroth>
oh right, I should look at it!
<beneroth>
ha
<Regenaxer>
I should also look
<Regenaxer>
forgot all
<beneroth>
I haven't used it yet
<beneroth>
but I'm about to parse a 20k+ line CSV, sounds like a job for using create
<beneroth>
will try out. my parsing is a bit more involved, as I cannot fully trust the input. I have to validate during import.
<beneroth>
Regenaxer, many more files, including some weakly used ones :D
<beneroth>
for the moment I go with a standard set of predefined files with different block sizes
<Regenaxer>
So BTG is smaller: 785547
<Regenaxer>
Yeah, I used too many files back then
<Regenaxer>
20 years ago
<Regenaxer>
A bit paranoid
<Regenaxer>
But hardware was slower then
<Regenaxer>
For recent projects I always used 12 - 16 files only
<Regenaxer>
also becaus I need to save file counts for the many DBs on mobiles
<beneroth>
yeah I see
<beneroth>
I use more then I need at the moment.
<beneroth>
Regenaxer, there is yet no best way to use (create) with output from (dump) (object ...) right? maybe for the future a variant of (dump) writting plio would be an idea?
<Regenaxer>
Yeah, such things would be nice and useful
<beneroth>
we'll get there. no need to hurry :)
<Regenaxer>
T
<Regenaxer>
In osm/create.l I did in fact use plio