From dbcf28ee04791c08a37816a618b31ad39923e493 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 23 Sep 2014 14:01:26 -0700 Subject: [PATCH] Rework BtKey for ushort and uint string lengths. --- threadskv5.c | 6 ++++-- threadskv6.c | 6 ++++-- threadskv7.c | 10 ++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/threadskv5.c b/threadskv5.c index 544bb65..acda33b 100644 --- a/threadskv5.c +++ b/threadskv5.c @@ -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); diff --git a/threadskv6.c b/threadskv6.c index 627a378..be7dad6 100644 --- a/threadskv6.c +++ b/threadskv6.c @@ -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); diff --git a/threadskv7.c b/threadskv7.c index 86d7300..36fd43f 100644 --- a/threadskv7.c +++ b/threadskv7.c @@ -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); -- 2.40.0