diff options
author | unknown <hf@deer.(none)> | 2004-06-02 19:17:35 +0500 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2004-06-02 19:17:35 +0500 |
commit | d55cb81cb0b89c14663e814a53b2fc69d0710580 (patch) | |
tree | ff05e5599bdcdb7f2d378d8130e42f7d8d5bea93 /myisam/rt_key.c | |
parent | 911073ed99d8622b165c0ecd69bc1175431f829a (diff) | |
parent | 21dea7fc0b4412586765e45a6b900e380cef9a58 (diff) | |
download | mariadb-git-d55cb81cb0b89c14663e814a53b2fc69d0710580.tar.gz |
Merging
myisam/rt_index.c:
Auto merged
myisam/rt_index.h:
Auto merged
myisam/rt_mbr.c:
Auto merged
myisam/rt_mbr.h:
Auto merged
myisam/rt_split.c:
Auto merged
myisam/rt_test.c:
Auto merged
sql/spatial.cc:
Auto merged
Diffstat (limited to 'myisam/rt_key.c')
-rw-r--r-- | myisam/rt_key.c | 46 |
1 files changed, 2 insertions, 44 deletions
diff --git a/myisam/rt_key.c b/myisam/rt_key.c index e05bb744cc1..e2a402fbefd 100644 --- a/myisam/rt_key.c +++ b/myisam/rt_key.c @@ -36,7 +36,8 @@ int rtree_add_key(MI_INFO *info, MI_KEYDEF *keyinfo, uchar *key, uint page_size = mi_getint(page_buf); uint nod_flag = mi_test_if_nod(page_buf); - if (page_size + key_length + nod_flag <= keyinfo->block_length) + if (page_size + key_length + info->s->base.rec_reflength <= + keyinfo->block_length) { /* split won't be necessary */ if (nod_flag) @@ -96,47 +97,4 @@ int rtree_set_key_mbr(MI_INFO *info, MI_KEYDEF *keyinfo, uchar *key, return rtree_page_mbr(info, keyinfo->seg, info->buff, key, key_length); } - -/* - Choose non-leaf better key for insertion -*/ - -uchar *rtree_choose_key(MI_INFO *info, MI_KEYDEF *keyinfo, uchar *key, - uint key_length, uchar *page_buf, uint nod_flag) -{ - double increase; - double best_incr = DBL_MAX; - double area; - double best_area; - uchar *best_key; - uchar *k = rt_PAGE_FIRST_KEY(page_buf, nod_flag); - uchar *last = rt_PAGE_END(page_buf); - - LINT_INIT(best_area); - LINT_INIT(best_key); - - for (; k < last; k = rt_PAGE_NEXT_KEY(k, key_length, nod_flag)) - { - if ((increase = rtree_area_increase(keyinfo->seg, key, k, key_length, - &area)) == -1) - return NULL; - if (increase < best_incr) - { - best_key = k; - best_area = area; - best_incr = increase; - } - else - { - if ((increase == best_incr) && (area < best_area)) - { - best_key = k; - best_area = area; - best_incr = increase; - } - } - } - return best_key; -} - #endif /*HAVE_RTREE_KEYS*/ |