summaryrefslogtreecommitdiff
path: root/myisam/rt_key.c
diff options
context:
space:
mode:
authorunknown <hf@deer.(none)>2004-06-02 19:17:35 +0500
committerunknown <hf@deer.(none)>2004-06-02 19:17:35 +0500
commitd55cb81cb0b89c14663e814a53b2fc69d0710580 (patch)
treeff05e5599bdcdb7f2d378d8130e42f7d8d5bea93 /myisam/rt_key.c
parent911073ed99d8622b165c0ecd69bc1175431f829a (diff)
parent21dea7fc0b4412586765e45a6b900e380cef9a58 (diff)
downloadmariadb-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.c46
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*/