summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorTatiana A. Nurnberg <azundris@mysql.com>2009-01-30 17:12:24 +0100
committerTatiana A. Nurnberg <azundris@mysql.com>2009-01-30 17:12:24 +0100
commitce563480b774f912ab698efe0a71e77b9360893d (patch)
treeea2ec331fb705d76ead5acabc85b2f1cc5fa6a9c /sql
parent386ec13b590a29608bf8ddea39e1acc875c702a7 (diff)
downloadmariadb-git-ce563480b774f912ab698efe0a71e77b9360893d.tar.gz
Bug#41370: TIMESTAMP field does not accepts NULL from FROM_UNIXTIME()
When storing a NULL to a TIMESTAMP NOT NULL DEFAULT ..., NULL returned from some functions threw a 'cannot be NULL error.' NULL-returns now correctly result in the timestamp-field being assigned its default value. mysql-test/r/type_timestamp.result: Show that for TIMESTAMP NOT NULL DEFAULT, NULL function returns set default now. mysql-test/t/type_timestamp.test: Show that for TIMESTAMP NOT NULL DEFAULT, NULL function returns set default now. sql/item.cc: When storing a returned NULL (from a time- or date-related function), make sure to apply NULL-means-DEFAULT magic where applicable.
Diffstat (limited to 'sql')
-rw-r--r--sql/item.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 2a89c86cd88..977c5f0b7c0 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -321,7 +321,7 @@ int Item::save_time_in_field(Field *field)
{
MYSQL_TIME ltime;
if (get_time(&ltime))
- return set_field_to_null(field);
+ return set_field_to_null_with_conversions(field, 0);
field->set_notnull();
return field->store_time(&ltime, MYSQL_TIMESTAMP_TIME);
}
@@ -331,7 +331,7 @@ int Item::save_date_in_field(Field *field)
{
MYSQL_TIME ltime;
if (get_date(&ltime, TIME_FUZZY_DATE))
- return set_field_to_null(field);
+ return set_field_to_null_with_conversions(field, 0);
field->set_notnull();
return field->store_time(&ltime, MYSQL_TIMESTAMP_DATETIME);
}