~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle/my_time.c

  • Committer: Jay Pipes
  • Date: 2008-07-16 16:14:22 UTC
  • mto: This revision was merged to the branch mainline in revision 182.
  • Revision ID: jay@mysql.com-20080716161422-fy1bl8o5q7m8kglq
Removed all DBUG symbols from heap storage engine

Show diffs side-by-side

added added

removed removed

Lines of Context:
170
170
  const uchar *format_position;
171
171
  my_bool found_delimitier= 0, found_space= 0;
172
172
  uint frac_pos, frac_len;
 
173
  DBUG_ENTER("str_to_datetime");
 
174
  DBUG_PRINT("ENTER",("str: %.*s",length,str));
173
175
 
174
176
  *was_cut= 0;
175
177
 
179
181
  if (str == end || ! my_isdigit(&my_charset_latin1, *str))
180
182
  {
181
183
    *was_cut= 1;
182
 
    return(MYSQL_TIMESTAMP_NONE);
 
184
    DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
183
185
  }
184
186
 
185
187
  is_internal_format= 0;
226
228
        if (flags & TIME_DATETIME_ONLY)
227
229
        {
228
230
          *was_cut= 1;
229
 
          return(MYSQL_TIMESTAMP_NONE);   /* Can't be a full datetime */
 
231
          DBUG_RETURN(MYSQL_TIMESTAMP_NONE);   /* Can't be a full datetime */
230
232
        }
231
233
        /* Date field.  Set hour, minutes and seconds to 0 */
232
234
        date[0]= date[1]= date[2]= date[3]= date[4]= 0;
268
270
    if (tmp_value > 999999)                     /* Impossible date part */
269
271
    {
270
272
      *was_cut= 1;
271
 
      return(MYSQL_TIMESTAMP_NONE);
 
273
      DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
272
274
    }
273
275
    date[i]=tmp_value;
274
276
    not_zero_date|= tmp_value;
305
307
        if (!(allow_space & (1 << i)))
306
308
        {
307
309
          *was_cut= 1;
308
 
          return(MYSQL_TIMESTAMP_NONE);
 
310
          DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
309
311
        }
310
312
        found_space= 1;
311
313
      }
336
338
  if (found_delimitier && !found_space && (flags & TIME_DATETIME_ONLY))
337
339
  {
338
340
    *was_cut= 1;
339
 
    return(MYSQL_TIMESTAMP_NONE);          /* Can't be a datetime */
 
341
    DBUG_RETURN(MYSQL_TIMESTAMP_NONE);          /* Can't be a datetime */
340
342
  }
341
343
 
342
344
  str= last_field_pos;
354
356
    if (!year_length)                           /* Year must be specified */
355
357
    {
356
358
      *was_cut= 1;
357
 
      return(MYSQL_TIMESTAMP_NONE);
 
359
      DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
358
360
    }
359
361
 
360
362
    l_time->year=               date[(uint) format_position[0]];
433
435
    }
434
436
  }
435
437
 
436
 
  return(l_time->time_type=
 
438
  DBUG_RETURN(l_time->time_type=
437
439
              (number_of_fields <= 3 ? MYSQL_TIMESTAMP_DATE :
438
440
                                       MYSQL_TIMESTAMP_DATETIME));
439
441
 
440
442
err:
441
443
  bzero((char*) l_time, sizeof(*l_time));
442
 
  return(MYSQL_TIMESTAMP_ERROR);
 
444
  DBUG_RETURN(MYSQL_TIMESTAMP_ERROR);
443
445
}
444
446
 
445
447
 
755
757
{
756
758
  long delsum;
757
759
  int temp;
 
760
  DBUG_ENTER("calc_daynr");
758
761
 
759
762
  if (year == 0 && month == 0 && day == 0)
760
 
    return(0);                          /* Skip errors */
 
763
    DBUG_RETURN(0);                             /* Skip errors */
761
764
  delsum= (long) (365L * year+ 31*(month-1) +day);
762
765
  if (month <= 2)
763
766
      year--;
764
767
  else
765
768
    delsum-= (long) (month*4+23)/10;
766
769
  temp=(int) ((year/100+1)*3)/4;
767
 
  return(delsum+(int) year/4-temp);
 
770
  DBUG_PRINT("exit",("year: %d  month: %d  day: %d -> daynr: %ld",
 
771
                     year+(month <= 2),month,day,delsum+year/4-temp));
 
772
  DBUG_RETURN(delsum+(int) year/4-temp);
768
773
} /* calc_daynr */
769
774
 
770
775
 
1005
1010
int my_time_to_str(const MYSQL_TIME *l_time, char *to)
1006
1011
{
1007
1012
  uint extra_hours= 0;
1008
 
  return sprintf(to, "%s%02u:%02u:%02u",
 
1013
  return my_sprintf(to, (to, "%s%02u:%02u:%02u",
1009
1014
                         (l_time->neg ? "-" : ""),
1010
1015
                         extra_hours+ l_time->hour,
1011
1016
                         l_time->minute,
1012
 
                         l_time->second);
 
1017
                         l_time->second));
1013
1018
}
1014
1019
 
1015
1020
int my_date_to_str(const MYSQL_TIME *l_time, char *to)
1016
1021
{
1017
 
  return sprintf(to, "%04u-%02u-%02u",
 
1022
  return my_sprintf(to, (to, "%04u-%02u-%02u",
1018
1023
                         l_time->year,
1019
1024
                         l_time->month,
1020
 
                         l_time->day);
 
1025
                         l_time->day));
1021
1026
}
1022
1027
 
1023
1028
int my_datetime_to_str(const MYSQL_TIME *l_time, char *to)
1024
1029
{
1025
 
  return sprintf(to, "%04u-%02u-%02u %02u:%02u:%02u",
 
1030
  return my_sprintf(to, (to, "%04u-%02u-%02u %02u:%02u:%02u",
1026
1031
                         l_time->year,
1027
1032
                         l_time->month,
1028
1033
                         l_time->day,
1029
1034
                         l_time->hour,
1030
1035
                         l_time->minute,
1031
 
                         l_time->second);
 
1036
                         l_time->second));
1032
1037
}
1033
1038
 
1034
1039
 
1057
1062
    to[0]='\0';
1058
1063
    return 0;
1059
1064
  default:
1060
 
    assert(0);
 
1065
    DBUG_ASSERT(0);
1061
1066
    return 0;
1062
1067
  }
1063
1068
}
1234
1239
  case MYSQL_TIMESTAMP_ERROR:
1235
1240
    return 0ULL;
1236
1241
  default:
1237
 
    assert(0);
 
1242
    DBUG_ASSERT(0);
1238
1243
  }
1239
1244
  return 0;
1240
1245
}