]> pd.if.org Git - btree/commitdiff
Rework BtKey for ushort and uint string lengths.
authorunknown <karl@E04.petzent.com>
Tue, 23 Sep 2014 21:01:26 +0000 (14:01 -0700)
committerunknown <karl@E04.petzent.com>
Tue, 23 Sep 2014 21:01:26 +0000 (14:01 -0700)
threadskv5.c
threadskv6.c
threadskv7.c

index 544bb65de488065dc9310526cbfa7ac3d0543fc1..acda33bb7644896777e2f0a62b9aeb0914e6b502 100644 (file)
@@ -2266,15 +2266,17 @@ uint prev;
        // insert new fence for reformulated left block of smaller keys
 
        bt_putid (value, set->page_no);
+       ptr = (BtKey*)fencekey;
 
-       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
 
        bt_putid (value, right->page_no);
+       ptr = (BtKey*)rightkey;
 
-       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);
index 627a3786570d02b2833cd8f438a82f65b3d6257d..be7dad672f352ed1cb495d27f3f9fdfa73811225 100644 (file)
@@ -2006,16 +2006,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);
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);