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
23
Handler-calling-functions
27
#include "drizzled/my_hash.h"
28
#include "drizzled/error.h"
29
#include "drizzled/gettext.h"
30
#include "drizzled/probes.h"
31
#include "drizzled/sql_parse.h"
32
#include "drizzled/session.h"
33
#include "drizzled/sql_base.h"
34
#include "drizzled/replication_services.h"
35
#include "drizzled/lock.h"
36
#include "drizzled/item/int.h"
37
#include "drizzled/item/empty_string.h"
38
#include "drizzled/field/timestamp.h"
39
#include "drizzled/plugin/client.h"
40
#include "drizzled/internal/my_sys.h"
47
KEY_CREATE_INFO default_key_create_info= { HA_KEY_ALG_UNDEF, 0, {NULL,0} };
49
const char *ha_row_type[] = {
50
"", "FIXED", "DYNAMIC", "COMPRESSED", "REDUNDANT", "COMPACT", "PAGE", "?","?","?"
56
Register Cursor error messages for use with my_error().
64
int ha_init_errors(void)
66
#define SETMSG(nr, msg) errmsgs[(nr) - HA_ERR_FIRST]= (msg)
69
/* Allocate a pointer array for the error message strings. */
70
/* Zerofill it to avoid uninitialized gaps. */
71
if (! (errmsgs= (const char**) malloc(HA_ERR_ERRORS * sizeof(char*))))
73
memset(errmsgs, 0, HA_ERR_ERRORS * sizeof(char *));
75
/* Set the dedicated error messages. */
76
SETMSG(HA_ERR_KEY_NOT_FOUND, ER(ER_KEY_NOT_FOUND));
77
SETMSG(HA_ERR_FOUND_DUPP_KEY, ER(ER_DUP_KEY));
78
SETMSG(HA_ERR_RECORD_CHANGED, "Update wich is recoverable");
79
SETMSG(HA_ERR_WRONG_INDEX, "Wrong index given to function");
80
SETMSG(HA_ERR_CRASHED, ER(ER_NOT_KEYFILE));
81
SETMSG(HA_ERR_WRONG_IN_RECORD, ER(ER_CRASHED_ON_USAGE));
82
SETMSG(HA_ERR_OUT_OF_MEM, "Table Cursor out of memory");
83
SETMSG(HA_ERR_NOT_A_TABLE, "Incorrect file format '%.64s'");
84
SETMSG(HA_ERR_WRONG_COMMAND, "Command not supported");
85
SETMSG(HA_ERR_OLD_FILE, ER(ER_OLD_KEYFILE));
86
SETMSG(HA_ERR_NO_ACTIVE_RECORD, "No record read in update");
87
SETMSG(HA_ERR_RECORD_DELETED, "Intern record deleted");
88
SETMSG(HA_ERR_RECORD_FILE_FULL, ER(ER_RECORD_FILE_FULL));
89
SETMSG(HA_ERR_INDEX_FILE_FULL, "No more room in index file '%.64s'");
90
SETMSG(HA_ERR_END_OF_FILE, "End in next/prev/first/last");
91
SETMSG(HA_ERR_UNSUPPORTED, ER(ER_ILLEGAL_HA));
92
SETMSG(HA_ERR_TO_BIG_ROW, "Too big row");
93
SETMSG(HA_WRONG_CREATE_OPTION, "Wrong create option");
94
SETMSG(HA_ERR_FOUND_DUPP_UNIQUE, ER(ER_DUP_UNIQUE));
95
SETMSG(HA_ERR_UNKNOWN_CHARSET, "Can't open charset");
96
SETMSG(HA_ERR_WRONG_MRG_TABLE_DEF, ER(ER_WRONG_MRG_TABLE));
97
SETMSG(HA_ERR_CRASHED_ON_REPAIR, ER(ER_CRASHED_ON_REPAIR));
98
SETMSG(HA_ERR_CRASHED_ON_USAGE, ER(ER_CRASHED_ON_USAGE));
99
SETMSG(HA_ERR_LOCK_WAIT_TIMEOUT, ER(ER_LOCK_WAIT_TIMEOUT));
100
SETMSG(HA_ERR_LOCK_TABLE_FULL, ER(ER_LOCK_TABLE_FULL));
101
SETMSG(HA_ERR_READ_ONLY_TRANSACTION, ER(ER_READ_ONLY_TRANSACTION));
102
SETMSG(HA_ERR_LOCK_DEADLOCK, ER(ER_LOCK_DEADLOCK));
103
SETMSG(HA_ERR_CANNOT_ADD_FOREIGN, ER(ER_CANNOT_ADD_FOREIGN));
104
SETMSG(HA_ERR_NO_REFERENCED_ROW, ER(ER_NO_REFERENCED_ROW_2));
105
SETMSG(HA_ERR_ROW_IS_REFERENCED, ER(ER_ROW_IS_REFERENCED_2));
106
SETMSG(HA_ERR_NO_SAVEPOINT, "No savepoint with that name");
107
SETMSG(HA_ERR_NON_UNIQUE_BLOCK_SIZE, "Non unique key block size");
108
SETMSG(HA_ERR_NO_SUCH_TABLE, "No such table: '%.64s'");
109
SETMSG(HA_ERR_TABLE_EXIST, ER(ER_TABLE_EXISTS_ERROR));
110
SETMSG(HA_ERR_NO_CONNECTION, "Could not connect to storage engine");
111
SETMSG(HA_ERR_TABLE_DEF_CHANGED, ER(ER_TABLE_DEF_CHANGED));
112
SETMSG(HA_ERR_FOREIGN_DUPLICATE_KEY, "FK constraint would lead to duplicate key");
113
SETMSG(HA_ERR_TABLE_NEEDS_UPGRADE, ER(ER_TABLE_NEEDS_UPGRADE));
114
SETMSG(HA_ERR_TABLE_READONLY, ER(ER_OPEN_AS_READONLY));
115
SETMSG(HA_ERR_AUTOINC_READ_FAILED, ER(ER_AUTOINC_READ_FAILED));
116
SETMSG(HA_ERR_AUTOINC_ERANGE, ER(ER_WARN_DATA_OUT_OF_RANGE));
118
/* Register the error messages for use with my_error(). */
119
return my_error_register(errmsgs, HA_ERR_FIRST, HA_ERR_LAST);
124
Unregister Cursor error messages.
131
static int ha_finish_errors(void)
133
const char **errmsgs;
135
/* Allocate a pointer array for the error message strings. */
136
if (! (errmsgs= my_error_unregister(HA_ERR_FIRST, HA_ERR_LAST)))
138
free((unsigned char*) errmsgs);
147
This should be eventualy based on the graceful shutdown flag.
148
So if flag is equal to HA_PANIC_CLOSE, the deallocate
151
if (ha_finish_errors())
157
} /* namespace drizzled */