1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems
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.
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.
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
1
/* Copyright (C) 2000 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
20
16
/* This file includes constants used with all databases */
23
* @TODO Name this file something better and split it out if necessary.
24
* base.h isn't descriptive, especially compared to global.h
19
* @TODO Name this file something better and split it out if necessary.
20
* base.h isn't descriptive, especially compared to global.h
26
22
* @TODO Convert HA_XXX defines into enums and/or bitmaps
29
25
#ifndef DRIZZLE_SERVER_BASE_H
30
26
#define DRIZZLE_SERVER_BASE_H
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>
41
#include <mysys/my_list.h>
34
43
/* The following is bits in the flag parameter to ha_open() */
141
150
HA_EXTRA_CHANGE_KEY_TO_UNIQUE,
142
151
HA_EXTRA_CHANGE_KEY_TO_DUP,
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.
167
176
HA_EXTRA_WRITE_CANNOT_REPLACE,
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.
499
508
/* X > key, i.e. not including the right endpoint */
500
509
#define NEAR_MAX 8
503
This flag means that index is a unique index, and the interval is
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.
506
515
#define UNIQUE_RANGE 16
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
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.
513
522
#define EQ_RANGE 32
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".
519
528
#define NULL_RANGE 64
521
530
typedef struct st_key_range
523
const unsigned char *key;
525
534
key_part_map keypart_map;
526
535
enum ha_rkey_function flag;