~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/base.h

  • Committer: Monty Taylor
  • Date: 2008-08-16 21:06:22 UTC
  • Revision ID: monty@inaugust.com-20080816210622-zpnn13unyinqzn72
Updated po files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems
5
 
 *
6
 
 *  This program is free software; you can redistribute it and/or modify
7
 
 *  it under the terms of the GNU General Public License as published by
8
 
 *  the Free Software Foundation; version 2 of the License.
9
 
 *
10
 
 *  This program is distributed in the hope that it will be useful,
11
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 *  GNU General Public License for more details.
14
 
 *
15
 
 *  You should have received a copy of the GNU General Public License
16
 
 *  along with this program; if not, write to the Free Software
17
 
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
 
 */
 
1
/* Copyright (C) 2000 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 */
19
15
 
20
16
/* This file includes constants used with all databases */
21
17
 
22
 
/**
23
 
 * @TODO Name this file something better and split it out if necessary.
24
 
 * base.h isn't descriptive, especially compared to global.h
 
18
/** 
 
19
 * @TODO Name this file something better and split it out if necessary.  
 
20
 * base.h isn't descriptive, especially compared to global.h 
25
21
 *
26
22
 * @TODO Convert HA_XXX defines into enums and/or bitmaps
27
23
 */
29
25
#ifndef DRIZZLE_SERVER_BASE_H
30
26
#define DRIZZLE_SERVER_BASE_H
31
27
 
 
28
#ifndef stdin                           /* Included first in handler */
32
29
#define CHSIZE_USED
 
30
#include <drizzled/global.h>
 
31
#include <mysys/my_dir.h>               /* This includes types */
 
32
#include <mysys/my_sys.h>
 
33
#include <mystrings/m_string.h>
 
34
#include <errno.h>
 
35
 
 
36
#ifndef EOVERFLOW
 
37
#define EOVERFLOW 84
 
38
#endif
 
39
 
 
40
#endif  /* stdin */
 
41
#include <mysys/my_list.h>
33
42
 
34
43
/* The following is bits in the flag parameter to ha_open() */
35
44
 
95
104
 
96
105
        /* Index and table build methods */
97
106
 
98
 
enum ha_build_method {
99
 
  HA_BUILD_DEFAULT,
 
107
enum ha_build_method { 
 
108
  HA_BUILD_DEFAULT, 
100
109
  HA_BUILD_ONLINE,
101
 
  HA_BUILD_OFFLINE
 
110
  HA_BUILD_OFFLINE 
102
111
};
103
112
 
104
113
        /* The following is parameter to ha_extra() */
141
150
  HA_EXTRA_CHANGE_KEY_TO_UNIQUE,
142
151
  HA_EXTRA_CHANGE_KEY_TO_DUP,
143
152
  /*
144
 
    When using HA_EXTRA_KEYREAD, overwrite only key member fields and keep
 
153
    When using HA_EXTRA_KEYREAD, overwrite only key member fields and keep 
145
154
    other fields intact. When this is off (by default) InnoDB will use memcpy
146
155
    to overwrite entire row.
147
156
  */
167
176
  HA_EXTRA_WRITE_CANNOT_REPLACE,
168
177
  /*
169
178
    Inform handler that delete_row()/update_row() cannot batch deletes/updates
170
 
    and should perform them immediately. This may be needed when table has
 
179
    and should perform them immediately. This may be needed when table has 
171
180
    AFTER DELETE/UPDATE triggers which access to subject table.
172
181
    These flags are reset by the handler::extra(HA_EXTRA_RESET) call.
173
182
  */
499
508
/* X > key, i.e. not including the right endpoint */
500
509
#define NEAR_MAX        8
501
510
 
502
 
/*
503
 
  This flag means that index is a unique index, and the interval is
 
511
/* 
 
512
  This flag means that index is a unique index, and the interval is 
504
513
  equivalent to "AND(keypart_i = const_i)", where all of const_i are not NULLs.
505
514
*/
506
515
#define UNIQUE_RANGE    16
507
516
 
508
 
/*
509
 
  This flag means that the interval is equivalent to
510
 
  "AND(keypart_i = const_i)", where not all key parts may be used but all of
 
517
/* 
 
518
  This flag means that the interval is equivalent to 
 
519
  "AND(keypart_i = const_i)", where not all key parts may be used but all of 
511
520
  const_i are not NULLs.
512
521
*/
513
522
#define EQ_RANGE        32
514
523
 
515
524
/*
516
525
  This flag has the same meaning as UNIQUE_RANGE, except that for at least
517
 
  one keypart the condition is "keypart IS NULL".
 
526
  one keypart the condition is "keypart IS NULL". 
518
527
*/
519
528
#define NULL_RANGE      64
520
529
 
521
530
typedef struct st_key_range
522
531
{
523
 
  const unsigned char *key;
524
 
  uint32_t length;
 
532
  const uchar *key;
 
533
  uint length;
525
534
  key_part_map keypart_map;
526
535
  enum ha_rkey_function flag;
527
536
} key_range;
531
540
  key_range start_key;
532
541
  key_range end_key;
533
542
  char  *ptr;                 /* Free to use by caller (ptr to row etc) */
534
 
  uint32_t  range_flag;           /* key range flags see above */
 
543
  uint  range_flag;           /* key range flags see above */
535
544
} KEY_MULTI_RANGE;
536
545
 
537
546