~drizzle-trunk/drizzle/jenkins-Drizzle-Builder-160

« back to all changes in this revision

Viewing changes to drizzled/type/time.cc

  • Committer: Continuous Integration
  • Date: 2013-01-31 04:40:33 UTC
  • mfrom: (2617.1.5 drizzle-7.2)
  • Revision ID: ci@drizzle.org-20130131044033-xc0kx3ecrkyp1401
Merge lp:~brianaker/drizzle/fedora18-fix/ Build: jenkins-Drizzle-Builder-160

Show diffs side-by-side

added added

removed removed

Lines of Context:
494
494
 
495
495
bool Time::store(const char *str, uint32_t length, int &warning, type::timestamp_t arg)
496
496
{
 
497
  (void)arg;
497
498
  uint32_t date[5];
498
499
  uint64_t value;
499
500
  const char *end=str+length, *end_of_days;
505
506
  this->neg=0;
506
507
  warning= 0;
507
508
  for (; str != end && my_charset_utf8_general_ci.isspace(*str) ; str++)
 
509
  {
508
510
    length--;
 
511
  }
 
512
 
509
513
  if (str != end && *str == '-')
510
514
  {
511
515
    this->neg=1;
512
516
    str++;
513
517
    length--;
514
518
  }
 
519
 
515
520
  if (str == end)
 
521
  {
516
522
    return true;
 
523
  }
517
524
 
518
525
  /* Check first if this is a full TIMESTAMP */
519
526
  if (length >= 12)
531
538
 
532
539
  /* Not a timestamp. Try to get this as a DAYS_TO_SECOND string */
533
540
  for (value=0; str != end && my_charset_utf8_general_ci.isdigit(*str) ; str++)
534
 
    value=value*10L + (long) (*str - '0');
 
541
  {
 
542
    value= value*10L + (long) (*str - '0');
 
543
  }
535
544
 
536
545
  /* Skip all space after 'days' */
537
546
  end_of_days= str;
539
548
    ;
540
549
 
541
550
  found_days=found_hours=0;
542
 
  if ((uint32_t) (end-str) > 1 && str != end_of_days &&
 
551
  if ((uint32_t) (end-str) > 1 and str != end_of_days and
543
552
      my_charset_utf8_general_ci.isdigit(*str))
544
553
  {                                             /* Found days part */
545
554
    date[0]= (uint32_t) value;