added each-chunk, find-all and select-all-tuples words
parent
2374126ed8
commit
942fbe2666
|
|
@ -225,6 +225,15 @@ M: mdb-query-msg find
|
||||||
M: mdb-cursor find
|
M: mdb-cursor find
|
||||||
get-more ;
|
get-more ;
|
||||||
|
|
||||||
|
: each-chunk ( selector quot: ( seq -- ) -- )
|
||||||
|
swap find
|
||||||
|
[ pick call( seq -- ) ] when*
|
||||||
|
[ swap each-chunk ] [ drop ] if* ;
|
||||||
|
|
||||||
|
: find-all ( selector -- seq )
|
||||||
|
[ V{ } clone ] dip
|
||||||
|
over '[ _ push-all ] each-chunk >array ;
|
||||||
|
|
||||||
: explain. ( mdb-query-msg -- )
|
: explain. ( mdb-query-msg -- )
|
||||||
t >>explain find nip . ;
|
t >>explain find nip . ;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ SYNTAX: MDBTUPLE:
|
||||||
[ drop-table ]
|
[ drop-table ]
|
||||||
[ ensure-table ] bi ;
|
[ ensure-table ] bi ;
|
||||||
|
|
||||||
|
DEFER: tuple>query
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
GENERIC: id-selector ( object -- selector )
|
GENERIC: id-selector ( object -- selector )
|
||||||
|
|
@ -52,6 +54,10 @@ M: mdb-persistent id-selector
|
||||||
swap '[ [ _ ] 2dip
|
swap '[ [ _ ] 2dip
|
||||||
[ id-selector ] dip
|
[ id-selector ] dip
|
||||||
<update> >upsert update ] assoc-each ; inline
|
<update> >upsert update ] assoc-each ; inline
|
||||||
|
|
||||||
|
: prepare-tuple-query ( tuple/query -- query )
|
||||||
|
dup mdb-query-msg? [ tuple>query ] unless ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: save-tuple-deep ( tuple -- )
|
: save-tuple-deep ( tuple -- )
|
||||||
|
|
@ -83,12 +89,16 @@ PRIVATE>
|
||||||
tuple>selector <query> ;
|
tuple>selector <query> ;
|
||||||
|
|
||||||
: select-tuple ( tuple/query -- tuple/f )
|
: select-tuple ( tuple/query -- tuple/f )
|
||||||
dup mdb-query-msg? [ tuple>query ] unless
|
prepare-tuple-query
|
||||||
find-one [ assoc>tuple ] [ f ] if* ;
|
find-one [ assoc>tuple ] [ f ] if* ;
|
||||||
|
|
||||||
: select-tuples ( tuple/query -- cursor tuples/f )
|
: select-tuples ( tuple/query -- cursor tuples/f )
|
||||||
dup mdb-query-msg? [ tuple>query ] unless
|
prepare-tuple-query
|
||||||
find [ assoc>tuple ] map ;
|
find [ assoc>tuple ] map ;
|
||||||
|
|
||||||
|
: select-all-tuples ( tuple/query -- tuples )
|
||||||
|
prepare-tuple-query
|
||||||
|
find-all [ assoc>tuple ] map ;
|
||||||
|
|
||||||
: count-tuples ( tuple/query -- n )
|
: count-tuples ( tuple/query -- n )
|
||||||
dup mdb-query-msg? [ tuple>query ] unless count ;
|
dup mdb-query-msg? [ tuple>query ] unless count ;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue