~stewart/drizzle/docs-improvements-1

« back to all changes in this revision

Viewing changes to drizzled/display.cc

merged with up to date trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
#include "config.h"
22
22
 
23
23
#include "drizzled/display.h"
 
24
#include "drizzled/item.h"
24
25
 
25
26
#include <assert.h>
26
27
 
44
45
static const std::string DRIZZLE_TYPE_TIMESTAMP("DRIZZLE_TYPE_TIMESTAMP"); 
45
46
static const std::string DRIZZLE_TYPE_LONGLONG("DRIZZLE_TYPE_LONGLONG"); 
46
47
static const std::string DRIZZLE_TYPE_DATETIME("DRIZZLE_TYPE_DATETIME"); 
 
48
static const std::string DRIZZLE_TYPE_TIME("DRIZZLE_TYPE_TIME"); 
47
49
static const std::string DRIZZLE_TYPE_DATE("DRIZZLE_TYPE_DATE"); 
48
50
static const std::string DRIZZLE_TYPE_VARCHAR("DRIZZLE_TYPE_VARCHAR"); 
49
51
static const std::string DRIZZLE_TYPE_DECIMAL("DRIZZLE_TYPE_DECIMAL"); 
50
52
static const std::string DRIZZLE_TYPE_ENUM("DRIZZLE_TYPE_ENUM"); 
51
53
static const std::string DRIZZLE_TYPE_BLOB("DRIZZLE_TYPE_BLOB"); 
52
 
static const std::string DRIZZLE_TYPE_MAX("DRIZZLE_TYPE_MAX"); 
 
54
static const std::string DRIZZLE_TYPE_UUID("DRIZZLE_TYPE_UUID"); 
 
55
static const std::string DRIZZLE_TYPE_BOOLEAN("DRIZZLE_TYPE_BOOLEAN"); 
 
56
 
 
57
static const std::string FIELD_ITEM("FIELD_ITEM");
 
58
static const std::string FUNC_ITEM("FUNC_ITEM");
 
59
static const std::string SUM_FUNC_ITEM("SUM_FUNC_ITEM");
 
60
static const std::string STRING_ITEM("STRING_ITEM");
 
61
static const std::string INT_ITEM("INT_ITEM");
 
62
static const std::string REAL_ITEM("REAL_ITEM");
 
63
static const std::string NULL_ITEM("NULL_ITEM");
 
64
static const std::string VARBIN_ITEM("VARBIN_ITEM");
 
65
static const std::string COPY_STR_ITEM("COPY_STR_ITEM");
 
66
static const std::string FIELD_AVG_ITEM("FIELD_AVG_ITEM");
 
67
static const std::string DEFAULT_VALUE_ITEM("DEFAULT_VALUE_ITEM");
 
68
static const std::string PROC_ITEM("PROC_ITEM");
 
69
static const std::string COND_ITEM("COND_ITEM");
 
70
static const std::string REF_ITEM("REF_ITEM");
 
71
static const std::string FIELD_STD_ITEM("FIELD_STD_ITEM");
 
72
static const std::string FIELD_VARIANCE_ITEM("FIELD_VARIANCE_ITEM");
 
73
static const std::string INSERT_VALUE_ITEM("INSERT_VALUE_ITEM");
 
74
static const std::string SUBSELECT_ITEM("SUBSELECT_ITEM");
 
75
static const std::string ROW_ITEM("ROW_ITEM");
 
76
static const std::string CACHE_ITEM("CACHE_ITEM");
 
77
static const std::string TYPE_HOLDER("TYPE_HOLDER");
 
78
static const std::string PARAM_ITEM("PARAM_ITEM");
 
79
static const std::string BOOLEAN_ITEM("BOOLEAN_ITEM");
 
80
static const std::string DECIMAL_ITEM("DECIMAL_ITEM");
 
81
 
 
82
static const std::string ITEM_CAST_SIGNED("ITEM_CAST_SIGNED");
 
83
static const std::string ITEM_CAST_UNSIGNED("ITEM_CAST_UNSIGNED");
 
84
static const std::string ITEM_CAST_BINARY("ITEM_CAST_BINARY");
 
85
static const std::string ITEM_CAST_BOOLEAN("ITEM_CAST_BOOLEAN");
 
86
static const std::string ITEM_CAST_DATE("ITEM_CAST_DATE");
 
87
static const std::string ITEM_CAST_TIME("ITEM_CAST_TIME");
 
88
static const std::string ITEM_CAST_DATETIME("ITEM_CAST_DATETIME");
 
89
static const std::string ITEM_CAST_CHAR("ITEM_CAST_CHAR");
 
90
static const std::string ITEM_CAST_DECIMAL("ITEM_CAST_DECIMAL");
 
91
 
 
92
static const std::string STRING_RESULT_STRING("STRING");
 
93
static const std::string REAL_RESULT_STRING("REAL");
 
94
static const std::string INT_RESULT_STRING("INTEGER");
 
95
static const std::string ROW_RESULT_STRING("ROW");
 
96
static const std::string DECIMAL_RESULT_STRING("DECIMAL");
53
97
 
54
98
static const std::string YES("YES");
55
99
static const std::string NO("NO");
56
100
 
 
101
const std::string &type(drizzled::Cast_target type)
 
102
{
 
103
  switch (type)
 
104
  {
 
105
  case drizzled::ITEM_CAST_SIGNED:
 
106
    return ITEM_CAST_SIGNED;
 
107
  case drizzled::ITEM_CAST_UNSIGNED:
 
108
    return ITEM_CAST_UNSIGNED;
 
109
  case drizzled::ITEM_CAST_BINARY:
 
110
    return ITEM_CAST_BINARY;
 
111
  case drizzled::ITEM_CAST_BOOLEAN:
 
112
    return ITEM_CAST_BOOLEAN;
 
113
  case drizzled::ITEM_CAST_DATE:
 
114
    return ITEM_CAST_DATE;
 
115
  case drizzled::ITEM_CAST_TIME:
 
116
    return ITEM_CAST_TIME;
 
117
  case drizzled::ITEM_CAST_DATETIME:
 
118
    return ITEM_CAST_DATETIME;
 
119
  case drizzled::ITEM_CAST_CHAR:
 
120
    return ITEM_CAST_CHAR;
 
121
  case drizzled::ITEM_CAST_DECIMAL:
 
122
    return ITEM_CAST_DECIMAL;
 
123
  }
 
124
 
 
125
  abort();
 
126
}
57
127
 
58
128
const std::string &type(drizzled::enum_server_command type)
59
129
{
81
151
  return PROGRAM_ERROR;
82
152
}
83
153
 
 
154
const std::string &type(drizzled::Item::Type type)
 
155
{
 
156
  switch (type)
 
157
  {
 
158
  case drizzled::Item::FIELD_ITEM :
 
159
    return FIELD_ITEM;
 
160
  case drizzled::Item::FUNC_ITEM :
 
161
    return FUNC_ITEM;
 
162
  case drizzled::Item::SUM_FUNC_ITEM :
 
163
    return SUM_FUNC_ITEM;
 
164
  case drizzled::Item::STRING_ITEM :
 
165
    return STRING_ITEM;
 
166
  case drizzled::Item::INT_ITEM :
 
167
    return INT_ITEM;
 
168
  case drizzled::Item::REAL_ITEM :
 
169
    return REAL_ITEM;
 
170
  case drizzled::Item::NULL_ITEM :
 
171
    return NULL_ITEM;
 
172
  case drizzled::Item::VARBIN_ITEM :
 
173
    return VARBIN_ITEM;
 
174
  case drizzled::Item::COPY_STR_ITEM :
 
175
    return COPY_STR_ITEM;
 
176
  case drizzled::Item::FIELD_AVG_ITEM :
 
177
    return FIELD_AVG_ITEM;
 
178
  case drizzled::Item::DEFAULT_VALUE_ITEM :
 
179
    return DEFAULT_VALUE_ITEM;
 
180
  case drizzled::Item::PROC_ITEM :
 
181
    return PROC_ITEM;
 
182
  case drizzled::Item::COND_ITEM :
 
183
    return COND_ITEM;
 
184
  case drizzled::Item::REF_ITEM :
 
185
    return REF_ITEM;
 
186
  case drizzled::Item::FIELD_STD_ITEM :
 
187
    return FIELD_STD_ITEM;
 
188
  case drizzled::Item::FIELD_VARIANCE_ITEM :
 
189
    return FIELD_VARIANCE_ITEM;
 
190
  case drizzled::Item::INSERT_VALUE_ITEM :
 
191
    return INSERT_VALUE_ITEM;
 
192
  case drizzled::Item::SUBSELECT_ITEM :
 
193
    return SUBSELECT_ITEM;
 
194
  case drizzled::Item::ROW_ITEM:
 
195
    return ROW_ITEM;
 
196
  case drizzled::Item::CACHE_ITEM :
 
197
    return CACHE_ITEM;
 
198
  case drizzled::Item::TYPE_HOLDER :
 
199
    return TYPE_HOLDER;
 
200
  case drizzled::Item::PARAM_ITEM :
 
201
    return PARAM_ITEM;
 
202
  case drizzled::Item::BOOLEAN_ITEM :
 
203
    return BOOLEAN_ITEM;
 
204
  case drizzled::Item::DECIMAL_ITEM :
 
205
    return DECIMAL_ITEM;
 
206
  }
 
207
 
 
208
  assert(0);
 
209
  return PROGRAM_ERROR;
 
210
}
 
211
 
 
212
const std::string &type(Item_result type)
 
213
{
 
214
  switch (type)
 
215
  {
 
216
  case STRING_RESULT:
 
217
    return STRING_RESULT_STRING;
 
218
  case REAL_RESULT:
 
219
    return REAL_RESULT_STRING;
 
220
  case INT_RESULT:
 
221
    return INT_RESULT_STRING;
 
222
  case ROW_RESULT:
 
223
    return ROW_RESULT_STRING;
 
224
  case DECIMAL_RESULT:
 
225
    return DECIMAL_RESULT_STRING;
 
226
  }
 
227
 
 
228
  assert(0);
 
229
  return PROGRAM_ERROR;
 
230
}
84
231
 
85
232
const std::string &type(drizzled::enum_field_types type)
86
233
{
98
245
    return DRIZZLE_TYPE_LONGLONG;
99
246
  case drizzled::DRIZZLE_TYPE_DATETIME : 
100
247
    return DRIZZLE_TYPE_DATETIME;
 
248
  case drizzled::DRIZZLE_TYPE_TIME : 
 
249
    return DRIZZLE_TYPE_TIME;
101
250
  case drizzled::DRIZZLE_TYPE_DATE : 
102
251
    return DRIZZLE_TYPE_DATE;
103
252
  case drizzled::DRIZZLE_TYPE_VARCHAR : 
108
257
    return DRIZZLE_TYPE_ENUM;
109
258
  case drizzled::DRIZZLE_TYPE_BLOB : 
110
259
    return DRIZZLE_TYPE_BLOB;
 
260
  case drizzled::DRIZZLE_TYPE_UUID : 
 
261
    return DRIZZLE_TYPE_UUID;
 
262
  case drizzled::DRIZZLE_TYPE_BOOLEAN : 
 
263
    return DRIZZLE_TYPE_BOOLEAN;
111
264
  }
112
265
 
113
266
  assert(0);
114
267
  return PROGRAM_ERROR;
115
268
}
116
269
 
 
270
std::string hexdump(const unsigned char *str, size_t length)
 
271
{
 
272
  static const char hexval[16] = { '0', '1', '2', '3', 
 
273
    '4', '5', '6', '7', 
 
274
    '8', '9', 'a', 'b', 
 
275
    'c', 'd', 'e', 'f' };
 
276
  unsigned max_cols = 16; 
 
277
  std::ostringstream buf;
 
278
  std::ostringstream raw_buf;
 
279
 
 
280
  const unsigned char *e= str + length;
 
281
  for (const unsigned char *i= str; i != e;)
 
282
  {
 
283
    raw_buf.str("");
 
284
    for (unsigned col = 0; col < max_cols; ++col)
 
285
    {
 
286
      if (i != e)
 
287
      {
 
288
        buf << hexval[ ( (*i >> 4) & 0xF ) ]
 
289
          << hexval[ ( *i & 0x0F ) ]
 
290
          << ' ';
 
291
        raw_buf << (isprint(*i) ? *i : '.');
 
292
        ++i;
 
293
      }
 
294
      else
 
295
      {
 
296
        buf << "   ";
 
297
      }
 
298
    }
 
299
  }
 
300
 
 
301
  return buf.str();
 
302
}
 
303
 
117
304
} /* namespace display */
118
305
} /* namespace drizzled */