~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field.cc

  • Committer: Monty Taylor
  • Date: 2010-12-24 07:15:43 UTC
  • mto: This revision was merged to the branch mainline in revision 2029.
  • Revision ID: mordred@inaugust.com-20101224071543-ab082y5circku6v5
Renamed things prefixed mysql_ or mysqld_

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
#include "drizzled/field/int32.h"
41
41
#include "drizzled/field/int64.h"
42
42
#include "drizzled/field/num.h"
43
 
#include "drizzled/field/timestamp.h"
 
43
#include "drizzled/field/time.h"
 
44
#include "drizzled/field/epoch.h"
44
45
#include "drizzled/field/datetime.h"
45
46
#include "drizzled/field/varstring.h"
46
47
#include "drizzled/field/uuid.h"
83
84
    DRIZZLE_TYPE_VARCHAR,
84
85
    //DRIZZLE_TYPE_BLOB
85
86
    DRIZZLE_TYPE_BLOB,
 
87
    //DRIZZLE_TYPE_TIME
 
88
    DRIZZLE_TYPE_TIME,
86
89
    //DRIZZLE_TYPE_UUID
87
90
    DRIZZLE_TYPE_VARCHAR,
88
91
  },
110
113
    DRIZZLE_TYPE_VARCHAR,
111
114
    //DRIZZLE_TYPE_BLOB
112
115
    DRIZZLE_TYPE_BLOB,
 
116
    //DRIZZLE_TYPE_TIME
 
117
    DRIZZLE_TYPE_TIME,
113
118
    //DRIZZLE_TYPE_UUID
114
119
    DRIZZLE_TYPE_VARCHAR,
115
120
  },
137
142
    DRIZZLE_TYPE_ENUM,
138
143
    //DRIZZLE_TYPE_BLOB
139
144
    DRIZZLE_TYPE_BLOB,
 
145
    //DRIZZLE_TYPE_TIME
 
146
    DRIZZLE_TYPE_TIME,
140
147
    //DRIZZLE_TYPE_UUID
141
148
    DRIZZLE_TYPE_UUID,
142
149
  },
164
171
    DRIZZLE_TYPE_VARCHAR,
165
172
    //DRIZZLE_TYPE_BLOB
166
173
    DRIZZLE_TYPE_BLOB,
 
174
    //DRIZZLE_TYPE_TIME
 
175
    DRIZZLE_TYPE_TIME,
167
176
    //DRIZZLE_TYPE_UUID
168
177
    DRIZZLE_TYPE_VARCHAR,
169
178
  },
190
199
    DRIZZLE_TYPE_VARCHAR,
191
200
    //DRIZZLE_TYPE_BLOB
192
201
    DRIZZLE_TYPE_BLOB,
 
202
    //DRIZZLE_TYPE_TIME
 
203
    DRIZZLE_TYPE_TIME,
193
204
    //DRIZZLE_TYPE_UUID
194
205
    DRIZZLE_TYPE_VARCHAR,
195
206
  },
217
228
    DRIZZLE_TYPE_VARCHAR,
218
229
    //DRIZZLE_TYPE_BLOB
219
230
    DRIZZLE_TYPE_BLOB,
 
231
    //DRIZZLE_TYPE_TIME
 
232
    DRIZZLE_TYPE_TIME,
220
233
    //DRIZZLE_TYPE_UUID
221
234
    DRIZZLE_TYPE_VARCHAR,
222
235
  },
244
257
    DRIZZLE_TYPE_VARCHAR,
245
258
    //DRIZZLE_TYPE_BLOB
246
259
    DRIZZLE_TYPE_BLOB,
 
260
    //DRIZZLE_TYPE_TIME
 
261
    DRIZZLE_TYPE_TIME,
247
262
    //DRIZZLE_TYPE_UUID
248
263
    DRIZZLE_TYPE_VARCHAR,
249
264
  },
271
286
    DRIZZLE_TYPE_VARCHAR,
272
287
    //DRIZZLE_TYPE_BLOB
273
288
    DRIZZLE_TYPE_BLOB,
 
289
    //DRIZZLE_TYPE_TIME
 
290
    DRIZZLE_TYPE_TIME,
274
291
    //DRIZZLE_TYPE_UUID
275
292
    DRIZZLE_TYPE_VARCHAR,
276
293
  },
298
315
    DRIZZLE_TYPE_VARCHAR,
299
316
    //DRIZZLE_TYPE_BLOB
300
317
    DRIZZLE_TYPE_BLOB,
 
318
    //DRIZZLE_TYPE_TIME
 
319
    DRIZZLE_TYPE_TIME,
301
320
    //DRIZZLE_TYPE_UUID
302
321
    DRIZZLE_TYPE_VARCHAR,
303
322
  },
325
344
    DRIZZLE_TYPE_VARCHAR,
326
345
    //DRIZZLE_TYPE_BLOB
327
346
    DRIZZLE_TYPE_BLOB,
 
347
    //DRIZZLE_TYPE_TIME
 
348
    DRIZZLE_TYPE_TIME,
328
349
    //DRIZZLE_TYPE_UUID
329
350
    DRIZZLE_TYPE_VARCHAR,
330
351
   },
352
373
    DRIZZLE_TYPE_BLOB,
353
374
    //DRIZZLE_TYPE_BLOB
354
375
    DRIZZLE_TYPE_BLOB,
355
 
    //DRIZZLE_TYPE_UUID
356
 
    DRIZZLE_TYPE_VARCHAR,
 
376
    //DRIZZLE_TYPE_TIME
 
377
    DRIZZLE_TYPE_TIME,
 
378
    //DRIZZLE_TYPE_UUID
 
379
    DRIZZLE_TYPE_VARCHAR,
 
380
  },
 
381
  /* DRIZZLE_TYPE_TIME -> */
 
382
  {
 
383
    //DRIZZLE_TYPE_LONG
 
384
    DRIZZLE_TYPE_VARCHAR,
 
385
    //DRIZZLE_TYPE_DOUBLE
 
386
    DRIZZLE_TYPE_VARCHAR,
 
387
    //DRIZZLE_TYPE_NULL
 
388
    DRIZZLE_TYPE_TIME,
 
389
    //DRIZZLE_TYPE_TIMESTAMP
 
390
    DRIZZLE_TYPE_VARCHAR,
 
391
    //DRIZZLE_TYPE_LONGLONG
 
392
    DRIZZLE_TYPE_VARCHAR,
 
393
    //DRIZZLE_TYPE_DATETIME
 
394
    DRIZZLE_TYPE_VARCHAR,
 
395
    //DRIZZLE_TYPE_DATE
 
396
    DRIZZLE_TYPE_VARCHAR,
 
397
    //DRIZZLE_TYPE_VARCHAR
 
398
    DRIZZLE_TYPE_VARCHAR,
 
399
    //DRIZZLE_TYPE_DECIMAL
 
400
    DRIZZLE_TYPE_VARCHAR,
 
401
    //DRIZZLE_TYPE_VARCHAR,
 
402
    DRIZZLE_TYPE_VARCHAR,
 
403
    //DRIZZLE_TYPE_BLOB
 
404
    DRIZZLE_TYPE_BLOB,
 
405
    //DRIZZLE_TYPE_TIME
 
406
    DRIZZLE_TYPE_TIME,
 
407
    //DRIZZLE_TYPE_UUID
 
408
    DRIZZLE_TYPE_UUID,
357
409
  },
358
410
  /* DRIZZLE_TYPE_UUID -> */
359
411
  {
379
431
    DRIZZLE_TYPE_VARCHAR,
380
432
    //DRIZZLE_TYPE_BLOB
381
433
    DRIZZLE_TYPE_BLOB,
 
434
    //DRIZZLE_TYPE_TIME
 
435
    DRIZZLE_TYPE_TIME,
382
436
    //DRIZZLE_TYPE_UUID
383
437
    DRIZZLE_TYPE_UUID,
384
438
  },
408
462
  STRING_RESULT,
409
463
  //DRIZZLE_TYPE_BLOB
410
464
  STRING_RESULT,
 
465
  //DRIZZLE_TYPE_TIME
 
466
  STRING_RESULT,
411
467
  //DRIZZLE_TYPE_UUID
412
468
  STRING_RESULT,
413
469
};
953
1009
  case DRIZZLE_TYPE_ENUM:
954
1010
  case DRIZZLE_TYPE_LONG: return 4;
955
1011
  case DRIZZLE_TYPE_DOUBLE: return sizeof(double);
 
1012
  case DRIZZLE_TYPE_TIME:
956
1013
  case DRIZZLE_TYPE_DATETIME:
957
1014
  case DRIZZLE_TYPE_TIMESTAMP:
958
1015
  case DRIZZLE_TYPE_LONGLONG: return 8; /* Don't crash if no int64_t */
959
1016
  case DRIZZLE_TYPE_NULL: return 0;
960
1017
  case DRIZZLE_TYPE_BLOB: return 4 + portable_sizeof_char_ptr;
961
1018
  case DRIZZLE_TYPE_DECIMAL:
962
 
                          assert(0);
963
 
                          abort();
 
1019
                          break;
964
1020
  }
965
1021
 
966
1022
  assert(0);
1078
1134
    table->clearWriteSet(field_index);
1079
1135
}
1080
1136
 
 
1137
void Field::pack_num(uint64_t arg, unsigned char *destination)
 
1138
{
 
1139
  if (not destination)
 
1140
    destination= ptr;
 
1141
 
 
1142
  int64_tstore(destination, arg);
 
1143
}
 
1144
 
 
1145
uint64_t Field::unpack_num(uint64_t &destination, const unsigned char *arg) const
 
1146
{
 
1147
  if (not arg)
 
1148
    arg= ptr;
 
1149
 
 
1150
  int64_tget(destination, arg);
 
1151
 
 
1152
  return destination;
 
1153
}
 
1154
 
1081
1155
std::ostream& operator<<(std::ostream& output, const Field &field)
1082
1156
{
1083
1157
  output << "Field:(";
1084
1158
  output <<  field.field_name;
1085
1159
  output << ", ";
1086
1160
  output << drizzled::display::type(field.real_type());
 
1161
  output << ", { ";
 
1162
 
 
1163
  if (field.flags & NOT_NULL_FLAG)
 
1164
    output << " NOT_NULL";
 
1165
 
 
1166
  if (field.flags & PRI_KEY_FLAG)
 
1167
    output << ", PRIMARY KEY";
 
1168
 
 
1169
  if (field.flags & UNIQUE_KEY_FLAG)
 
1170
    output << ", UNIQUE KEY";
 
1171
 
 
1172
  if (field.flags & MULTIPLE_KEY_FLAG)
 
1173
    output << ", MULTIPLE KEY";
 
1174
 
 
1175
  if (field.flags & BLOB_FLAG)
 
1176
    output << ", BLOB";
 
1177
 
 
1178
  if (field.flags & UNSIGNED_FLAG)
 
1179
    output << ", UNSIGNED";
 
1180
 
 
1181
  if (field.flags & BINARY_FLAG)
 
1182
    output << ", BINARY";
 
1183
  output << "}, ";
1087
1184
  output << ")";
1088
1185
 
1089
1186
  return output;  // for multiple << operators.