~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to include/my_base.h

Removed/replaced DBUG symbols and standardized TRUE/FALSE

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 
25
 
 *
26
 
 * @TODO Convert HA_XXX defines into enums and/or bitmaps
27
 
 */
28
 
 
29
 
#ifndef DRIZZLE_SERVER_BASE_H
30
 
#define DRIZZLE_SERVER_BASE_H
 
18
#ifndef _my_base_h
 
19
#define _my_base_h
31
20
 
32
21
#ifndef stdin                           /* Included first in handler */
33
22
#define CHSIZE_USED
34
 
#include <drizzled/global.h>
35
 
#include <mysys/my_dir.h>               /* This includes types */
36
 
#include <mysys/my_sys.h>
37
 
#include <mystrings/m_string.h>
 
23
#include <my_global.h>
 
24
#include <my_dir.h>                     /* This includes types */
 
25
#include <my_sys.h>
 
26
#include <m_string.h>
38
27
#include <errno.h>
39
28
 
40
29
#ifndef EOVERFLOW
42
31
#endif
43
32
 
44
33
#endif  /* stdin */
45
 
#include <mysys/my_list.h>
 
34
#include <my_list.h>
46
35
 
47
36
/* The following is bits in the flag parameter to ha_open() */
48
37
 
170
159
  HA_EXTRA_IGNORE_NO_KEY,
171
160
  HA_EXTRA_NO_IGNORE_NO_KEY,
172
161
  /*
 
162
    Mark the table as a log table. For some handlers (e.g. CSV) this results
 
163
    in a special locking for the table.
 
164
  */
 
165
  HA_EXTRA_MARK_AS_LOG_TABLE,
 
166
  /*
173
167
    Informs handler that write_row() which tries to insert new row into the
174
168
    table and encounters some already existing row with same primary/unique
175
169
    key can replace old row with new row instead of reporting error (basically
241
235
#define HA_PACK_KEY              2      /* Pack string key to previous key */
242
236
#define HA_AUTO_KEY              16
243
237
#define HA_BINARY_PACK_KEY       32     /* Packing of all keys to prev key */
 
238
#define HA_FULLTEXT             128     /* For full-text search */
244
239
#define HA_UNIQUE_CHECK         256     /* Check the key for uniqueness */
 
240
#define HA_SPATIAL              1024    /* For spatial search */
245
241
#define HA_NULL_ARE_EQUAL       2048    /* NULL in key are cmp as equal */
246
242
#define HA_GENERATED_KEY        8192    /* Automaticly generated key */
247
243
 
248
244
        /* The combination of the above can be used for key type comparison. */
249
245
#define HA_KEYFLAG_MASK (HA_NOSAME | HA_PACK_KEY | HA_AUTO_KEY | \
250
 
                         HA_BINARY_PACK_KEY | HA_UNIQUE_CHECK | \
251
 
                         HA_NULL_ARE_EQUAL | HA_GENERATED_KEY)
 
246
                         HA_BINARY_PACK_KEY | HA_FULLTEXT | HA_UNIQUE_CHECK | \
 
247
                         HA_SPATIAL | HA_NULL_ARE_EQUAL | HA_GENERATED_KEY)
252
248
 
253
249
#define HA_KEY_HAS_PART_KEY_SEG 65536   /* Key contains partial segments */
254
250
 
258
254
#define HA_VAR_LENGTH_KEY        8
259
255
#define HA_NULL_PART_KEY         64
260
256
#define HA_USES_COMMENT          4096
 
257
#define HA_USES_PARSER           16384  /* Fulltext index uses [pre]parser */
261
258
#define HA_USES_BLOCK_SIZE       ((uint) 32768)
262
259
#define HA_SORT_ALLOWS_SAME      512    /* Intern bit when sorting records */
263
260
 
420
417
#define HA_ERR_TABLESPACE_EXIST   171
421
418
#define HA_ERR_CORRUPT_EVENT      172    /* The event was corrupt, leading to
422
419
                                            illegal data being read */
423
 
#define HA_ERR_NEW_FILE           173    /* New file format */
424
 
#define HA_ERR_ROWS_EVENT_APPLY   174    /* The event could not be processed
 
420
#define HA_ERR_NEW_FILE           172    /* New file format */
 
421
#define HA_ERR_ROWS_EVENT_APPLY   173    /* The event could not be processed
425
422
                                            no other hanlder error happened */
426
 
#define HA_ERR_INITIALIZATION     175    /* Error during initialization */
427
 
#define HA_ERR_FILE_TOO_SHORT     176    /* File too short */
428
 
#define HA_ERR_WRONG_CRC          177    /* Wrong CRC on page */
429
 
#define HA_ERR_LOCK_OR_ACTIVE_TRANSACTION 178
430
 
#define HA_ERR_NO_SUCH_TABLESPACE 179
431
 
#define HA_ERR_TABLESPACE_NOT_EMPTY 180
432
 
#define HA_ERR_LAST               180    /* Copy of last error nr */
 
423
#define HA_ERR_INITIALIZATION     174    /* Error during initialization */
 
424
#define HA_ERR_FILE_TOO_SHORT     175    /* File too short */
 
425
#define HA_ERR_WRONG_CRC          176    /* Wrong CRC on page */
 
426
#define HA_ERR_LOCK_OR_ACTIVE_TRANSACTION 177
 
427
#define HA_ERR_NO_SUCH_TABLESPACE 178
 
428
#define HA_ERR_TABLESPACE_NOT_EMPTY 179
 
429
#define HA_ERR_LAST               179    /* Copy of last error nr */
433
430
 
434
431
/* Number of different errors */
435
432
#define HA_ERR_ERRORS            (HA_ERR_LAST - HA_ERR_FIRST + 1)
531
528
*/
532
529
#define NULL_RANGE      64
533
530
 
 
531
#define GEOM_FLAG      128
 
532
 
 
533
/* Deprecated, currently used only by NDB at row retrieval */
 
534
#define SKIP_RANGE     256
 
535
 
534
536
typedef struct st_key_range
535
537
{
536
 
  const unsigned char *key;
537
 
  uint32_t length;
 
538
  const uchar *key;
 
539
  uint length;
538
540
  key_part_map keypart_map;
539
541
  enum ha_rkey_function flag;
540
542
} key_range;
544
546
  key_range start_key;
545
547
  key_range end_key;
546
548
  char  *ptr;                 /* Free to use by caller (ptr to row etc) */
547
 
  uint32_t  range_flag;           /* key range flags see above */
 
549
  uint  range_flag;           /* key range flags see above */
548
550
} KEY_MULTI_RANGE;
549
551
 
550
552
 
551
553
/* For number of records */
552
 
typedef uint64_t        ha_rows;
553
 
#define rows2double(A)  uint64_t2double(A)
 
554
#ifdef BIG_TABLES
 
555
#define rows2double(A)  ulonglong2double(A)
 
556
typedef my_off_t        ha_rows;
 
557
#else
 
558
#define rows2double(A)  (double) (A)
 
559
typedef ulong           ha_rows;
 
560
#endif
554
561
 
555
562
#define HA_POS_ERROR    (~ (ha_rows) 0)
556
563
#define HA_OFFSET_ERROR (~ (my_off_t) 0)
557
564
 
558
565
#if SIZEOF_OFF_T == 4
559
 
#define MAX_FILE_SIZE   INT32_MAX
 
566
#define MAX_FILE_SIZE   INT_MAX32
560
567
#else
561
 
#define MAX_FILE_SIZE   INT64_MAX
 
568
#define MAX_FILE_SIZE   LONGLONG_MAX
562
569
#endif
563
570
 
564
571
#define HA_VARCHAR_PACKLENGTH(field_length) ((field_length) < 256 ? 1 :2)
566
573
/* invalidator function reference for Query Cache */
567
574
typedef void (* invalidator_by_filename)(const char * filename);
568
575
 
569
 
#endif /* DRIZZLE_SERVER_BASE_H */
 
576
#endif /* _my_base_h */