~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/cmpfunc.cc

  • Committer: Monty Taylor
  • Date: 2011-03-11 18:48:55 UTC
  • mfrom: (2228.1.8 build)
  • Revision ID: mordred@inaugust.com-20110311184855-1essd3a6xfr7lx6r
Merged Andrew: drizzledump and docs bug fixes
Merged Barry: pbms bugfixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
858
858
         */
859
859
        return CMP_DATE_DFLT;
860
860
      }
861
 
      if (! temporal.from_string(str_val->c_ptr(), str_val->length()))
862
 
      {
863
 
        /* Chuck an error. Bad datetime input. */
864
 
        my_error(ER_INVALID_DATETIME_VALUE, MYF(ME_FATALERROR), str_val->c_ptr());
865
 
        return CMP_DATE_DFLT; /* :( What else can I return... */
866
 
      }
867
 
 
868
 
      /* String conversion was good.  Convert to an integer for comparison purposes. */
869
 
      temporal.to_int64_t(&value);
 
861
      if (temporal.from_string(str_val->c_ptr(), str_val->length()))
 
862
      {
 
863
        /* String conversion was good.  Convert to an integer for comparison purposes. */
 
864
        temporal.to_int64_t(&value);
 
865
      }
 
866
      else
 
867
      {
 
868
        /* We aren't a DATETIME but still could be a TIME */
 
869
        Time timevalue;
 
870
        if (timevalue.from_string(str_val->c_ptr(), str_val->length()))
 
871
        {
 
872
          uint64_t timeint;
 
873
          timevalue.to_uint64_t(timeint);
 
874
          value= static_cast<int64_t>(timeint);
 
875
        }
 
876
        else
 
877
        {
 
878
          /* Chuck an error. Bad datetime input. */
 
879
          my_error(ER_INVALID_DATETIME_VALUE, MYF(ME_FATALERROR), str_val->c_ptr());
 
880
          return CMP_DATE_DFLT; /* :( What else can I return... */
 
881
        }
 
882
      }
870
883
 
871
884
      if (const_value)
872
885
        *const_value= value;