]> gitweb.factorcode.org Git - factor.git/commitdiff
removed generic words; added kill-cursor + filter-fields words
authorSascha Matzke <sascha.matzke@didolo.org>
Wed, 6 Jan 2010 14:56:38 +0000 (15:56 +0100)
committerSascha Matzke <sascha.matzke@didolo.org>
Sun, 10 Jan 2010 17:42:16 +0000 (18:42 +0100)
extra/mongodb/driver/driver.factor
extra/mongodb/msg/msg.factor
extra/mongodb/operations/operations.factor

index e1bf4f6746a0381c2f33956f0c3d0c81177e2cf6..78d0b627345c162f16062c896f89ff9fb07526f7 100644 (file)
@@ -165,9 +165,7 @@ M: mdb-collection create-collection
 : fix-query-collection ( mdb-query -- mdb-query )
     [ check-collection ] change-collection ; inline
 
-GENERIC: get-more ( mdb-cursor -- mdb-cursor seq )
-
-M: mdb-cursor get-more 
+: get-more ( mdb-cursor -- mdb-cursor seq )
     [ [ query>> dup [ collection>> ] [ return#>> ] bi ]
       [ id>> ] bi <mdb-getmore-msg> swap >>query send-query ] 
     [ f f ] if* ;
@@ -177,21 +175,17 @@ PRIVATE>
 : <query> ( collection assoc -- mdb-query-msg )
     <mdb-query-msg> ; inline
 
-GENERIC# limit 1 ( mdb-query-msg limit# -- mdb-query-msg )
-
-M: mdb-query-msg limit 
+: limit ( mdb-query-msg limit# -- mdb-query-msg )
     >>return# ; inline
 
-GENERIC# skip 1 ( mdb-query-msg skip# -- mdb-query-msg )
-
-M: mdb-query-msg skip 
+: skip ( mdb-query-msg skip# -- mdb-query-msg )
     >>skip# ; inline
 
 : asc ( key -- spec ) 1 2array ; inline
 : desc ( key -- spec ) -1 2array ; inline
 
 : sort ( mdb-query-msg sort-quot -- mdb-query-msg )
-    output>array [ 1array >hashtable ] map >>orderby ; inline
+    output>array >hashtable >>orderby ; inline
 
 : filter-fields ( mdb-query-msg filterseq -- mdb-query-msg )
     [ asc ] map >hashtable >>returnfields ; inline
@@ -212,21 +206,15 @@ M: mdb-query-msg find
 M: mdb-cursor find
     get-more ;
 
-GENERIC: explain. ( mdb-query-msg -- )
-
-M: mdb-query-msg explain.
+: explain. ( mdb-query-msg -- )
     t >>explain find nip . ;
 
-GENERIC: find-one ( mdb-query-msg -- result/f )
-
-M: mdb-query-msg find-one
+: find-one ( mdb-query-msg -- result/f )
     fix-query-collection 
     1 >>return# send-query-plain objects>>
     dup empty? [ drop f ] [ first ] if ;
 
-GENERIC: count ( mdb-query-msg -- result )
-
-M: mdb-query-msg count    
+: count ( mdb-query-msg -- result )
     [ collection>> "count" H{ } clone [ set-at ] keep ] keep
     query>> [ over [ "query" ] dip set-at ] when*
     [ cmd-collection ] dip <mdb-query-msg> find-one 
@@ -254,18 +242,15 @@ M: mdb-collection validate.
 
 PRIVATE>
 
-GENERIC: save ( collection assoc -- )
-M: assoc save
+: save ( collection assoc -- )
     [ check-collection ] dip
     <mdb-insert-msg> send-message-check-error ;
 
-GENERIC: save-unsafe ( collection assoc -- )
-M: assoc save-unsafe
+: save-unsafe ( collection assoc -- )
     [ check-collection ] dip
     <mdb-insert-msg> send-message ;
 
-GENERIC: ensure-index ( index-spec -- )
-M: index-spec ensure-index
+: ensure-index ( index-spec -- )
     <linked-hash> [ [ uuid1 "_id" ] dip set-at ] keep
     [ { [ [ name>> "name" ] dip set-at ]
         [ [ ns>> index-ns "ns" ] dip set-at ]
@@ -288,24 +273,23 @@ M: index-spec ensure-index
 : >upsert ( mdb-update-msg -- mdb-update-msg )
     1 >>upsert? ; 
 
-GENERIC: update ( mdb-update-msg -- )
-M: mdb-update-msg update
+: update ( mdb-update-msg -- )
     send-message-check-error ;
 
-GENERIC: update-unsafe ( mdb-update-msg -- )
-M: mdb-update-msg update-unsafe
+: update-unsafe ( mdb-update-msg -- )
     send-message ;
  
-GENERIC: delete ( collection selector -- )
-M: assoc delete
+: delete ( collection selector -- )
     [ check-collection ] dip
     <mdb-delete-msg> send-message-check-error ;
 
-GENERIC: delete-unsafe ( collection selector -- )
-M: assoc delete-unsafe
+: delete-unsafe ( collection selector -- )
     [ check-collection ] dip
     <mdb-delete-msg> send-message ;
 
+: kill-cursor ( mdb-cursor -- )
+    id>> <mdb-killcursors-msg> send-message ;
+
 : load-index-list ( -- index-list )
     index-collection
     H{ } clone <mdb-query-msg> find nip ;
index c48634679507caa304149e9a35507b0905b70b21..ada0ab42d06dcdc18e41a1141957eaf89d0a462e 100644 (file)
@@ -29,7 +29,7 @@ TUPLE: mdb-query-msg < mdb-msg
 { return# integer initial: 0 }
 { query assoc }
 { returnfields assoc }
-{ orderby sequence }
+{ orderby assoc }
 explain hint ;
 
 TUPLE: mdb-insert-msg < mdb-msg
index 7e99c52aacf6d95085815e7ceef72565fb26f1eb..108f61094083fca6373fcde8c87ddf6dba53715f 100644 (file)
@@ -107,7 +107,7 @@ USE: tools.walker
 
 :: build-query-object ( query -- selector )
     H{ } clone :> selector
-    query { [ orderby>> [ "orderby" selector set-at ] when* ]
+    query { [ orderby>> [ "$orderby" selector set-at ] when* ]
       [ explain>> [ "$explain" selector set-at ] when* ]
       [ hint>> [ "$hint" selector set-at ] when* ] 
       [ query>> "query" selector set-at ]