~mdcallag/+junk/5.1-map

« back to all changes in this revision

Viewing changes to storage/myisam/rt_key.c

  • Committer: msvensson at pilot
  • Date: 2007-04-24 09:11:45 UTC
  • mfrom: (2469.1.106)
  • Revision ID: sp1r-msvensson@pilot.blaudden-20070424091145-10463
Merge pilot.blaudden:/home/msvensson/mysql/my51-m-mysql_upgrade
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
{
35
35
  uint page_size = mi_getint(page_buf);
36
36
  uint nod_flag = mi_test_if_nod(page_buf);
 
37
  DBUG_ENTER("rtree_add_key");
37
38
 
38
39
  if (page_size + key_length + info->s->base.rec_reflength <=
39
40
      keyinfo->block_length)
42
43
    if (nod_flag)
43
44
    {
44
45
      /* save key */
 
46
      DBUG_ASSERT(_mi_kpos(nod_flag, key) < info->state->key_file_length);
45
47
      memcpy(rt_PAGE_END(page_buf), key - nod_flag, key_length + nod_flag); 
46
48
      page_size += key_length + nod_flag;
47
49
    }
48
50
    else
49
51
    {
50
52
      /* save key */
 
53
      DBUG_ASSERT(_mi_dpos(info, nod_flag, key + key_length +
 
54
                           info->s->base.rec_reflength) <
 
55
                  info->state->data_file_length + info->s->base.pack_reclength);
51
56
      memcpy(rt_PAGE_END(page_buf), key, key_length + 
52
57
                                         info->s->base.rec_reflength);
53
58
      page_size += key_length + info->s->base.rec_reflength;
54
59
    }
55
60
    mi_putint(page_buf, page_size, nod_flag);
56
 
    return 0;
 
61
    DBUG_RETURN(0);
57
62
  }
58
63
 
59
 
  return (rtree_split_page(info, keyinfo, page_buf, key, key_length,
60
 
                           new_page) ? -1 : 1);
 
64
  DBUG_RETURN((rtree_split_page(info, keyinfo, page_buf, key, key_length,
 
65
                                new_page) ? -1 : 1));
61
66
}
62
67
 
63
68
/*
89
94
int rtree_set_key_mbr(MI_INFO *info, MI_KEYDEF *keyinfo, uchar *key, 
90
95
                      uint key_length, my_off_t child_page)
91
96
{
 
97
  DBUG_ENTER("rtree_set_key_mbr");
 
98
 
92
99
  if (!_mi_fetch_keypage(info, keyinfo, child_page,
93
100
                         DFLT_INIT_HITS, info->buff, 0))
94
 
    return -1;
 
101
    DBUG_RETURN(-1); /* purecov: inspected */
95
102
 
96
 
  return rtree_page_mbr(info, keyinfo->seg, info->buff, key, key_length);
 
103
  DBUG_RETURN(rtree_page_mbr(info, keyinfo->seg, info->buff, key, key_length));
97
104
}
98
105
 
99
106
#endif /*HAVE_RTREE_KEYS*/