revised tuple oid handling
parent
4a836dcdea
commit
2653ae7f47
|
@ -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) ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue