revised tuple oid handling

db4
Sascha Matzke 2010-06-05 12:59:50 +02:00
parent 4a836dcdea
commit 2653ae7f47
2 changed files with 5 additions and 5 deletions

View File

@ -78,9 +78,6 @@ CONSTRUCTOR: cond-value ( value quot -- cond-value ) ;
: prepare-assoc ( tuple -- assoc mirror tuple assoc ) : prepare-assoc ( tuple -- assoc mirror tuple assoc )
H{ } clone swap [ <mirror> ] keep pick ; inline H{ } clone swap [ <mirror> ] keep pick ; inline
: ensure-mdb-info ( tuple -- tuple )
dup id>> [ <oid> >>id ] unless ; inline
: with-object-map ( quot: ( -- ) -- store-assoc ) : with-object-map ( quot: ( -- ) -- store-assoc )
[ H{ } clone dup object-map ] dip with-variable ; inline [ H{ } clone dup object-map ] dip with-variable ; inline
@ -92,11 +89,14 @@ PRIVATE>
GENERIC: tuple>storable ( tuple -- storable ) GENERIC: tuple>storable ( tuple -- storable )
: ensure-oid ( tuple -- tuple )
dup id>> [ <oid> >>id ] unless ; inline
M: mdb-persistent tuple>storable ( mdb-persistent -- object-map ) M: mdb-persistent tuple>storable ( mdb-persistent -- object-map )
'[ _ [ tuple>assoc ] write-mdb-persistent drop ] with-object-map ; inline '[ _ [ tuple>assoc ] write-mdb-persistent drop ] with-object-map ; inline
M: mdb-persistent tuple>assoc ( tuple -- assoc ) M: mdb-persistent tuple>assoc ( tuple -- assoc )
ensure-mdb-info (tuple>assoc) ; ensure-oid (tuple>assoc) ;
M: tuple tuple>assoc ( tuple -- assoc ) M: tuple tuple>assoc ( tuple -- assoc )
(tuple>assoc) ; (tuple>assoc) ;

View File

@ -61,7 +61,7 @@ PRIVATE>
: update-tuple ( tuple -- ) : update-tuple ( tuple -- )
[ tuple-collection name>> ] [ tuple-collection name>> ]
[ id-selector ] [ ensure-oid id-selector ]
[ tuple>assoc ] tri [ tuple>assoc ] tri
<update> >upsert update ; <update> >upsert update ;