~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item_timefunc.h

Merged build changes from Antony.

Show diffs side-by-side

added added

removed removed

Lines of Context:
334
334
  Item_date() :Item_func() {}
335
335
  Item_date(Item *a) :Item_func(a) {}
336
336
  enum Item_result result_type () const { return STRING_RESULT; }
337
 
  enum_field_types field_type() const { return MYSQL_TYPE_NEWDATE; }
 
337
  enum_field_types field_type() const { return DRIZZLE_TYPE_NEWDATE; }
338
338
  String *val_str(String *str);
339
339
  int64_t val_int();
340
340
  double val_real() { return val_real_from_decimal(); }
356
356
    return  val_decimal_from_date(decimal_value);
357
357
  }
358
358
  int save_in_field(Field *field,
359
 
                    bool no_conversions __attribute__((__unused__)))
 
359
                    bool no_conversions __attribute__((unused)))
360
360
  {
361
361
    return save_date_in_field(field);
362
362
  }
370
370
  Item_date_func(Item *a) :Item_str_func(a) {}
371
371
  Item_date_func(Item *a,Item *b) :Item_str_func(a,b) {}
372
372
  Item_date_func(Item *a,Item *b, Item *c) :Item_str_func(a,b,c) {}
373
 
  enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; }
 
373
  enum_field_types field_type() const { return DRIZZLE_TYPE_DATETIME; }
374
374
  Field *tmp_table_field(TABLE *table)
375
375
  {
376
376
    return tmp_table_field_from_field_type(table, 0);
383
383
    return  val_decimal_from_date(decimal_value);
384
384
  }
385
385
  int save_in_field(Field *field,
386
 
                    bool no_conversions __attribute__((__unused__)))
 
386
                    bool no_conversions __attribute__((unused)))
387
387
  {
388
388
    return save_date_in_field(field);
389
389
  }
397
397
  Item_str_timefunc(Item *a) :Item_str_func(a) {}
398
398
  Item_str_timefunc(Item *a,Item *b) :Item_str_func(a,b) {}
399
399
  Item_str_timefunc(Item *a, Item *b, Item *c) :Item_str_func(a, b ,c) {}
400
 
  enum_field_types field_type() const { return MYSQL_TYPE_TIME; }
 
400
  enum_field_types field_type() const { return DRIZZLE_TYPE_TIME; }
401
401
  void fix_length_and_dec()
402
402
  {
403
403
    decimals= DATETIME_DEC;
414
414
    return  val_decimal_from_time(decimal_value);
415
415
  }
416
416
  int save_in_field(Field *field,
417
 
                    bool no_conversions __attribute__((__unused__)))
 
417
                    bool no_conversions __attribute__((unused)))
418
418
  {
419
419
    return save_time_in_field(field);
420
420
  }
767
767
  bool get_date(MYSQL_TIME *ltime, uint fuzzy_date);
768
768
  bool get_time(MYSQL_TIME *ltime);
769
769
  const char *cast_type() const { return "date"; }
770
 
  enum_field_types field_type() const { return MYSQL_TYPE_NEWDATE; }
 
770
  enum_field_types field_type() const { return DRIZZLE_TYPE_NEWDATE; }
771
771
  Field *tmp_table_field(TABLE *table)
772
772
  {
773
773
    return tmp_table_field_from_field_type(table, 0);
787
787
    return  val_decimal_from_date(decimal_value);
788
788
  }
789
789
  int save_in_field(Field *field,
790
 
                    bool no_conversions __attribute__((__unused__)))
 
790
                    bool no_conversions __attribute__((unused)))
791
791
  {
792
792
    return save_date_in_field(field);
793
793
  }
802
802
  String *val_str(String *str);
803
803
  bool get_time(MYSQL_TIME *ltime);
804
804
  const char *cast_type() const { return "time"; }
805
 
  enum_field_types field_type() const { return MYSQL_TYPE_TIME; }
 
805
  enum_field_types field_type() const { return DRIZZLE_TYPE_TIME; }
806
806
  Field *tmp_table_field(TABLE *table)
807
807
  {
808
808
    return tmp_table_field_from_field_type(table, 0);
816
816
    return  val_decimal_from_time(decimal_value);
817
817
  }
818
818
  int save_in_field(Field *field,
819
 
                    bool no_conversions __attribute__((__unused__)))
 
819
                    bool no_conversions __attribute__((unused)))
820
820
  {
821
821
    return save_time_in_field(field);
822
822
  }
830
830
  const char *func_name() const { return "cast_as_datetime"; }
831
831
  String *val_str(String *str);
832
832
  const char *cast_type() const { return "datetime"; }
833
 
  enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; }
 
833
  enum_field_types field_type() const { return DRIZZLE_TYPE_DATETIME; }
834
834
  Field *tmp_table_field(TABLE *table)
835
835
  {
836
836
    return tmp_table_field_from_field_type(table, 0);
852
852
    return  val_decimal_from_date(decimal_value);
853
853
  }
854
854
  int save_in_field(Field *field,
855
 
                    bool no_conversions __attribute__((__unused__)))
 
855
                    bool no_conversions __attribute__((unused)))
856
856
  {
857
857
    return save_date_in_field(field);
858
858
  }
864
864
  Item_func_makedate(Item *a,Item *b) :Item_date_func(a,b) {}
865
865
  String *val_str(String *str);
866
866
  const char *func_name() const { return "makedate"; }
867
 
  enum_field_types field_type() const { return MYSQL_TYPE_NEWDATE; }
 
867
  enum_field_types field_type() const { return DRIZZLE_TYPE_NEWDATE; }
868
868
  void fix_length_and_dec()
869
869
  { 
870
870
    decimals=0;
897
897
  my_decimal *val_decimal(my_decimal *decimal_value)
898
898
  {
899
899
    assert(fixed == 1);
900
 
    if (cached_field_type == MYSQL_TYPE_TIME)
 
900
    if (cached_field_type == DRIZZLE_TYPE_TIME)
901
901
      return  val_decimal_from_time(decimal_value);
902
 
    if (cached_field_type == MYSQL_TYPE_DATETIME)
 
902
    if (cached_field_type == DRIZZLE_TYPE_DATETIME)
903
903
      return  val_decimal_from_date(decimal_value);
904
904
    return Item_str_func::val_decimal(decimal_value);
905
905
  }
906
906
  int save_in_field(Field *field, bool no_conversions)
907
907
  {
908
 
    if (cached_field_type == MYSQL_TYPE_TIME)
 
908
    if (cached_field_type == DRIZZLE_TYPE_TIME)
909
909
      return save_time_in_field(field);
910
 
    if (cached_field_type == MYSQL_TYPE_DATETIME)
 
910
    if (cached_field_type == DRIZZLE_TYPE_DATETIME)
911
911
      return save_date_in_field(field);
912
912
    return Item_str_func::save_in_field(field, no_conversions);
913
913
  }