~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
/* Copyright (C) 2000-2004, 2006 MySQL AB
2
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.
6
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.
11
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
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1 by brian
clean slate
15
1130.3.28 by Monty Taylor
Moved heapdef.h and myisamdef.h to *_priv.h for easier filtering for include guard check.
16
#include "heap_priv.h"
1 by brian
clean slate
17
612.2.13 by Monty Taylor
Work on removing global.h from headers that should be installed.
18
#include <string.h>
19
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
20
using namespace drizzled;
21
660.1.3 by Eric Herman
removed trailing whitespace with simple script:
22
int heap_rkey(HP_INFO *info, unsigned char *record, int inx, const unsigned char *key,
1749.3.1 by Brian Aker
Run through a bunch of dead code.
23
              key_part_map , enum ha_rkey_function )
1 by brian
clean slate
24
{
481 by Brian Aker
Remove all of uchar.
25
  unsigned char *pos;
1697.2.1 by Brian Aker
Encapsulate the internal share for HEAP.
26
  HP_SHARE *share= info->getShare();
1 by brian
clean slate
27
  HP_KEYDEF *keyinfo= share->keydef + inx;
28
29
  if ((uint) inx >= share->keys)
30
  {
1241.9.57 by Monty Taylor
Oy. Bigger change than I normally like - but this stuff is all intertwined.
31
    return(errno= HA_ERR_WRONG_INDEX);
1 by brian
clean slate
32
  }
33
  info->lastinx= inx;
365.2.8 by Monty Taylor
More MAX macros.
34
  info->current_record= UINT32_MAX;		/* For heap_rrnd() */
1 by brian
clean slate
35
  {
36
    if (!(pos= hp_search(info, share->keydef + inx, key, 0)))
37
    {
38
      info->update= 0;
1241.9.57 by Monty Taylor
Oy. Bigger change than I normally like - but this stuff is all intertwined.
39
      return(errno);
1 by brian
clean slate
40
    }
53.2.14 by Monty Taylor
Removed HA_END_SPACE_KEY and references to it. It was _supposed_ to be gone anyway, but the ifdef around it was broken (MYSQL_VERSION_ID was actually undefined.)
41
    if (!(keyinfo->flag & HA_NOSAME))
1707.1.3 by Brian Aker
Switch to using vector.
42
      memcpy(&info->lastkey[0], key, (size_t) keyinfo->length);
1 by brian
clean slate
43
  }
244.1.1 by Harrison Fisk
Port Ebay/Google memory storage engine variable width columns.
44
  hp_extract_record(share, record, pos);
1 by brian
clean slate
45
  info->update= HA_STATE_AKTIV;
51.3.1 by Jay Pipes
Removed all DBUG symbols from heap storage engine
46
  return(0);
1 by brian
clean slate
47
}
48
49
50
	/* Quick find of record */
51
481 by Brian Aker
Remove all of uchar.
52
unsigned char* heap_find(HP_INFO *info, int inx, const unsigned char *key)
1 by brian
clean slate
53
{
1697.2.1 by Brian Aker
Encapsulate the internal share for HEAP.
54
  return hp_search(info, info->getShare()->keydef + inx, key, 0);
1 by brian
clean slate
55
}