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
|
||||
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 -- )
|
||||
t >>explain find nip . ;
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ SYNTAX: MDBTUPLE:
|
|||
[ drop-table ]
|
||||
[ ensure-table ] bi ;
|
||||
|
||||
DEFER: tuple>query
|
||||
|
||||
<PRIVATE
|
||||
|
||||
GENERIC: id-selector ( object -- selector )
|
||||
|
|
@ -52,6 +54,10 @@ M: mdb-persistent id-selector
|
|||
swap '[ [ _ ] 2dip
|
||||
[ id-selector ] dip
|
||||
<update> >upsert update ] assoc-each ; inline
|
||||
|
||||
: prepare-tuple-query ( tuple/query -- query )
|
||||
dup mdb-query-msg? [ tuple>query ] unless ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: save-tuple-deep ( tuple -- )
|
||||
|
|
@ -83,12 +89,16 @@ PRIVATE>
|
|||
tuple>selector <query> ;
|
||||
|
||||
: select-tuple ( tuple/query -- tuple/f )
|
||||
dup mdb-query-msg? [ tuple>query ] unless
|
||||
prepare-tuple-query
|
||||
find-one [ assoc>tuple ] [ f ] if* ;
|
||||
|
||||
: select-tuples ( tuple/query -- cursor tuples/f )
|
||||
dup mdb-query-msg? [ tuple>query ] unless
|
||||
prepare-tuple-query
|
||||
find [ assoc>tuple ] map ;
|
||||
|
||||
: select-all-tuples ( tuple/query -- tuples )
|
||||
prepare-tuple-query
|
||||
find-all [ assoc>tuple ] map ;
|
||||
|
||||
: count-tuples ( tuple/query -- n )
|
||||
dup mdb-query-msg? [ tuple>query ] unless count ;
|
||||
|
|
|
|||
Loading…
Reference in New Issue