~drizzle-trunk/drizzle/development

549 by Monty Taylor
Took gettext.h out of header files.
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
4
 *  Copyright (C) 2000 MySQL AB
549 by Monty Taylor
Took gettext.h out of header files.
5
 *  Copyright (C) 2008 Sun Microsystems
6
 *
7
 *  This program is free software; you can redistribute it and/or modify
8
 *  it under the terms of the GNU General Public License as published by
9
 *  the Free Software Foundation; version 2 of the License.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program; if not, write to the Free Software
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 */
20
21
/*
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
22
 * Errors a drizzled can give you
23
 */
549 by Monty Taylor
Took gettext.h out of header files.
24
1241.9.1 by Monty Taylor
Removed global.h. Fixed all the headers.
25
#include "config.h"
1241.9.64 by Monty Taylor
Moved remaining non-public portions of mysys and mystrings to drizzled/internal.
26
#include "drizzled/internal/my_sys.h"
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
27
#include "drizzled/definitions.h"
28
#include "drizzled/error.h"
29
#include "drizzled/gettext.h"
1271.7.9 by Tim Penhey
Almost there.
30
1678.1.1 by Monty Taylor
Removed our unordered wrappers. We use Boost now.
31
#include <boost/unordered_map.hpp>
1271.7.9 by Tim Penhey
Almost there.
32
#include <exception>
549 by Monty Taylor
Took gettext.h out of header files.
33
1271.7.15 by Tim Penhey
Fix mistakes from the merge.
34
namespace drizzled
35
{
36
namespace
37
{
1271.7.2 by Tim Penhey
Add notes and typedef.
38
1271.7.9 by Tim Penhey
Almost there.
39
class ErrorStringNotFound: public std::exception
40
{
41
public:
1816.2.3 by Monty Taylor
Fixed some more ICC warnings. How did I get started on this this morning?
42
  ErrorStringNotFound()
1271.7.9 by Tim Penhey
Almost there.
43
  {}
44
};
1271.7.2 by Tim Penhey
Add notes and typedef.
45
1271.7.4 by Tim Penhey
Another incremental commit.
46
/*
47
 * Provides a mapping from the error enum values to std::strings.
48
 */
49
class ErrorMap
50
{
51
public:
52
  ErrorMap();
53
54
  // Insert the message for the error.  If the error already has an existing
55
  // mapping, an error is logged, but the function continues.
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
56
  void add(uint32_t error_num, const std::string &message);
1271.7.9 by Tim Penhey
Almost there.
57
58
  // If there is no error mapping for the error_num, ErrorStringNotFound is raised.
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
59
  const std::string &find(uint32_t error_num) const;
1271.7.4 by Tim Penhey
Another incremental commit.
60
61
private:
62
  // Disable copy and assignment.
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
63
  ErrorMap(const ErrorMap &e);
64
  ErrorMap& operator=(const ErrorMap &e);
1271.7.4 by Tim Penhey
Another incremental commit.
65
1678.1.1 by Monty Taylor
Removed our unordered wrappers. We use Boost now.
66
  typedef boost::unordered_map<uint32_t, std::string> ErrorMessageMap;
1271.7.4 by Tim Penhey
Another incremental commit.
67
  ErrorMessageMap mapping_;
68
};
69
70
ErrorMap& get_error_map()
71
{
72
  static ErrorMap errors;
73
  return errors;
74
}
75
76
} // anonymous namespace
1271.7.3 by Tim Penhey
Kinda changed, probably doesn't compile.
77
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
78
void add_error_message(uint32_t error_code, const std::string &message)
1271.7.9 by Tim Penhey
Almost there.
79
{
80
  get_error_map().add(error_code, message);
81
}
82
549 by Monty Taylor
Took gettext.h out of header files.
83
const char * error_message(unsigned int code)
84
{
1271.7.9 by Tim Penhey
Almost there.
85
  try
86
  {
87
    return get_error_map().find(code).c_str();
88
  }
89
  catch (ErrorStringNotFound const& e)
90
  {
91
    return get_error_map().find(ER_UNKNOWN_ERROR).c_str();
92
  }
549 by Monty Taylor
Took gettext.h out of header files.
93
}
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
94
95
error_handler_func error_handler_hook= NULL;
96
97
/*
98
  WARNING!
99
  my_error family functions have to be used according following rules:
100
  - if message have not parameters use my_message(ER_CODE, ER(ER_CODE), MYF(N))
101
  - if message registered use my_error(ER_CODE, MYF(N), ...).
102
  - With some special text of errror message use:
103
  my_printf_error(ER_CODE, format, MYF(N), ...)
104
*/
105
106
/*
107
   Error message to user
108
109
   SYNOPSIS
110
     my_error()
111
       nr	Errno
112
       MyFlags	Flags
113
       ...	variable list
114
*/
115
116
void my_error(int nr, myf MyFlags, ...)
117
{
1271.7.9 by Tim Penhey
Almost there.
118
  std::string format;
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
119
  va_list args;
120
  char ebuff[ERRMSGSIZE + 20];
121
1271.7.9 by Tim Penhey
Almost there.
122
  try
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
123
  {
1271.7.9 by Tim Penhey
Almost there.
124
    format= get_error_map().find(nr);
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
125
    va_start(args,MyFlags);
1271.7.12 by Tim Penhey
Put the gettext macro back in.
126
    (void) vsnprintf (ebuff, sizeof(ebuff), _(format.c_str()), args);
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
127
    va_end(args);
128
  }
1271.7.9 by Tim Penhey
Almost there.
129
  catch (ErrorStringNotFound const& e)
130
  {
131
    (void) snprintf (ebuff, sizeof(ebuff), _("Unknown error %d"), nr);
132
  }
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
133
  (*error_handler_hook)(nr, ebuff, MyFlags);
134
}
135
136
/*
137
  Error as printf
138
1271.5.3 by Tim Penhey
change the include files
139
         SYNOPSIS
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
140
    my_printf_error()
141
      error	Errno
142
      format	Format string
143
      MyFlags	Flags
144
      ...	variable list
145
*/
146
147
void my_printf_error(uint32_t error, const char *format, myf MyFlags, ...)
148
{
149
  va_list args;
150
  char ebuff[ERRMSGSIZE+20];
151
152
  va_start(args,MyFlags);
153
  (void) vsnprintf (ebuff, sizeof(ebuff), format, args);
154
  va_end(args);
155
  (*error_handler_hook)(error, ebuff, MyFlags);
156
  return;
157
}
158
159
/*
160
  Give message using error_handler_hook
161
162
  SYNOPSIS
163
    my_message()
164
      error	Errno
165
      str	Error message
166
      MyFlags	Flags
167
*/
168
169
void my_message(uint32_t error, const char *str, register myf MyFlags)
170
{
171
  (*error_handler_hook)(error, str, MyFlags);
172
}
173
174
1271.7.4 by Tim Penhey
Another incremental commit.
175
namespace
176
{
177
178
// Insert the message for the error.  If the error already has an existing
179
// mapping, an error is logged, but the function continues.
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
180
void ErrorMap::add(uint32_t error_num, const std::string &message)
1271.7.4 by Tim Penhey
Another incremental commit.
181
{
182
  if (mapping_.find(error_num) == mapping_.end())
183
  {
184
    // Log the error.
1271.7.9 by Tim Penhey
Almost there.
185
    mapping_[error_num]= message;
1271.7.4 by Tim Penhey
Another incremental commit.
186
  }
187
  else
188
  {
189
    mapping_.insert(ErrorMessageMap::value_type(error_num, message));
190
  }
191
}
192
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
193
const std::string &ErrorMap::find(uint32_t error_num) const
1271.7.4 by Tim Penhey
Another incremental commit.
194
{
195
  ErrorMessageMap::const_iterator pos= mapping_.find(error_num);
196
  if (pos == mapping_.end())
197
  {
1816.2.3 by Monty Taylor
Fixed some more ICC warnings. How did I get started on this this morning?
198
    throw ErrorStringNotFound();
1271.7.4 by Tim Penhey
Another incremental commit.
199
  }
200
  return pos->second;
201
}
202
203
204
// Constructor sets the default mappings.
205
ErrorMap::ErrorMap()
206
{
207
  add(ER_NO, N_("NO"));
208
  add(ER_YES, N_("YES"));
209
  add(ER_CANT_CREATE_FILE, N_("Can't create file '%-.200s' (errno: %d)"));
210
  add(ER_CANT_CREATE_TABLE, N_("Can't create table '%-.200s' (errno: %d)"));
1843.7.6 by Brian Aker
This cleans up error messages to state "schema" instead of database.
211
  add(ER_CANT_CREATE_DB, N_("Can't create schema '%-.192s' (errno: %d)"));
212
  add(ER_DB_CREATE_EXISTS, N_("Can't create schema '%-.192s'; schema exists"));
213
  add(ER_DB_DROP_EXISTS, N_("Can't drop schema '%-.192s'; schema doesn't exist"));
1271.7.4 by Tim Penhey
Another incremental commit.
214
  add(ER_CANT_DELETE_FILE, N_("Error on delete of '%-.192s' (errno: %d)"));
215
  add(ER_CANT_GET_STAT, N_("Can't get status of '%-.200s' (errno: %d)"));
216
  add(ER_CANT_LOCK, N_("Can't lock file (errno: %d)"));
217
  add(ER_CANT_OPEN_FILE, N_("Can't open file: '%-.200s' (errno: %d)"));
218
  add(ER_FILE_NOT_FOUND, N_("Can't find file: '%-.200s' (errno: %d)"));
219
  add(ER_CANT_READ_DIR, N_("Can't read dir of '%-.192s' (errno: %d)"));
220
  add(ER_CHECKREAD, N_("Record has changed since last read in table '%-.192s'"));
221
  add(ER_DISK_FULL, N_("Disk full (%s); waiting for someone to free some space..."));
222
  add(ER_DUP_KEY, N_("Can't write; duplicate key in table '%-.192s'"));
223
  add(ER_ERROR_ON_CLOSE, N_("Error on close of '%-.192s' (errno: %d)"));
224
  add(ER_ERROR_ON_READ, N_("Error reading file '%-.200s' (errno: %d)"));
225
  add(ER_ERROR_ON_RENAME, N_("Error on rename of '%-.150s' to '%-.150s' (errno: %d)"));
226
  add(ER_ERROR_ON_WRITE, N_("Error writing file '%-.200s' (errno: %d)"));
227
  add(ER_FILE_USED, N_("'%-.192s' is locked against change"));
228
  add(ER_FILSORT_ABORT, N_("Sort aborted"));
229
  add(ER_GET_ERRNO, N_("Got error %d from storage engine"));
230
  add(ER_ILLEGAL_HA, N_("Table storage engine for '%-.192s' doesn't have this option"));
231
  add(ER_KEY_NOT_FOUND, N_("Can't find record in '%-.192s'"));
232
  add(ER_NOT_FORM_FILE, N_("Incorrect information in file: '%-.200s'"));
233
  add(ER_NOT_KEYFILE, N_("Incorrect key file for table '%-.200s'; try to repair it"));
234
  add(ER_OLD_KEYFILE, N_("Old key file for table '%-.192s'; repair it!"));
235
  add(ER_OPEN_AS_READONLY, N_("Table '%-.192s' is read only"));
236
  add(ER_OUTOFMEMORY, N_("Out of memory; restart server and try again (needed %lu bytes)"));
237
  add(ER_OUT_OF_SORTMEMORY, N_("Out of sort memory; increase server sort buffer size"));
1796.4.7 by Andrew Hutchings
Add error message for global sort buffer constraint
238
  add(ER_OUT_OF_GLOBAL_SORTMEMORY, N_("Global sort memory constraint hit; increase sort-heap-threshold"));
1796.4.9 by Andrew Hutchings
Add join cache global constraint
239
  add(ER_OUT_OF_GLOBAL_JOINMEMORY, N_("Global join memory constraint hit; increase join-heap-threshold"));
1796.4.10 by Andrew Hutchings
Add global constraint for --read-rnd-buffer-size
240
  add(ER_OUT_OF_GLOBAL_READRNDMEMORY, N_("Global read_rnd memory constraint hit; increase read-rnd-heap-threshold"));
1796.4.11 by Andrew Hutchings
Add global constraint on read buffer
241
  add(ER_OUT_OF_GLOBAL_READMEMORY, N_("Global read memory constraint hit; increase read-buffer-threshold"));
1271.7.4 by Tim Penhey
Another incremental commit.
242
  add(ER_UNEXPECTED_EOF, N_("Unexpected EOF found when reading file '%-.192s' (errno: %d)"));
243
  add(ER_CON_COUNT_ERROR, N_("Too many connections"));
244
  add(ER_OUT_OF_RESOURCES, N_("Out of memory; check if drizzled or some other process uses all available memory; if not, you may have to use 'ulimit' to allow drizzled to use more memory or you can add more swap space"));
245
  add(ER_BAD_HOST_ERROR, N_("Can't get hostname for your address"));
246
  add(ER_HANDSHAKE_ERROR, N_("Bad handshake"));
1843.7.6 by Brian Aker
This cleans up error messages to state "schema" instead of database.
247
  add(ER_DBACCESS_DENIED_ERROR, N_("Access denied for user '%-.48s'@'%-.64s' to schema '%-.192s'"));
1271.7.4 by Tim Penhey
Another incremental commit.
248
  add(ER_ACCESS_DENIED_ERROR, N_("Access denied for user '%-.48s'@'%-.64s' (using password: %s)"));
1843.7.6 by Brian Aker
This cleans up error messages to state "schema" instead of database.
249
  add(ER_NO_DB_ERROR, N_("No schema selected"));
1271.7.4 by Tim Penhey
Another incremental commit.
250
  add(ER_UNKNOWN_COM_ERROR, N_("Unknown command"));
251
  add(ER_BAD_NULL_ERROR, N_("Column '%-.192s' cannot be null"));
1843.7.6 by Brian Aker
This cleans up error messages to state "schema" instead of database.
252
  add(ER_BAD_DB_ERROR, N_("Unknown schema '%-.192s'"));
1271.7.4 by Tim Penhey
Another incremental commit.
253
  add(ER_TABLE_EXISTS_ERROR, N_("Table '%-.192s' already exists"));
254
  add(ER_BAD_TABLE_ERROR, N_("Unknown table '%-.100s'"));
255
  add(ER_NON_UNIQ_ERROR, N_("Column '%-.192s' in %-.192s is ambiguous"));
256
  add(ER_SERVER_SHUTDOWN, N_("Server shutdown in progress"));
257
  add(ER_BAD_FIELD_ERROR, N_("Unknown column '%-.192s' in '%-.192s'"));
258
  add(ER_WRONG_FIELD_WITH_GROUP, N_("'%-.192s' isn't in GROUP BY"));
259
  add(ER_WRONG_GROUP_FIELD, N_("Can't group on '%-.192s'"));
260
  add(ER_WRONG_SUM_SELECT, N_("Statement has sum functions and columns in same statement"));
261
  add(ER_WRONG_VALUE_COUNT, N_("Column count doesn't match value count"));
262
  add(ER_TOO_LONG_IDENT, N_("Identifier name '%-.100s' is too long"));
263
  add(ER_DUP_FIELDNAME, N_("Duplicate column name '%-.192s'"));
264
  add(ER_DUP_KEYNAME, N_("Duplicate key name '%-.192s'"));
265
  add(ER_DUP_ENTRY, N_("Duplicate entry '%-.192s' for key %d"));
266
  add(ER_WRONG_FIELD_SPEC, N_("Incorrect column specifier for column '%-.192s'"));
267
  add(ER_PARSE_ERROR, N_("%s near '%-.80s' at line %d"));
268
  add(ER_EMPTY_QUERY, N_("Query was empty"));
269
  add(ER_NONUNIQ_TABLE, N_("Not unique table/alias: '%-.192s'"));
270
  add(ER_INVALID_DEFAULT, N_("Invalid default value for '%-.192s'"));
271
  add(ER_MULTIPLE_PRI_KEY, N_("Multiple primary key defined"));
272
  add(ER_TOO_MANY_KEYS, N_("Too many keys specified; max %d keys allowed"));
273
  add(ER_TOO_MANY_KEY_PARTS, N_("Too many key parts specified; max %d parts allowed"));
274
  add(ER_TOO_LONG_KEY, N_("Specified key was too long; max key length is %d bytes"));
275
  add(ER_KEY_COLUMN_DOES_NOT_EXITS, N_("Key column '%-.192s' doesn't exist in table"));
276
  add(ER_BLOB_USED_AS_KEY, N_("BLOB column '%-.192s' can't be used in key specification with the used table type"));
277
  add(ER_TOO_BIG_FIELDLENGTH, N_("Column length too big for column '%-.192s' (max = %d); use BLOB or TEXT instead"));
278
  add(ER_WRONG_AUTO_KEY, N_("Incorrect table definition; there can be only one auto column and it must be defined as a key"));
279
  add(ER_NORMAL_SHUTDOWN, N_("%s: Normal shutdown\n"));
280
  add(ER_GOT_SIGNAL, N_("%s: Got signal %d. Aborting!\n"));
281
  add(ER_SHUTDOWN_COMPLETE, N_("%s: Shutdown complete\n"));
282
  add(ER_FORCING_CLOSE, N_("%s: Forcing close of thread %" PRIu64 " user: '%-.48s'\n"));
283
  add(ER_IPSOCK_ERROR, N_("Can't create IP socket"));
284
  add(ER_NO_SUCH_INDEX, N_("Table '%-.192s' has no index like the one used in CREATE INDEX; recreate the table"));
285
  add(ER_WRONG_FIELD_TERMINATORS, N_("Field separator argument '%-.32s' with length '%d' is not what is expected; check the manual"));
286
  add(ER_BLOBS_AND_NO_TERMINATED, N_("You can't use fixed rowlength with BLOBs; please use 'fields terminated by'"));
1843.7.6 by Brian Aker
This cleans up error messages to state "schema" instead of database.
287
  add(ER_TEXTFILE_NOT_READABLE, N_("The file '%-.128s' must be in the schema directory or be readable by all"));
1271.7.4 by Tim Penhey
Another incremental commit.
288
  add(ER_FILE_EXISTS_ERROR, N_("File '%-.200s' already exists"));
289
  add(ER_LOAD_INFO, N_("Records: %ld  Deleted: %ld  Skipped: %ld  Warnings: %ld"));
290
  add(ER_WRONG_SUB_KEY, N_("Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys"));
291
  add(ER_CANT_REMOVE_ALL_FIELDS, N_("You can't delete all columns with ALTER TABLE; use DROP TABLE instead"));
292
  add(ER_CANT_DROP_FIELD_OR_KEY, N_("Can't DROP '%-.192s'; check that column/key exists"));
293
  add(ER_INSERT_INFO, N_("Records: %ld  Duplicates: %ld  Warnings: %ld"));
294
  add(ER_UPDATE_TABLE_USED, N_("You can't specify target table '%-.192s' for update in FROM clause"));
295
  add(ER_NO_SUCH_THREAD, N_("Unknown thread id: %lu"));
296
  add(ER_KILL_DENIED_ERROR, N_("You are not owner of thread %lu"));
297
  add(ER_NO_TABLES_USED, N_("No tables used"));
298
  add(ER_BLOB_CANT_HAVE_DEFAULT, N_("BLOB/TEXT column '%-.192s' can't have a default value"));
1843.7.6 by Brian Aker
This cleans up error messages to state "schema" instead of database.
299
  add(ER_WRONG_DB_NAME, N_("Incorrect schema name '%-.100s'"));
1271.7.4 by Tim Penhey
Another incremental commit.
300
  add(ER_WRONG_TABLE_NAME, N_("Incorrect table name '%-.100s'"));
301
  add(ER_TOO_BIG_SELECT, N_("The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay"));
302
  add(ER_UNKNOWN_ERROR, N_("Unknown error"));
303
  add(ER_UNKNOWN_PROCEDURE, N_("Unknown procedure '%-.192s'"));
304
  add(ER_WRONG_PARAMCOUNT_TO_PROCEDURE, N_("Incorrect parameter count to procedure '%-.192s'"));
305
  add(ER_UNKNOWN_TABLE, N_("Unknown table '%-.192s' in %-.32s"));
306
  add(ER_FIELD_SPECIFIED_TWICE, N_("Column '%-.192s' specified twice"));
307
  add(ER_INVALID_GROUP_FUNC_USE, N_("Invalid use of group function"));
308
  add(ER_UNSUPPORTED_EXTENSION, N_("Table '%-.192s' uses an extension that doesn't exist in this Drizzle version"));
309
  add(ER_TABLE_MUST_HAVE_COLUMNS, N_("A table must have at least 1 column"));
310
  add(ER_RECORD_FILE_FULL, N_("The table '%-.192s' is full"));
311
  add(ER_TOO_MANY_TABLES, N_("Too many tables; Drizzle can only use %d tables in a join"));
312
  add(ER_TOO_MANY_FIELDS, N_("Too many columns"));
313
  add(ER_TOO_BIG_ROWSIZE, N_("Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. You have to change some columns to TEXT or BLOBs"));
314
  add(ER_WRONG_OUTER_JOIN, N_("Cross dependency found in OUTER JOIN; examine your ON conditions"));
315
  add(ER_NULL_COLUMN_IN_INDEX, N_("Table handler doesn't support NULL in given index. Please change column '%-.192s' to be NOT NULL or use another handler"));
316
  add(ER_PLUGIN_NO_PATHS, N_("No paths allowed for plugin library"));
1271.7.9 by Tim Penhey
Almost there.
317
  add(ER_PLUGIN_EXISTS, N_("Plugin '%-.192s' already exists"));
1271.7.4 by Tim Penhey
Another incremental commit.
318
  add(ER_CANT_OPEN_LIBRARY, N_("Can't open shared library '%-.192s' (errno: %d %-.128s)"));
319
  add(ER_CANT_FIND_DL_ENTRY, N_("Can't find symbol '%-.128s' in library '%-.128s'"));
320
  add(ER_UPDATE_INFO, N_("Rows matched: %ld  Changed: %ld  Warnings: %ld"));
321
  add(ER_CANT_CREATE_THREAD, N_("Can't create a new thread (errno %d); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug"));
322
  add(ER_WRONG_VALUE_COUNT_ON_ROW, N_("Column count doesn't match value count at row %ld"));
323
  add(ER_CANT_REOPEN_TABLE, N_("Can't reopen table: '%-.192s'"));
324
  add(ER_MIX_OF_GROUP_FUNC_AND_FIELDS, N_("Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause"));
325
  add(ER_NO_SUCH_TABLE, N_("Table '%-.192s.%-.192s' doesn't exist"));
326
  add(ER_SYNTAX_ERROR, N_("You have an error in your SQL syntax; check the manual that corresponds to your Drizzle server version for the right syntax to use"));
327
  add(ER_NET_PACKET_TOO_LARGE, N_("Got a packet bigger than 'max_allowed_packet' bytes"));
328
  add(ER_NET_PACKETS_OUT_OF_ORDER, N_("Got packets out of order"));
329
  add(ER_TABLE_CANT_HANDLE_BLOB, N_("The used table type doesn't support BLOB/TEXT columns"));
330
  add(ER_TABLE_CANT_HANDLE_AUTO_INCREMENT, N_("The used table type doesn't support AUTO_INCREMENT columns"));
331
  add(ER_WRONG_COLUMN_NAME, N_("Incorrect column name '%-.100s'"));
332
  add(ER_WRONG_KEY_COLUMN, N_("The used storage engine can't index column '%-.192s'"));
333
  add(ER_WRONG_MRG_TABLE, N_("Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist"));
334
  add(ER_DUP_UNIQUE, N_("Can't write, because of unique constraint, to table '%-.192s'"));
335
  add(ER_BLOB_KEY_WITHOUT_LENGTH, N_("BLOB/TEXT column '%-.192s' used in key specification without a key length"));
336
  add(ER_PRIMARY_CANT_HAVE_NULL, N_("All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead"));
337
  add(ER_TOO_MANY_ROWS, N_("Result consisted of more than one row"));
338
  add(ER_REQUIRES_PRIMARY_KEY, N_("This table type requires a primary key"));
339
  add(ER_KEY_DOES_NOT_EXITS, N_("Key '%-.192s' doesn't exist in table '%-.192s'"));
340
  add(ER_CHECK_NO_SUCH_TABLE, N_("Can't open table"));
341
  add(ER_CHECK_NOT_IMPLEMENTED, N_("The storage engine for the table doesn't support %s"));
342
  add(ER_ERROR_DURING_COMMIT, N_("Got error %d during COMMIT"));
343
  add(ER_ERROR_DURING_ROLLBACK, N_("Got error %d during ROLLBACK"));
344
  // This is a very incorrect place to use the PRIi64 macro as the
345
  // program that looks over the source for the N_() macros does not
346
  // (obviously) do macro expansion, so the string is entirely wrong for
347
  // what it is trying to output for every language except english.
348
  add(ER_NEW_ABORTING_CONNECTION, N_("Aborted connection %"PRIi64" to db: '%-.192s' user: '%-.48s' host: '%-.64s' (%-.64s)"));
349
  add(ER_LOCK_OR_ACTIVE_TRANSACTION, N_("Can't execute the given command because you have active locked tables or an active transaction"));
350
  add(ER_UNKNOWN_SYSTEM_VARIABLE, N_("Unknown system variable '%-.64s'"));
351
  add(ER_CRASHED_ON_USAGE, N_("Table '%-.192s' is marked as crashed and should be repaired"));
352
  add(ER_CRASHED_ON_REPAIR, N_("Table '%-.192s' is marked as crashed and last (automatic?) repair failed"));
353
  add(ER_WARNING_NOT_COMPLETE_ROLLBACK, N_("Some non-transactional changed tables couldn't be rolled back"));
354
  add(ER_SET_CONSTANTS_ONLY, N_("You may only use constant expressions with SET"));
355
  add(ER_LOCK_WAIT_TIMEOUT, N_("Lock wait timeout exceeded; try restarting transaction"));
356
  add(ER_LOCK_TABLE_FULL, N_("The total number of locks exceeds the lock table size"));
357
  add(ER_READ_ONLY_TRANSACTION, N_("Update locks cannot be acquired during a READ UNCOMMITTED transaction"));
358
  add(ER_DROP_DB_WITH_READ_LOCK, N_("DROP DATABASE not allowed while thread is holding global read lock"));
359
  add(ER_WRONG_ARGUMENTS, N_("Incorrect arguments to %s"));
360
  add(ER_LOCK_DEADLOCK, N_("Deadlock found when trying to get lock; try restarting transaction"));
361
  add(ER_TABLE_CANT_HANDLE_FT, N_("The used table type doesn't support FULLTEXT indexes"));
362
  add(ER_CANNOT_ADD_FOREIGN, N_("Cannot add foreign key constraint"));
363
  add(ER_NO_REFERENCED_ROW, N_("Cannot add or update a child row: a foreign key constraint fails"));
364
  add(ER_ROW_IS_REFERENCED, N_("Cannot delete or update a parent row: a foreign key constraint fails"));
365
  add(ER_WRONG_USAGE, N_("Incorrect usage of %s and %s"));
366
  add(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT, N_("The used SELECT statements have a different number of columns"));
367
  add(ER_CANT_UPDATE_WITH_READLOCK, N_("Can't execute the query because you have a conflicting read lock"));
368
  add(ER_LOCAL_VARIABLE, N_("Variable '%-.64s' is a SESSION variable and can't be used with SET GLOBAL"));
369
  add(ER_GLOBAL_VARIABLE, N_("Variable '%-.64s' is a GLOBAL variable and should be set with SET GLOBAL"));
370
  add(ER_NO_DEFAULT, N_("Variable '%-.64s' doesn't have a default value"));
371
  add(ER_WRONG_VALUE_FOR_VAR, N_("Variable '%-.64s' can't be set to the value of '%-.200s'"));
372
  add(ER_WRONG_TYPE_FOR_VAR, N_("Incorrect argument type to variable '%-.64s'"));
373
  add(ER_VAR_CANT_BE_READ, N_("Variable '%-.64s' can only be set, not read"));
374
  add(ER_CANT_USE_OPTION_HERE, N_("Incorrect usage/placement of '%s'"));
375
  add(ER_NOT_SUPPORTED_YET, N_("This version of Drizzle doesn't yet support '%s'"));
376
  add(ER_INCORRECT_GLOBAL_LOCAL_VAR, N_("Variable '%-.192s' is a %s variable"));
377
  add(ER_WRONG_FK_DEF, N_("Incorrect foreign key definition for '%-.192s': %s"));
378
  add(ER_KEY_REF_DO_NOT_MATCH_TABLE_REF, N_("Key reference and table reference don't match"));
379
  add(ER_OPERAND_COLUMNS, N_("Operand should contain %d column(s)"));
380
  add(ER_SUBQUERY_NO_1_ROW, N_("Subquery returns more than 1 row"));
381
  add(ER_AUTO_CONVERT, N_("Converting column '%s' from %s to %s"));
382
  add(ER_ILLEGAL_REFERENCE, N_("Reference '%-.64s' not supported (%s)"));
383
  add(ER_DERIVED_MUST_HAVE_ALIAS, N_("Every derived table must have its own alias"));
384
  add(ER_SELECT_REDUCED, N_("Select %u was reduced during optimization"));
385
  add(ER_TABLENAME_NOT_ALLOWED_HERE, N_("Table '%-.192s' from one of the SELECTs cannot be used in %-.32s"));
386
  add(ER_SPATIAL_CANT_HAVE_NULL, N_("All parts of a SPATIAL index must be NOT NULL"));
387
  add(ER_COLLATION_CHARSET_MISMATCH, N_("COLLATION '%s' is not valid for CHARACTER SET '%s'"));
1570 by Brian Aker
Clean up message for compression failure.
388
  add(ER_TOO_BIG_FOR_UNCOMPRESS, N_("Uncompressed data size too large; the maximum size is %d (based on max_allowed_packet). The length of uncompressed data may also be corrupted."));
1271.7.4 by Tim Penhey
Another incremental commit.
389
  add(ER_ZLIB_Z_MEM_ERROR, N_("ZLIB: Not enough memory"));
390
  add(ER_ZLIB_Z_BUF_ERROR, N_("ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)"));
391
  add(ER_ZLIB_Z_DATA_ERROR, N_("ZLIB: Input data corrupted"));
392
  add(ER_CUT_VALUE_GROUP_CONCAT, N_("%d line(s) were cut by GROUP_CONCAT()"));
393
  add(ER_WARN_TOO_FEW_RECORDS, N_("Row %ld doesn't contain data for all columns"));
394
  add(ER_WARN_TOO_MANY_RECORDS, N_("Row %ld was truncated; it contained more data than there were input columns"));
395
  add(ER_WARN_NULL_TO_NOTNULL, N_("Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld"));
396
  add(ER_WARN_DATA_OUT_OF_RANGE, N_("Out of range value for column '%s' at row %ld"));
1271.7.9 by Tim Penhey
Almost there.
397
  add(ER_WARN_DATA_TRUNCATED, N_("Data truncated for column '%s' at row %ld"));
1271.7.4 by Tim Penhey
Another incremental commit.
398
  add(ER_CANT_AGGREGATE_2COLLATIONS, N_("Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'"));
399
  add(ER_CANT_AGGREGATE_3COLLATIONS, N_("Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'"));
400
  add(ER_CANT_AGGREGATE_NCOLLATIONS, N_("Illegal mix of collations for operation '%s'"));
401
  add(ER_VARIABLE_IS_NOT_STRUCT, N_("Variable '%-.64s' is not a variable component (can't be used as XXXX.variable_name)"));
402
  add(ER_UNKNOWN_COLLATION, N_("Unknown collation: '%-.64s'"));
403
  add(ER_WARN_FIELD_RESOLVED, N_("Field or reference '%-.192s%s%-.192s%s%-.192s' of SELECT #%d was resolved in SELECT #%d"));
404
  add(ER_WRONG_NAME_FOR_INDEX, N_("Incorrect index name '%-.100s'"));
405
  add(ER_WRONG_NAME_FOR_CATALOG, N_("Incorrect catalog name '%-.100s'"));
406
  add(ER_BAD_FT_COLUMN, N_("Column '%-.192s' cannot be part of FULLTEXT index"));
407
  add(ER_UNKNOWN_STORAGE_ENGINE, N_("Unknown table engine '%s'"));
408
  add(ER_NON_UPDATABLE_TABLE, N_("The target table %-.100s of the %s is not updatable"));
409
  add(ER_FEATURE_DISABLED, N_("The '%s' feature is disabled; you need Drizzle built with '%s' to have it working"));
410
  add(ER_OPTION_PREVENTS_STATEMENT, N_("The Drizzle server is running with the %s option so it cannot execute this statement"));
411
  add(ER_DUPLICATED_VALUE_IN_TYPE, N_("Column '%-.100s' has duplicated value '%-.64s' in %s"));
412
  add(ER_TRUNCATED_WRONG_VALUE, N_("Truncated incorrect %-.32s value: '%-.128s'"));
413
  add(ER_TOO_MUCH_AUTO_TIMESTAMP_COLS, N_("Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause"));
414
  add(ER_INVALID_ON_UPDATE, N_("Invalid ON UPDATE clause for '%-.192s' column"));
415
  add(ER_GET_ERRMSG, N_("Got error %d '%-.100s' from %s"));
416
  add(ER_GET_TEMPORARY_ERRMSG, N_("Got temporary error %d '%-.100s' from %s"));
417
  add(ER_UNKNOWN_TIME_ZONE, N_("Unknown or incorrect time zone: '%-.64s'"));
418
  add(ER_INVALID_CHARACTER_STRING, N_("Invalid %s character string: '%.64s'"));
419
  add(ER_WARN_ALLOWED_PACKET_OVERFLOWED, N_("Result of %s() was larger than max_allowed_packet (%ld) - truncated"));
420
  add(ER_SP_DOES_NOT_EXIST, N_("%s %s does not exist"));
421
  add(ER_QUERY_INTERRUPTED, N_("Query execution was interrupted"));
422
  add(ER_VIEW_INVALID, N_("View '%-.192s.%-.192s' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them"));
423
  add(ER_NO_DEFAULT_FOR_FIELD, N_("Field '%-.192s' doesn't have a default value"));
424
  add(ER_DIVISION_BY_ZERO, N_("Division by 0"));
425
  add(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, N_("Incorrect %-.32s value: '%-.128s' for column '%.192s' at row %u"));
426
  add(ER_ILLEGAL_VALUE_FOR_TYPE, N_("Illegal %s '%-.192s' value found during parsing"));
427
  add(ER_KEY_PART_0, N_("Key part '%-.192s' length cannot be 0"));
428
  add(ER_XAER_RMFAIL, N_("XAER_RMFAIL: The command cannot be executed when global transaction is in the  %.64s state"));
429
  add(ER_DATA_TOO_LONG, N_("Data too long for column '%s' at row %ld"));
430
  add(ER_STARTUP, N_("%s: ready for connections.\nVersion: '%s' %s\n"));
431
  add(ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR, N_("Can't load value from file with fixed size rows to variable"));
432
  add(ER_WRONG_VALUE_FOR_TYPE, N_("Incorrect %-.32s value: '%-.128s' for function %-.32s"));
433
  add(ER_TABLE_DEF_CHANGED, N_("Table definition has changed, please retry transaction"));
434
  add(ER_SP_NO_RETSET, N_("Not allowed to return a result set from a %s"));
435
  add(ER_CANT_CREATE_GEOMETRY_OBJECT, N_("Cannot get geometry object from data you send to the GEOMETRY field"));
436
  add(ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG, N_("Explicit or implicit commit is not allowed in stored function or trigger."));
437
  add(ER_TOO_BIG_SCALE, N_("Too big scale %d specified for column '%-.192s'. Maximum is %d."));
438
  add(ER_TOO_BIG_PRECISION, N_("Too big precision %d specified for column '%-.192s'. Maximum is %d."));
439
  add(ER_M_BIGGER_THAN_D, N_("For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%-.192s')."));
440
  add(ER_TRG_IN_WRONG_SCHEMA, N_("Trigger in wrong schema"));
441
  add(ER_STACK_OVERRUN_NEED_MORE, N_("Thread stack overrun:  %ld bytes used of a %ld byte stack, and %ld bytes needed.  Use 'drizzled -O thread_stack=#' to specify a bigger stack."));
442
  add(ER_TOO_BIG_DISPLAYWIDTH, N_("Display width out of range for column '%-.192s' (max = %d)"));
443
  add(ER_DATETIME_FUNCTION_OVERFLOW, N_("Datetime function: %-.32s field overflow"));
444
  add(ER_ROW_IS_REFERENCED_2, N_("Cannot delete or update a parent row: a foreign key constraint fails (%.192s)"));
445
  add(ER_NO_REFERENCED_ROW_2, N_("Cannot add or update a child row: a foreign key constraint fails (%.192s)"));
1738.4.3 by Lee Bieber
another pass at removing unused error messages
446
  add(ER_SP_FETCH_NO_DATA, N_("No data - zero rows fetched, selected, or processed"));
1271.7.4 by Tim Penhey
Another incremental commit.
447
  add(ER_TABLE_NEEDS_UPGRADE, N_("Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" to fix it!"));
448
  add(ER_NON_GROUPING_FIELD_USED, N_("non-grouping field '%-.192s' is used in %-.64s clause"));
449
  add(ER_TABLE_CANT_HANDLE_SPKEYS, N_("The used table type doesn't support SPATIAL indexes"));
450
  add(ER_REMOVED_SPACES, N_("Leading spaces are removed from name '%s'"));
451
  add(ER_AUTOINC_READ_FAILED, N_("Failed to read auto-increment value from storage engine"));
452
  add(ER_WRONG_STRING_LENGTH, N_("String '%-.70s' is too long for %s (should be no longer than %d)"));
453
  add(ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT, N_("Too high level of nesting for select"));
454
  add(ER_NAME_BECOMES_EMPTY, N_("Name '%-.64s' has become ''"));
455
  add(ER_AMBIGUOUS_FIELD_TERM, N_("First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY"));
456
  add(ER_ILLEGAL_HA_CREATE_OPTION, N_("Table storage engine '%-.64s' does not support the create option '%.64s'"));
457
  add(ER_WRONG_VALUE, N_("Incorrect %-.32s value: '%-.128s'"));
458
  add(ER_NO_PARTITION_FOR_GIVEN_VALUE, N_("Table has no partition for value %-.64s"));
459
  add(ER_BINLOG_ROW_LOGGING_FAILED, N_("Writing one row to the row-based binary log failed"));
460
  add(ER_DROP_INDEX_FK, N_("Cannot drop index '%-.192s': needed in a foreign key constraint"));
461
  add(ER_FOREIGN_DUPLICATE_KEY, N_("Upholding foreign key constraints for table '%.192s', entry '%-.192s', key %d would lead to a duplicate entry"));
462
  add(ER_CANT_CHANGE_TX_ISOLATION, N_("Transaction isolation level can't be changed while a transaction is in progress"));
463
  add(ER_WRONG_PARAMCOUNT_TO_FUNCTION, N_("Incorrect parameter count in the call to native function '%-.192s'"));
464
  add(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, N_("Incorrect parameters in the call to native function '%-.192s'"));
465
  add(ER_DUP_ENTRY_WITH_KEY_NAME, N_("Duplicate entry '%-.64s' for key '%-.192s'"));
466
  add(ER_LOAD_DATA_INVALID_COLUMN, N_("Invalid column reference (%-.64s) in LOAD DATA"));
467
  add(ER_INVALID_UNIX_TIMESTAMP_VALUE, N_("Received an invalid value '%s' for a UNIX timestamp."));
468
  add(ER_INVALID_DATETIME_VALUE, N_("Received an invalid datetime value '%s'."));
469
  add(ER_INVALID_NULL_ARGUMENT, N_("Received a NULL argument for function '%s'."));
470
  add(ER_ARGUMENT_OUT_OF_RANGE, N_("Received an out-of-range argument '%s' for function '%s'."));
471
  add(ER_INVALID_ENUM_VALUE, N_("Received an invalid enum value '%s'."));
472
  add(ER_NO_PRIMARY_KEY_ON_REPLICATED_TABLE, N_("Tables which are replicated require a primary key."));
1271.7.20 by Tim Penhey
Change some of the declarations to follow the drizzle coding standard.
473
  add(ER_CORRUPT_TABLE_DEFINITION, N_("Corrupt or invalid table definition: %s"));
1567.1.1 by Brian Aker
This fixes bug 586009, increases the size of the log files so that the UNION
474
  add(ER_CORRUPT_SCHEMA_DEFINITION, N_("Corrupt or invalid schema definition for %s : %s"));
1271.7.21 by Monty Taylor
Merged trunk.
475
  add(ER_SCHEMA_DOES_NOT_EXIST, N_("Schema does not exist: %s"));
476
  add(ER_ALTER_SCHEMA, N_("Error altering schema: %s"));
477
  add(ER_DROP_SCHEMA, +N_("Error droppping Schema : %s"));
1487.1.1 by Brian Aker
There is room for improvement around this. We should be using rows as well
478
  add(ER_USE_SQL_BIG_RESULT, N_("Temporary table too large, rerun with SQL_BIG_RESULT."));
1502.1.30 by Brian Aker
First pass on cleanup of Stewart's patch, plus re-engineer to make it work a
479
  add(ER_UNKNOWN_ENGINE_OPTION, N_("Unknown table engine option key/pair %s = %s."));
480
  add(ER_UNKNOWN_SCHEMA_OPTION, N_("Unknown schema engine option key/pair %s = %s."));
1271.7.4 by Tim Penhey
Another incremental commit.
481
1933.1.3 by Brian Aker
First pass though barriers.
482
  // User lock/barrier error messages
1955.1.2 by Brian Aker
Update such that we can now do a lock test with a wait.
483
  add(ER_USER_LOCKS_CANT_WAIT_ON_OWN_BARRIER, N_("wait() can not be called on session owning user defined barrier."));
484
  add(ER_USER_LOCKS_UNKNOWN_BARRIER, N_("Unknown user defined barrier requested."));
485
  add(ER_USER_LOCKS_NOT_OWNER_OF_BARRIER, N_("Session does not own user defined barrier."));
486
  add(ER_USER_LOCKS_CANT_WAIT_ON_OWN_LOCK, N_("Session can not wait on a user defined lock owned by the session."));
487
  add(ER_USER_LOCKS_NOT_OWNER_OF_LOCK, N_("Session does not own user defined lock."));
488
489
  add(ER_USER_LOCKS_INVALID_NAME_BARRIER, N_("Invalid name for user defined barrier."));
490
  add(ER_USER_LOCKS_INVALID_NAME_LOCK, N_("Invalid name for user defined lock."));
1933.1.3 by Brian Aker
First pass though barriers.
491
1271.7.4 by Tim Penhey
Another incremental commit.
492
  add(EE_CANTUNLOCK, N_("Can't unlock file (Errcode: %d)"));
493
  add(EE_CANT_CHSIZE, N_("Can't change size of file (Errcode: %d)"));
494
  add(EE_CANT_OPEN_STREAM, N_("Can't open stream from handle (Errcode: %d)"));
495
  add(EE_LINK_WARNING, N_("Warning: '%s' had %d links"));
496
  add(EE_OPEN_WARNING, N_("Warning: %d files and %d streams is left open\n"));
497
  add(EE_CANT_MKDIR, N_("Can't create directory '%s' (Errcode: %d)"));
498
  add(EE_UNKNOWN_CHARSET, N_("Character set '%s' is not a compiled character set and is not specified in the %s file"));
499
  add(EE_OUT_OF_FILERESOURCES, N_("Out of resources when opening file '%s' (Errcode: %d)"));
500
  add(EE_CANT_READLINK, N_("Can't read value for symlink '%s' (Error %d)"));
501
  add(EE_CANT_SYMLINK, N_("Can't create symlink '%s' pointing at '%s' (Error %d)"));
502
  add(EE_REALPATH, N_("Error on realpath() on '%s' (Error %d)"));
503
  add(EE_SYNC, N_("Can't sync file '%s' to disk (Errcode: %d)"));
504
  add(EE_UNKNOWN_COLLATION, N_("Collation '%s' is not a compiled collation and is not specified in the %s file"));
505
  add(EE_FILE_NOT_CLOSED, N_("File '%s' (fileno: %d) was not closed"));
506
507
  // Some old error values use the same strings as some new error values.
508
  add(EE_FILENOTFOUND, find(ER_FILE_NOT_FOUND));
509
  add(EE_CANTCREATEFILE, find(ER_CANT_CREATE_FILE));
510
  add(EE_READ, find(ER_ERROR_ON_READ));
511
  add(EE_WRITE, find(ER_ERROR_ON_WRITE));
512
  add(EE_BADCLOSE, find(ER_ERROR_ON_CLOSE));
513
  add(EE_OUTOFMEMORY, find(ER_OUTOFMEMORY));
514
  add(EE_DELETE, find(ER_CANT_DELETE_FILE));
515
  add(EE_LINK, find(ER_ERROR_ON_RENAME));
516
  add(EE_EOFERR, find(ER_UNEXPECTED_EOF));
517
  add(EE_CANTLOCK, find(ER_CANT_LOCK));
518
  add(EE_DIR, find(ER_CANT_READ_DIR));
519
  add(EE_STAT, find(ER_CANT_GET_STAT));
520
  add(EE_DISK_FULL, find(ER_DISK_FULL));
521
522
}
523
1271.5.1 by Tim Penhey
Move the bits from my_error.h and my_error.cc into error.h and error.cc.
524
}
1271.5.7 by Monty Taylor
Merged up with trunk.
525
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
526
} /* namespace drizzled */