1
/* Copyright (C) 2000-2004, 2006 MySQL AB
3
This program is free software; you can redistribute it and/or modify
4
it under the terms of the GNU General Public License as published by
5
the Free Software Foundation; version 2 of the License.
7
This program is distributed in the hope that it will be useful,
8
but WITHOUT ANY WARRANTY; without even the implied warranty of
9
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
GNU General Public License for more details.
12
You should have received a copy of the GNU General Public License
13
along with this program; if not, write to the Free Software
14
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
16
#include "heap_priv.h"
20
using namespace drizzled;
22
int heap_rkey(HP_INFO *info, unsigned char *record, int inx, const unsigned char *key,
23
key_part_map , enum ha_rkey_function )
26
HP_SHARE *share= info->getShare();
27
HP_KEYDEF *keyinfo= share->keydef + inx;
29
if ((uint) inx >= share->keys)
31
return(errno= HA_ERR_WRONG_INDEX);
34
info->current_record= UINT32_MAX; /* For heap_rrnd() */
36
if (!(pos= hp_search(info, share->keydef + inx, key, 0)))
41
if (!(keyinfo->flag & HA_NOSAME))
42
memcpy(&info->lastkey[0], key, (size_t) keyinfo->length);
44
hp_extract_record(share, record, pos);
45
info->update= HA_STATE_AKTIV;
50
/* Quick find of record */
52
unsigned char* heap_find(HP_INFO *info, int inx, const unsigned char *key)
54
return hp_search(info, info->getShare()->keydef + inx, key, 0);