~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/base.h

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
3
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems
 
4
 *  Copyright (C) 2008 Sun Microsystems, Inc.
5
5
 *
6
6
 *  This program is free software; you can redistribute it and/or modify
7
7
 *  it under the terms of the GNU General Public License as published by
25
25
 * @TODO Convert HA_XXX defines into enums and/or bitmaps
26
26
 */
27
27
 
 
28
#include "definitions.h"
 
29
 
28
30
#ifndef DRIZZLED_BASE_H
29
31
#define DRIZZLED_BASE_H
30
32
 
192
194
  HA_KEYTYPE_ULONG_INT=9,
193
195
  HA_KEYTYPE_LONGLONG=10,
194
196
  HA_KEYTYPE_ULONGLONG=11,
195
 
  HA_KEYTYPE_UINT24=13,
196
197
  /* Varchar (0-255 bytes) with length packed with 1 byte */
197
198
  HA_KEYTYPE_VARTEXT1=15,               /* Key is sorted as letters */
198
199
  HA_KEYTYPE_VARBINARY1=16,             /* Key is sorted as unsigned chars */
307
308
*/
308
309
#define HA_ERR_FIRST            120     /* Copy of first error nr.*/
309
310
 
310
 
#define HA_ERR_KEY_NOT_FOUND    120     /* Didn't find key on read or update */
311
 
#define HA_ERR_FOUND_DUPP_KEY   121     /* Dupplicate key on write */
312
 
#define HA_ERR_INTERNAL_ERROR   122     /* Internal error */
313
 
#define HA_ERR_RECORD_CHANGED   123     /* Uppdate with is recoverable */
314
 
#define HA_ERR_WRONG_INDEX      124     /* Wrong index given to function */
315
 
#define HA_ERR_CRASHED          126     /* Indexfile is crashed */
316
 
#define HA_ERR_WRONG_IN_RECORD  127     /* Record-file is crashed */
317
 
#define HA_ERR_OUT_OF_MEM       128     /* Record-file is crashed */
318
 
#define HA_ERR_NOT_A_TABLE      130     /* not a MYI file - no signature */
319
 
#define HA_ERR_WRONG_COMMAND    131     /* Command not supported */
320
 
#define HA_ERR_OLD_FILE         132     /* old databasfile */
321
 
#define HA_ERR_NO_ACTIVE_RECORD 133     /* No record read in update() */
322
 
#define HA_ERR_RECORD_DELETED   134     /* A record is not there */
323
 
#define HA_ERR_RECORD_FILE_FULL 135     /* No more room in file */
324
 
#define HA_ERR_INDEX_FILE_FULL  136     /* No more room in file */
325
 
#define HA_ERR_END_OF_FILE      137     /* end in next/prev/first/last */
326
 
#define HA_ERR_UNSUPPORTED      138     /* unsupported extension used */
327
 
#define HA_ERR_TO_BIG_ROW       139     /* Too big row */
328
 
#define HA_WRONG_CREATE_OPTION  140     /* Wrong create option */
329
 
#define HA_ERR_FOUND_DUPP_UNIQUE 141    /* Dupplicate unique on write */
330
 
#define HA_ERR_UNKNOWN_CHARSET   142    /* Can't open charset */
331
 
#define HA_ERR_WRONG_MRG_TABLE_DEF 143  /* conflicting tables in MERGE */
332
 
#define HA_ERR_CRASHED_ON_REPAIR 144    /* Last (automatic?) repair failed */
333
 
#define HA_ERR_CRASHED_ON_USAGE  145    /* Table must be repaired */
334
 
#define HA_ERR_LOCK_WAIT_TIMEOUT 146
335
 
#define HA_ERR_LOCK_TABLE_FULL   147
336
 
#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */
337
 
#define HA_ERR_LOCK_DEADLOCK     149
338
 
#define HA_ERR_CANNOT_ADD_FOREIGN 150    /* Cannot add a foreign key constr. */
339
 
#define HA_ERR_NO_REFERENCED_ROW 151     /* Cannot add a child row */
340
 
#define HA_ERR_ROW_IS_REFERENCED 152     /* Cannot delete a parent row */
341
 
#define HA_ERR_NO_SAVEPOINT      153     /* No savepoint with that name */
342
 
#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 154 /* Non unique key block size */
343
 
#define HA_ERR_NO_SUCH_TABLE     155  /* The table does not exist in engine */
344
 
#define HA_ERR_TABLE_EXIST       156  /* The table existed in storage engine */
345
 
#define HA_ERR_NO_CONNECTION     157  /* Could not connect to storage engine */
346
 
/* NULLs are not supported in spatial index */
347
 
#define HA_ERR_NULL_IN_SPATIAL   158
348
 
#define HA_ERR_TABLE_DEF_CHANGED 159  /* The table changed in storage engine */
349
 
/* There's no partition in table for given value */
350
 
#define HA_ERR_NO_PARTITION_FOUND 160
351
 
#define HA_ERR_RBR_LOGGING_FAILED 161  /* Row-based binlogging of row failed */
352
 
#define HA_ERR_DROP_INDEX_FK      162  /* Index needed in foreign key constr */
353
 
/*
354
 
  Upholding foreign key constraints would lead to a duplicate key error
355
 
  in some other table.
356
 
*/
357
 
#define HA_ERR_FOREIGN_DUPLICATE_KEY 163
358
 
/* The table changed in storage engine */
359
 
#define HA_ERR_TABLE_NEEDS_UPGRADE 164
360
 
#define HA_ERR_TABLE_READONLY      165   /* The table is not writable */
361
 
 
362
 
#define HA_ERR_AUTOINC_READ_FAILED 166   /* Failed to get next autoinc value */
363
 
#define HA_ERR_AUTOINC_ERANGE    167     /* Failed to set row autoinc value */
364
 
#define HA_ERR_GENERIC           168     /* Generic error */
365
 
/* row not actually updated: new values same as the old values */
366
 
#define HA_ERR_RECORD_IS_THE_SAME 169
367
 
/* It is not possible to log this statement */
368
 
#define HA_ERR_LOGGING_IMPOSSIBLE 170    /* It is not possible to log this
369
 
                                            statement */
370
 
#define HA_ERR_TABLESPACE_EXIST   171
371
 
#define HA_ERR_CORRUPT_EVENT      172    /* The event was corrupt, leading to
372
 
                                            illegal data being read */
373
 
#define HA_ERR_NEW_FILE           173    /* New file format */
374
 
#define HA_ERR_ROWS_EVENT_APPLY   174    /* The event could not be processed
375
 
                                            no other hanlder error happened */
376
 
#define HA_ERR_INITIALIZATION     175    /* Error during initialization */
377
 
#define HA_ERR_FILE_TOO_SHORT     176    /* File too short */
378
 
#define HA_ERR_WRONG_CRC          177    /* Wrong CRC on page */
379
 
#define HA_ERR_LOCK_OR_ACTIVE_TRANSACTION 178
380
 
#define HA_ERR_NO_SUCH_TABLESPACE 179
381
 
#define HA_ERR_TABLESPACE_NOT_EMPTY 180
382
 
#define HA_ERR_LAST               180    /* Copy of last error nr */
383
 
 
384
 
/* Number of different errors */
385
 
#define HA_ERR_ERRORS            (HA_ERR_LAST - HA_ERR_FIRST + 1)
386
 
 
387
 
        /* Other constants */
 
311
/* Other constants */
388
312
 
389
313
typedef unsigned long key_part_map;
390
314
#define HA_WHOLE_KEY  (~(key_part_map)0)
474
398
*/
475
399
#define NULL_RANGE      64
476
400
 
477
 
typedef struct st_key_range
 
401
class key_range
478
402
{
 
403
public:
479
404
  const unsigned char *key;
480
405
  uint32_t length;
481
406
  enum ha_rkey_function flag;
482
407
  key_part_map keypart_map;
483
 
} key_range;
 
408
};
484
409
 
485
 
typedef struct st_key_multi_range
 
410
class KEY_MULTI_RANGE
486
411
{
 
412
public:
487
413
  key_range start_key;
488
414
  key_range end_key;
489
415
  char  *ptr;                 /* Free to use by caller (ptr to row etc) */
490
416
  uint32_t  range_flag;           /* key range flags see above */
491
 
} KEY_MULTI_RANGE;
 
417
};
492
418
 
493
419
 
494
420
/* For number of records */
495
421
typedef uint64_t        ha_rows;
496
 
#define rows2double(A)  uint64_t2double(A)
 
422
inline static double rows2double(ha_rows rows)
 
423
{  
 
424
  return uint64_t2double(rows);
 
425
}
497
426
 
498
427
#define HA_POS_ERROR    (~ (::drizzled::ha_rows) 0)
499
428
#define HA_OFFSET_ERROR (~ (::drizzled::internal::my_off_t) 0)
504
433
#define MAX_FILE_SIZE   INT64_MAX
505
434
#endif
506
435
 
507
 
#define HA_VARCHAR_PACKLENGTH(field_length) ((field_length) < 256 ? 1 :2)
 
436
inline static uint32_t ha_varchar_packlength(uint32_t field_length)
 
437
{
 
438
  return (field_length < 256 ? 1 :2);
 
439
}
508
440
 
509
441
 
510
442
} /* namespace drizzled */