18
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
#include <drizzled/display.h>
24
#include <drizzled/item.h>
23
#include "drizzled/display.h"
24
#include "drizzled/item.h"
30
28
namespace drizzled {
31
29
namespace display {
45
43
static const std::string DRIZZLE_TYPE_DOUBLE("DRIZZLE_TYPE_DOUBLE");
46
44
static const std::string DRIZZLE_TYPE_NULL("DRIZZLE_TYPE_NULL");
47
45
static const std::string DRIZZLE_TYPE_TIMESTAMP("DRIZZLE_TYPE_TIMESTAMP");
48
static const std::string DRIZZLE_TYPE_MICROTIME("DRIZZLE_TYPE_MICROTIME");
49
46
static const std::string DRIZZLE_TYPE_LONGLONG("DRIZZLE_TYPE_LONGLONG");
50
47
static const std::string DRIZZLE_TYPE_DATETIME("DRIZZLE_TYPE_DATETIME");
51
static const std::string DRIZZLE_TYPE_TIME("DRIZZLE_TYPE_TIME");
52
48
static const std::string DRIZZLE_TYPE_DATE("DRIZZLE_TYPE_DATE");
53
49
static const std::string DRIZZLE_TYPE_VARCHAR("DRIZZLE_TYPE_VARCHAR");
54
50
static const std::string DRIZZLE_TYPE_DECIMAL("DRIZZLE_TYPE_DECIMAL");
55
51
static const std::string DRIZZLE_TYPE_ENUM("DRIZZLE_TYPE_ENUM");
56
52
static const std::string DRIZZLE_TYPE_BLOB("DRIZZLE_TYPE_BLOB");
57
static const std::string DRIZZLE_TYPE_UUID("DRIZZLE_TYPE_UUID");
58
static const std::string DRIZZLE_TYPE_BOOLEAN("DRIZZLE_TYPE_BOOLEAN");
53
static const std::string DRIZZLE_TYPE_MAX("DRIZZLE_TYPE_MAX");
60
55
static const std::string FIELD_ITEM("FIELD_ITEM");
61
56
static const std::string FUNC_ITEM("FUNC_ITEM");
79
74
static const std::string CACHE_ITEM("CACHE_ITEM");
80
75
static const std::string TYPE_HOLDER("TYPE_HOLDER");
81
76
static const std::string PARAM_ITEM("PARAM_ITEM");
82
static const std::string BOOLEAN_ITEM("BOOLEAN_ITEM");
83
77
static const std::string DECIMAL_ITEM("DECIMAL_ITEM");
85
static const std::string ITEM_CAST_SIGNED("ITEM_CAST_SIGNED");
86
static const std::string ITEM_CAST_UNSIGNED("ITEM_CAST_UNSIGNED");
87
static const std::string ITEM_CAST_BINARY("ITEM_CAST_BINARY");
88
static const std::string ITEM_CAST_BOOLEAN("ITEM_CAST_BOOLEAN");
89
static const std::string ITEM_CAST_DATE("ITEM_CAST_DATE");
90
static const std::string ITEM_CAST_TIME("ITEM_CAST_TIME");
91
static const std::string ITEM_CAST_DATETIME("ITEM_CAST_DATETIME");
92
static const std::string ITEM_CAST_CHAR("ITEM_CAST_CHAR");
93
static const std::string ITEM_CAST_DECIMAL("ITEM_CAST_DECIMAL");
95
static const std::string STRING_RESULT_STRING("STRING");
96
static const std::string REAL_RESULT_STRING("REAL");
97
static const std::string INT_RESULT_STRING("INTEGER");
98
static const std::string ROW_RESULT_STRING("ROW");
99
static const std::string DECIMAL_RESULT_STRING("DECIMAL");
101
80
static const std::string YES("YES");
102
81
static const std::string NO("NO");
104
const std::string &type(drizzled::Cast_target type)
108
case drizzled::ITEM_CAST_SIGNED:
109
return ITEM_CAST_SIGNED;
110
case drizzled::ITEM_CAST_UNSIGNED:
111
return ITEM_CAST_UNSIGNED;
112
case drizzled::ITEM_CAST_BINARY:
113
return ITEM_CAST_BINARY;
114
case drizzled::ITEM_CAST_BOOLEAN:
115
return ITEM_CAST_BOOLEAN;
116
case drizzled::ITEM_CAST_DATE:
117
return ITEM_CAST_DATE;
118
case drizzled::ITEM_CAST_TIME:
119
return ITEM_CAST_TIME;
120
case drizzled::ITEM_CAST_DATETIME:
121
return ITEM_CAST_DATETIME;
122
case drizzled::ITEM_CAST_CHAR:
123
return ITEM_CAST_CHAR;
124
case drizzled::ITEM_CAST_DECIMAL:
125
return ITEM_CAST_DECIMAL;
131
85
const std::string &type(drizzled::enum_server_command type)
212
164
return PROGRAM_ERROR;
215
const std::string &type(Item_result type)
220
return STRING_RESULT_STRING;
222
return REAL_RESULT_STRING;
224
return INT_RESULT_STRING;
226
return ROW_RESULT_STRING;
228
return DECIMAL_RESULT_STRING;
232
return PROGRAM_ERROR;
235
168
const std::string &type(drizzled::enum_field_types type)
242
175
return DRIZZLE_TYPE_DOUBLE;
243
176
case drizzled::DRIZZLE_TYPE_NULL :
244
177
return DRIZZLE_TYPE_NULL;
245
case drizzled::DRIZZLE_TYPE_MICROTIME :
246
return DRIZZLE_TYPE_MICROTIME;
247
178
case drizzled::DRIZZLE_TYPE_TIMESTAMP :
248
179
return DRIZZLE_TYPE_TIMESTAMP;
249
180
case drizzled::DRIZZLE_TYPE_LONGLONG :
250
181
return DRIZZLE_TYPE_LONGLONG;
251
182
case drizzled::DRIZZLE_TYPE_DATETIME :
252
183
return DRIZZLE_TYPE_DATETIME;
253
case drizzled::DRIZZLE_TYPE_TIME :
254
return DRIZZLE_TYPE_TIME;
255
184
case drizzled::DRIZZLE_TYPE_DATE :
256
185
return DRIZZLE_TYPE_DATE;
257
186
case drizzled::DRIZZLE_TYPE_VARCHAR :
262
191
return DRIZZLE_TYPE_ENUM;
263
192
case drizzled::DRIZZLE_TYPE_BLOB :
264
193
return DRIZZLE_TYPE_BLOB;
265
case drizzled::DRIZZLE_TYPE_UUID :
266
return DRIZZLE_TYPE_UUID;
267
case drizzled::DRIZZLE_TYPE_BOOLEAN :
268
return DRIZZLE_TYPE_BOOLEAN;
272
197
return PROGRAM_ERROR;
275
std::string hexdump(const unsigned char *str, size_t length)
277
static const char hexval[16] = { '0', '1', '2', '3',
280
'c', 'd', 'e', 'f' };
281
unsigned max_cols = 16;
282
std::ostringstream buf;
283
std::ostringstream raw_buf;
285
const unsigned char *e= str + length;
286
for (const unsigned char *i= str; i != e;)
289
for (unsigned col = 0; col < max_cols; ++col)
293
buf << hexval[ ( (*i >> 4) & 0xF ) ]
294
<< hexval[ ( *i & 0x0F ) ]
296
raw_buf << (isprint(*i) ? *i : '.');
309
200
} /* namespace display */
310
201
} /* namespace drizzled */