~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to plugin/heap/hp_extra.cc

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2010-10-02 14:17:48 UTC
  • mfrom: (1.1.1 upstream)
  • mto: (2.1.17 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20101002141748-m6vbfbfjhrw1153e
Tags: 2010.09.1802-1
* New upstream release.
* Removed pid-file argument hack.
* Updated GPL-2 address to be new address.
* Directly copy in drizzledump.1 since debian doesn't have sphinx 1.0 yet.
* Link to jquery from libjs-jquery. Add it as a depend.
* Add drizzled.8 symlink to the install files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000-2001, 2004 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
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
 
 
16
 
/* Extra functions we want to do with a database */
17
 
/* - Set flags for quicker databasehandler */
18
 
/* - Set databasehandler to normal */
19
 
/* - Reset recordpointers as after open database */
20
 
 
21
 
#include "heap_priv.h"
22
 
 
23
 
using namespace drizzled;
24
 
 
25
 
static void heap_extra_keyflag(register HP_INFO *info,
26
 
                               enum ha_extra_function function);
27
 
 
28
 
 
29
 
        /* set extra flags for database */
30
 
 
31
 
int heap_extra(register HP_INFO *info, enum ha_extra_function function)
32
 
{
33
 
  switch (function) {
34
 
  case HA_EXTRA_RESET_STATE:
35
 
    heap_reset(info);
36
 
  case HA_EXTRA_NO_READCHECK:
37
 
    info->opt_flag&= ~READ_CHECK_USED;  /* No readcheck */
38
 
    break;
39
 
  case HA_EXTRA_READCHECK:
40
 
    info->opt_flag|= READ_CHECK_USED;
41
 
    break;
42
 
  case HA_EXTRA_CHANGE_KEY_TO_UNIQUE:
43
 
  case HA_EXTRA_CHANGE_KEY_TO_DUP:
44
 
    heap_extra_keyflag(info, function);
45
 
    break;
46
 
  default:
47
 
    break;
48
 
  }
49
 
  return(0);
50
 
} /* heap_extra */
51
 
 
52
 
 
53
 
int heap_reset(HP_INFO *info)
54
 
{
55
 
  info->lastinx= -1;
56
 
  info->current_record= UINT32_MAX;
57
 
  info->current_hash_ptr=0;
58
 
  info->update=0;
59
 
  info->next_block=0;
60
 
  return 0;
61
 
}
62
 
 
63
 
 
64
 
/*
65
 
    Start/Stop Inserting Duplicates Into a Table, WL#1648.
66
 
 */
67
 
static void heap_extra_keyflag(register HP_INFO *info,
68
 
                               enum ha_extra_function function)
69
 
{
70
 
  uint32_t  idx;
71
 
 
72
 
  for (idx= 0; idx< info->s->keys; idx++)
73
 
  {
74
 
    switch (function) {
75
 
    case HA_EXTRA_CHANGE_KEY_TO_UNIQUE:
76
 
      info->s->keydef[idx].flag|= HA_NOSAME;
77
 
      break;
78
 
    case HA_EXTRA_CHANGE_KEY_TO_DUP:
79
 
      info->s->keydef[idx].flag&= ~(HA_NOSAME);
80
 
      break;
81
 
    default:
82
 
      break;
83
 
    }
84
 
  }
85
 
}