]> pd.if.org Git - btree/blobdiff - threadskv7.c
Rework BtKey for ushort and uint string lengths.
[btree] / threadskv7.c
index 86d7300a2c3947e67076c360654ab805f5533eb7..36fd43f7aebdaf070f9eb884c4649da5919238e9 100644 (file)
@@ -1,11 +1,11 @@
-// btree version threadskv6 sched_yield version
+// btree version threadskv7 sched_yield version
 //     with reworked bt_deletekey code,
 //     phase-fair reader writer lock,
 //     librarian page split code,
 //     duplicate key management
 //     bi-directional cursors
 //     traditional buffer pool manager
-//     and atomic key insert
+//     and atomic non-consistent key insert
 
 // 17 SEP 2014
 
@@ -2046,16 +2046,18 @@ uint prev;
 
        // insert new fence for reformulated left block of smaller keys
 
+       ptr = (BtKey*)fencekey;
        bt_putid (value, set->page_no);
 
-       if( bt_insertkey (bt, fencekey+1, *fencekey, lvl+1, value, BtId, 1) )
+       if( bt_insertkey (bt, ptr->key, ptr->len, lvl+1, value, BtId, 1) )
                return bt->err;
 
        // switch fence for right block of larger keys to new right page
 
+       ptr = (BtKey*)rightkey;
        bt_putid (value, right->page_no);
 
-       if( bt_insertkey (bt, rightkey+1, *rightkey, lvl+1, value, BtId, 1) )
+       if( bt_insertkey (bt, ptr->key, ptr->len, lvl+1, value, BtId, 1) )
                return bt->err;
 
        bt_unlockpage (BtLockParent, set->latch);