renamed some things

moved _id and _mdb_ constants to bson vocab
db4
Sascha Matzke 2009-03-03 16:26:54 +01:00
parent 22a891b483
commit 75c28ee62f
4 changed files with 26 additions and 26 deletions

View File

@ -12,6 +12,7 @@ TUPLE: oid { a initial: 0 } { b initial: 0 } ;
TUPLE: objref ns objid ; TUPLE: objref ns objid ;
CONSTANT: MDB_OID_FIELD "_id" CONSTANT: MDB_OID_FIELD "_id"
CONSTANT: MDB_INTERNAL_FIELD "_mdb_"
CONSTANT: T_EOO 0 CONSTANT: T_EOO 0
CONSTANT: T_Double 1 CONSTANT: T_Double 1

View File

@ -3,7 +3,7 @@
USING: accessors assocs bson.constants byte-arrays fry io io.binary USING: accessors assocs bson.constants byte-arrays fry io io.binary
io.encodings.binary io.encodings.string io.encodings.utf8 io.encodings.binary io.encodings.string io.encodings.utf8
io.streams.byte-array kernel math math.parser quotations sequences io.streams.byte-array kernel math math.parser quotations sequences
serialize strings words ; serialize strings words hashtables ;
IN: bson.writer IN: bson.writer
@ -20,10 +20,10 @@ M: f bson-type? ( boolean -- type ) drop T_Boolean ;
M: real bson-type? ( real -- type ) drop T_Double ; M: real bson-type? ( real -- type ) drop T_Double ;
M: word bson-type? ( word -- type ) drop T_String ; M: word bson-type? ( word -- type ) drop T_String ;
M: tuple bson-type? ( tuple -- type ) drop T_Object ; M: tuple bson-type? ( tuple -- type ) drop T_Object ;
M: assoc bson-type? ( hashtable -- type ) drop T_Object ; M: sequence bson-type? ( seq -- type ) drop T_Array ;
M: string bson-type? ( string -- type ) drop T_String ; M: string bson-type? ( string -- type ) drop T_String ;
M: integer bson-type? ( integer -- type ) drop T_Integer ; M: integer bson-type? ( integer -- type ) drop T_Integer ;
M: sequence bson-type? ( seq -- type ) drop T_Array ; M: hashtable bson-type? ( hashtable -- type ) drop T_Object ;
M: oid bson-type? ( word -- type ) drop T_OID ; M: oid bson-type? ( word -- type ) drop T_OID ;
M: objid bson-type? ( objid -- type ) drop T_Binary ; M: objid bson-type? ( objid -- type ) drop T_Binary ;
@ -98,11 +98,11 @@ M: sequence bson-write ( array -- )
[ MDB_OID_FIELD ] dip at* [ MDB_OID_FIELD ] dip at*
[ [ MDB_OID_FIELD ] dip write-pair ] [ drop ] if ; inline [ [ MDB_OID_FIELD ] dip write-pair ] [ drop ] if ; inline
: oid-field? ( name -- boolean ) : skip-field? ( name -- boolean )
MDB_OID_FIELD = ; inline { MDB_OID_FIELD MDB_INTERNAL_FIELD } member? ; inline
M: assoc bson-write ( hashtable -- ) M: hashtable bson-write ( hashtable -- )
'[ _ [ write-oid ] [ [ over oid-field? [ 2drop ] [ write-pair ] if ] assoc-each ] bi ] '[ _ [ write-oid ] [ [ over skip-field? [ 2drop ] [ write-pair ] if ] assoc-each ] bi ]
binary swap with-byte-writer binary swap with-byte-writer
[ length 5 + bson-write ] keep [ length 5 + bson-write ] keep
write write

View File

@ -6,7 +6,7 @@ IN: mongodb.driver
TUPLE: mdb-node master? inet ; TUPLE: mdb-node master? inet ;
TUPLE: mdb name nodes collections ; TUPLE: mdb-db name nodes collections ;
TUPLE: mdb-cursor collection id return# ; TUPLE: mdb-cursor collection id return# ;
@ -23,9 +23,6 @@ CONSTRUCTOR: mdb-collection ( name -- collection ) ;
CONSTANT: MDB-GENERAL-ERROR 1 CONSTANT: MDB-GENERAL-ERROR 1
CONSTANT: MDB_OID "_id"
CONSTANT: MDB_PROPERTIES "_mdb_"
CONSTANT: PARTIAL? "partial?" CONSTANT: PARTIAL? "partial?"
CONSTANT: DIRTY? "dirty?" CONSTANT: DIRTY? "dirty?"
@ -43,8 +40,10 @@ SYMBOL: mdb-socket-stream
PRIVATE> PRIVATE>
: mdb>> ( -- mdb ) SYMBOL: mdb-instance
mdb get ; inline
: mdb ( -- mdb )
mdb-instance get ; inline
: master>> ( mdb -- inet ) : master>> ( mdb -- inet )
nodes>> [ t ] dip at inet>> ; nodes>> [ t ] dip at inet>> ;
@ -53,7 +52,7 @@ PRIVATE>
nodes>> [ f ] dip at inet>> ; nodes>> [ f ] dip at inet>> ;
: with-db ( mdb quot -- ... ) : with-db ( mdb quot -- ... )
[ [ '[ _ [ mdb set ] keep master>> [ [ '[ _ [ mdb-instance set ] keep master>>
[ remote-address set ] keep [ remote-address set ] keep
binary <client> binary <client>
local-address set local-address set
@ -64,16 +63,16 @@ PRIVATE>
<PRIVATE <PRIVATE
: index-collection ( -- ns ) : index-collection ( -- ns )
mdb>> name>> "%s.system.indexes" sprintf ; inline mdb name>> "%s.system.indexes" sprintf ; inline
: namespaces-collection ( -- ns ) : namespaces-collection ( -- ns )
mdb>> name>> "%s.system.namespaces" sprintf ; inline mdb name>> "%s.system.namespaces" sprintf ; inline
: cmd-collection ( -- ns ) : cmd-collection ( -- ns )
mdb>> name>> "%s.$cmd" sprintf ; inline mdb name>> "%s.$cmd" sprintf ; inline
: index-ns ( colname -- index-ns ) : index-ns ( colname -- index-ns )
[ mdb>> name>> ] dip "%s.%s" sprintf ; inline [ mdb name>> ] dip "%s.%s" sprintf ; inline
: ismaster-cmd ( node -- result ) : ismaster-cmd ( node -- result )
binary "admin.$cmd" H{ { "ismaster" 1 } } <mdb-query-msg> binary "admin.$cmd" H{ { "ismaster" 1 } } <mdb-query-msg>
@ -103,11 +102,11 @@ PRIVATE>
] when* ; ] when* ;
: verify-nodes ( -- ) : verify-nodes ( -- )
mdb>> nodes>> [ t ] dip at mdb nodes>> [ t ] dip at
check-nodes check-nodes
H{ } clone tuck H{ } clone tuck
'[ dup master?>> _ set-at ] each '[ dup master?>> _ set-at ] each
[ mdb>> ] dip >>nodes drop ; [ mdb ] dip >>nodes drop ;
: send-message ( message -- ) : send-message ( message -- )
[ mdb-stream>> ] dip '[ _ write-message ] with-stream* ; [ mdb-stream>> ] dip '[ _ write-message ] with-stream* ;
@ -133,7 +132,7 @@ PRIVATE>
check-nodes check-nodes
H{ } clone tuck H{ } clone tuck
'[ dup master?>> _ set-at ] each '[ dup master?>> _ set-at ] each
H{ } clone mdb boa ; H{ } clone mdb-db boa ;
: create-collection ( name -- ) : create-collection ( name -- )
[ cmd-collection ] dip [ cmd-collection ] dip
@ -152,7 +151,7 @@ PRIVATE>
'[ _ "%s contains invalid characters ( . $ ; )" sprintf throw ] when ; inline '[ _ "%s contains invalid characters ( . $ ; )" sprintf throw ] when ; inline
: (ensure-collection) ( collection -- ) : (ensure-collection) ( collection -- )
mdb>> collections>> dup keys length 0 = mdb collections>> dup keys length 0 =
[ load-collection-list [ load-collection-list
[ [ "options" ] dip key? ] filter [ [ "options" ] dip key? ] filter
[ [ "name" ] dip at "." split second <mdb-collection> ] map [ [ "name" ] dip at "." split second <mdb-collection> ] map
@ -166,11 +165,11 @@ MEMO: reserved-namespace? ( name -- ? )
PRIVATE> PRIVATE>
MEMO: ensure-collection ( collection -- fq-collection ) MEMO: ensure-collection ( collection -- fq-collection )
"." split1 over mdb>> name>> = "." split1 over mdb name>> =
[ [ drop ] dip ] [ drop ] if [ [ drop ] dip ] [ drop ] if
[ ] [ reserved-namespace? ] bi [ ] [ reserved-namespace? ] bi
[ [ (ensure-collection) ] keep ] unless [ [ (ensure-collection) ] keep ] unless
[ mdb>> name>> ] dip "%s.%s" sprintf ; inline [ mdb name>> ] dip "%s.%s" sprintf ; inline
: <query> ( collection query -- mdb-query ) : <query> ( collection query -- mdb-query )
[ ensure-collection ] dip [ ensure-collection ] dip

View File

@ -1,4 +1,4 @@
USING: accessors assocs constructors kernel linked-assocs math USING: accessors assocs hashtables constructors kernel linked-assocs math
sequences strings ; sequences strings ;
IN: mongodb.msg IN: mongodb.msg
@ -86,7 +86,7 @@ M: sequence <mdb-insert-msg> ( collection sequence -- mdb-insert-msg )
[ >>collection ] dip [ >>collection ] dip
>>objects OP_Insert >>opcode ; >>objects OP_Insert >>opcode ;
M: assoc <mdb-insert-msg> ( collection assoc -- mdb-insert-msg ) M: hashtable <mdb-insert-msg> ( collection assoc -- mdb-insert-msg )
[ mdb-insert-msg new ] 2dip [ mdb-insert-msg new ] 2dip
[ >>collection ] dip [ >>collection ] dip
V{ } clone tuck push V{ } clone tuck push