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 )
 | 
			
		||||
   H{ } clone swap [ <mirror> ] keep pick ; inline
 | 
			
		||||
 | 
			
		||||
: ensure-mdb-info ( tuple -- tuple )    
 | 
			
		||||
   dup id>> [ <oid> >>id ] unless ; inline
 | 
			
		||||
 | 
			
		||||
: with-object-map ( quot: ( -- ) -- store-assoc )
 | 
			
		||||
   [ H{ } clone dup object-map ] dip with-variable ; inline
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -92,11 +89,14 @@ PRIVATE>
 | 
			
		|||
 | 
			
		||||
GENERIC: tuple>storable ( tuple -- storable )
 | 
			
		||||
 | 
			
		||||
: ensure-oid ( tuple -- tuple )
 | 
			
		||||
   dup id>> [ <oid> >>id ] unless ; inline
 | 
			
		||||
 | 
			
		||||
M: mdb-persistent tuple>storable ( mdb-persistent -- object-map )
 | 
			
		||||
   '[ _ [ tuple>assoc ] write-mdb-persistent drop ] with-object-map ; inline
 | 
			
		||||
 | 
			
		||||
M: mdb-persistent tuple>assoc ( tuple -- assoc )
 | 
			
		||||
   ensure-mdb-info (tuple>assoc) ;
 | 
			
		||||
   ensure-oid (tuple>assoc) ;
 | 
			
		||||
 | 
			
		||||
M: tuple tuple>assoc ( tuple -- assoc )
 | 
			
		||||
   (tuple>assoc) ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ PRIVATE>
 | 
			
		|||
 
 | 
			
		||||
: update-tuple ( tuple -- )
 | 
			
		||||
    [ tuple-collection name>> ]
 | 
			
		||||
    [ id-selector ]
 | 
			
		||||
    [ ensure-oid id-selector ]
 | 
			
		||||
    [ tuple>assoc ] tri
 | 
			
		||||
    <update> >upsert update ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue