added query and delete options

db4
Sascha Matzke 2010-07-31 11:41:07 +02:00
parent 7295a04519
commit f9b3c1d59d
4 changed files with 27 additions and 10 deletions

View File

@ -185,6 +185,15 @@ PRIVATE>
: <query> ( collection assoc -- mdb-query-msg )
<mdb-query-msg> ; inline
: >slave-ok ( mdb-query-msg -- mdb-query-msg )
[ 2 set-bit ] change-flags ;
: >await-data ( mdb-query-msg -- mdb-query-msg )
[ 5 set-bit ] change-flags ;
: >tailable ( mdb-query-msg -- mdb-query-msg )
[ 1 set-bit ] change-flags ;
: limit ( mdb-query-msg limit# -- mdb-query-msg )
>>return# ; inline
@ -299,13 +308,17 @@ PRIVATE>
: run-cmd ( cmd -- result )
send-cmd ; inline
: delete ( collection selector -- )
[ check-collection ] dip
<mdb-delete-msg> send-message-check-error ;
: <delete> ( collection selector -- mdb-delete-msg )
[ check-collection ] dip <mdb-delete-msg> ;
: delete-unsafe ( collection selector -- )
[ check-collection ] dip
<mdb-delete-msg> send-message ;
: >single-remove ( mdb-delete-msg -- mdb-delete-msg )
[ 0 set-bit ] change-delete-flags ;
: delete ( mdb-delete-msg -- )
send-message-check-error ;
: delete-unsafe ( mdb-delete-msg -- )
send-message ;
: kill-cursor ( mdb-cursor -- )
id>> <mdb-killcursors-msg> send-message ;

View File

@ -44,6 +44,7 @@ TUPLE: mdb-update-msg < mdb-msg
TUPLE: mdb-delete-msg < mdb-msg
{ collection string }
{ delete-flags integer initial: 0 }
{ selector assoc } ;
TUPLE: mdb-getmore-msg < mdb-msg

View File

@ -128,9 +128,12 @@ PRIVATE>
: write-delete-message ( message -- )
[
[ flags>> write-int32 ]
[ collection>> write-cstring ]
[ 0 write-int32 selector>> assoc>stream ] tri
{
[ flags>> write-int32 ]
[ collection>> write-cstring ]
[ delete-flags>> write-int32 ]
[ selector>> assoc>stream ]
} cleave
] (write-message) ; inline
: write-getmore-message ( message -- )

View File

@ -73,7 +73,7 @@ PRIVATE>
: delete-tuple ( tuple -- )
[ tuple-collection name>> ] keep
id-selector delete ;
id-selector <delete> delete ;
: delete-tuples ( seq -- )
[ delete-tuple ] each ;