summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/type_decimal.result4
-rw-r--r--sql/field.h4
-rw-r--r--sql/item.cc2
-rw-r--r--sql/item_sum.cc2
-rw-r--r--sql/item_timefunc.cc2
-rw-r--r--sql/item_timefunc.h6
6 files changed, 10 insertions, 10 deletions
diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result
index a438755ce6b..a2ccf042165 100644
--- a/mysql-test/r/type_decimal.result
+++ b/mysql-test/r/type_decimal.result
@@ -786,10 +786,6 @@ from (select 1 as s,'t' as t union select null, null ) as sub1;
select group_concat(t) from t1 group by week(date)/10;
group_concat(t)
t
-Warnings:
-Warning 1292 Truncated incorrect datetime value: '0000-00-00'
-Warning 1292 Truncated incorrect datetime value: '0000-00-00'
-Warning 1292 Truncated incorrect datetime value: '0000-00-00'
drop table t1;
CREATE TABLE t1 (
qty decimal(16,6) default NULL,
diff --git a/sql/field.h b/sql/field.h
index e2dd6d8538e..d681229a9fd 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -962,6 +962,10 @@ public:
:Field_str(ptr_arg, 10, null_ptr_arg, null_bit_arg,
unireg_check_arg, field_name_arg, table_arg, cs)
{}
+ Field_newdate(bool maybe_null_arg, const char *field_name_arg,
+ struct st_table *table_arg, CHARSET_INFO *cs)
+ :Field_str((char*) 0,10, maybe_null_arg ? (uchar*) "": 0,0,
+ NONE, field_name_arg, table_arg, cs) {}
enum_field_types type() const { return FIELD_TYPE_DATE;}
enum_field_types real_type() const { return FIELD_TYPE_NEWDATE; }
enum ha_base_keytype key_type() const { return HA_KEYTYPE_UINT24; }
diff --git a/sql/item.cc b/sql/item.cc
index 2d49c7b6d60..cafa40ecbb0 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -4384,7 +4384,7 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table)
name, table, 0, unsigned_flag);
case MYSQL_TYPE_NEWDATE:
case MYSQL_TYPE_DATE:
- return new Field_date(maybe_null, name, table, &my_charset_bin);
+ return new Field_newdate(maybe_null, name, table, &my_charset_bin);
case MYSQL_TYPE_TIME:
return new Field_time(maybe_null, name, table, &my_charset_bin);
case MYSQL_TYPE_TIMESTAMP:
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 7d00de493aa..3d261dc2c36 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -628,7 +628,7 @@ Field *Item_sum_hybrid::create_tmp_field(bool group, TABLE *table,
*/
switch (args[0]->field_type()) {
case MYSQL_TYPE_DATE:
- return new Field_date(maybe_null, name, table, collation.collation);
+ return new Field_newdate(maybe_null, name, table, collation.collation);
case MYSQL_TYPE_TIME:
return new Field_time(maybe_null, name, table, collation.collation);
case MYSQL_TYPE_TIMESTAMP:
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc
index 04060d190a0..0cb3c963dad 100644
--- a/sql/item_timefunc.cc
+++ b/sql/item_timefunc.cc
@@ -3303,7 +3303,7 @@ Field *Item_func_str_to_date::tmp_table_field(TABLE *t_arg)
if (cached_field_type == MYSQL_TYPE_TIME)
return (new Field_time(maybe_null, name, t_arg, &my_charset_bin));
if (cached_field_type == MYSQL_TYPE_DATE)
- return (new Field_date(maybe_null, name, t_arg, &my_charset_bin));
+ return (new Field_newdate(maybe_null, name, t_arg, &my_charset_bin));
if (cached_field_type == MYSQL_TYPE_DATETIME)
return (new Field_datetime(maybe_null, name, t_arg, &my_charset_bin));
return (new Field_string(max_length, maybe_null, name, t_arg, &my_charset_bin));
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h
index b647e93b700..7960c03d2e5 100644
--- a/sql/item_timefunc.h
+++ b/sql/item_timefunc.h
@@ -340,7 +340,7 @@ public:
}
Field *tmp_table_field(TABLE *t_arg)
{
- return (new Field_date(maybe_null, name, t_arg, &my_charset_bin));
+ return (new Field_newdate(maybe_null, name, t_arg, &my_charset_bin));
}
bool result_as_longlong() { return TRUE; }
my_decimal *val_decimal(my_decimal *decimal_value)
@@ -784,7 +784,7 @@ public:
enum_field_types field_type() const { return MYSQL_TYPE_DATE; }
Field *tmp_table_field(TABLE *t_arg)
{
- return (new Field_date(maybe_null, name, t_arg, &my_charset_bin));
+ return (new Field_newdate(maybe_null, name, t_arg, &my_charset_bin));
}
void fix_length_and_dec()
{
@@ -884,7 +884,7 @@ public:
}
Field *tmp_table_field(TABLE *t_arg)
{
- return (new Field_date(maybe_null, name, t_arg, &my_charset_bin));
+ return (new Field_newdate(maybe_null, name, t_arg, &my_charset_bin));
}
longlong val_int();
my_decimal *val_decimal(my_decimal *decimal_value)