~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field_conv.cc

  • Committer: Mark Atwood
  • Date: 2011-10-08 04:50:51 UTC
  • mfrom: (2430.1.1 rf)
  • Revision ID: me@mark.atwood.name-20111008045051-6ha1qiy7k2a9c3jv
Tags: 2011.10.27
mergeĀ lp:~olafvdspek/drizzle/refactor2

Show diffs side-by-side

added added

removed removed

Lines of Context:
411
411
  int well_formed_error;
412
412
  const charset_info_st * const cs= copy->from_field->charset();
413
413
  const unsigned char *from_end= copy->from_ptr + copy->from_length;
414
 
  uint32_t copy_length= cs->cset->well_formed_len(*cs, str_ref(copy->from_ptr, from_end), copy->to_length / cs->mbmaxlen, &well_formed_error);
 
414
  uint32_t copy_length= cs->cset->well_formed_len(cs,
 
415
                                              (char*) copy->from_ptr,
 
416
                                              (char*) from_end,
 
417
                                              copy->to_length / cs->mbmaxlen,
 
418
                                              &well_formed_error);
415
419
  if (copy->to_length < copy_length)
416
420
    copy_length= copy->to_length;
417
421
  memcpy(copy->to_ptr, copy->from_ptr, copy_length);
477
481
  uint32_t from_length= (uint32_t) *(unsigned char*) copy->from_ptr;
478
482
  const unsigned char *from_ptr= copy->from_ptr + 1;
479
483
  uint32_t to_char_length= (copy->to_length - 1) / cs->mbmaxlen;
480
 
  uint32_t length= cs->cset->well_formed_len(*cs, str_ref(from_ptr, from_length), to_char_length, &well_formed_error);
 
484
  uint32_t length= cs->cset->well_formed_len(cs, (char*) from_ptr,
 
485
                                         (char*) from_ptr + from_length,
 
486
                                         to_char_length, &well_formed_error);
481
487
  if (length < from_length)
482
488
  {
483
489
    if (current_session->count_cuted_fields)
484
490
    {
485
 
      copy->to_field->set_warning(DRIZZLE_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_TRUNCATED, 1);
 
491
      copy->to_field->set_warning(DRIZZLE_ERROR::WARN_LEVEL_WARN,
 
492
                                  ER_WARN_DATA_TRUNCATED, 1);
486
493
    }
487
494
  }
488
495
  *copy->to_ptr= (unsigned char) length;
515
522
  uint32_t char_length= (copy->to_length - HA_KEY_BLOB_LENGTH) / cs->mbmaxlen;
516
523
  uint32_t from_length= uint2korr(copy->from_ptr);
517
524
  const unsigned char *from_beg= copy->from_ptr + HA_KEY_BLOB_LENGTH;
518
 
  uint32_t length= cs->cset->well_formed_len(*cs, str_ref(from_beg, from_length), char_length, &well_formed_error);
 
525
  uint32_t length= cs->cset->well_formed_len(cs, (char*) from_beg,
 
526
                                             (char*) from_beg + from_length,
 
527
                                             char_length, &well_formed_error);
519
528
  if (length < from_length)
520
529
  {
521
530
    if (current_session->count_cuted_fields)