summaryrefslogtreecommitdiff
path: root/sql/item_timefunc.h
diff options
context:
space:
mode:
authorunknown <holyfoot/hf@hfmain.(none)>2007-03-22 12:45:42 +0400
committerunknown <holyfoot/hf@hfmain.(none)>2007-03-22 12:45:42 +0400
commit4bd7d6c524a7b3b61fc7d346d83df94ffea18b7e (patch)
treeddc9999303661f2bb58fc77446f2cd184e8f9c3c /sql/item_timefunc.h
parent475384c9d561b78b746fd345e2b294c80fdfa6e5 (diff)
parent2b983572a7763914abeb61b8084e2f54d0de915d (diff)
downloadmariadb-git-4bd7d6c524a7b3b61fc7d346d83df94ffea18b7e.tar.gz
Merge mysql.com:/home/hf/work/mrg/mysql-5.0-opt
into mysql.com:/home/hf/work/mrg/mysql-5.1-opt sql/item_timefunc.h: merging
Diffstat (limited to 'sql/item_timefunc.h')
-rw-r--r--sql/item_timefunc.h19
1 files changed, 8 insertions, 11 deletions
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h
index ac68788959c..ea93619e59a 100644
--- a/sql/item_timefunc.h
+++ b/sql/item_timefunc.h
@@ -351,7 +351,7 @@ public:
enum_field_types field_type() const { return MYSQL_TYPE_DATE; }
String *val_str(String *str);
longlong val_int();
- double val_real() { DBUG_ASSERT(fixed == 1); return (double) val_int(); }
+ double val_real() { return val_real_from_decimal(); }
const char *func_name() const { return "date"; }
void fix_length_and_dec()
{
@@ -389,6 +389,7 @@ public:
return tmp_table_field_from_field_type(table, 0);
}
bool result_as_longlong() { return TRUE; }
+ double val_real() { return (double) val_int(); }
my_decimal *val_decimal(my_decimal *decimal_value)
{
DBUG_ASSERT(fixed == 1);
@@ -411,13 +412,14 @@ public:
enum_field_types field_type() const { return MYSQL_TYPE_TIME; }
void fix_length_and_dec()
{
- decimals=0;
+ decimals= DATETIME_DEC;
max_length=MAX_TIME_WIDTH*MY_CHARSET_BIN_MB_MAXLEN;
}
Field *tmp_table_field(TABLE *table)
{
return tmp_table_field_from_field_type(table, 0);
}
+ double val_real() { return val_real_from_decimal(); }
my_decimal *val_decimal(my_decimal *decimal_value)
{
DBUG_ASSERT(fixed == 1);
@@ -521,7 +523,6 @@ public:
Item_func_now() :Item_date_func() {}
Item_func_now(Item *a) :Item_date_func(a) {}
enum Item_result result_type () const { return STRING_RESULT; }
- double val_real() { DBUG_ASSERT(fixed == 1); return (double) value; }
longlong val_int() { DBUG_ASSERT(fixed == 1); return value; }
int save_in_field(Field *to, bool no_conversions);
String *val_str(String *str);
@@ -611,11 +612,6 @@ class Item_func_from_unixtime :public Item_date_func
THD *thd;
public:
Item_func_from_unixtime(Item *a) :Item_date_func(a) {}
- double val_real()
- {
- DBUG_ASSERT(fixed == 1);
- return (double) Item_func_from_unixtime::val_int();
- }
longlong val_int();
String *val_str(String *str);
const char *func_name() const { return "from_unixtime"; }
@@ -653,7 +649,6 @@ class Item_func_convert_tz :public Item_date_func
Item_func_convert_tz(Item *a, Item *b, Item *c):
Item_date_func(a, b, c), from_tz_cached(0), to_tz_cached(0) {}
longlong val_int();
- double val_real() { return (double) val_int(); }
String *val_str(String *str);
const char *func_name() const { return "convert_tz"; }
void fix_length_and_dec();
@@ -678,7 +673,6 @@ public:
Item_str_timefunc::fix_length_and_dec();
collation.set(&my_charset_bin);
maybe_null=1;
- decimals= DATETIME_DEC;
}
const char *func_name() const { return "sec_to_time"; }
bool result_as_longlong() { return TRUE; }
@@ -700,7 +694,6 @@ public:
const char *func_name() const { return "date_add_interval"; }
void fix_length_and_dec();
enum_field_types field_type() const { return cached_field_type; }
- double val_real() { DBUG_ASSERT(fixed == 1); return (double) val_int(); }
longlong val_int();
bool get_date(TIME *res, uint fuzzy_date);
bool eq(const Item *item, bool binary_cmp) const;
@@ -805,6 +798,7 @@ public:
}
bool result_as_longlong() { return TRUE; }
longlong val_int();
+ double val_real() { return (double) val_int(); }
my_decimal *val_decimal(my_decimal *decimal_value)
{
DBUG_ASSERT(fixed == 1);
@@ -832,6 +826,7 @@ public:
}
bool result_as_longlong() { return TRUE; }
longlong val_int();
+ double val_real() { return val_real_from_decimal(); }
my_decimal *val_decimal(my_decimal *decimal_value)
{
DBUG_ASSERT(fixed == 1);
@@ -863,6 +858,7 @@ public:
}
bool result_as_longlong() { return TRUE; }
longlong val_int();
+ double val_real() { return val_real_from_decimal(); }
double val() { return (double) val_int(); }
my_decimal *val_decimal(my_decimal *decimal_value)
{
@@ -912,6 +908,7 @@ public:
void print(String *str);
const char *func_name() const { return "add_time"; }
bool check_partition_func_processor(byte *int_arg) {return FALSE;}
+ double val_real() { return val_real_from_decimal(); }
my_decimal *val_decimal(my_decimal *decimal_value)
{
DBUG_ASSERT(fixed == 1);