The problem is not what value but the way it handles NULL values when the column is set to NOT NULL.

In older versions, NULL or no value set on a date or time or datetime just becomes 0000-00-00 00:00:00 (or a variation). In 5.7 it errors saying "this can't be NULL" and just stops.

I've just updated the github issue (121). Thankfully the only place I've found (after a lot of searching) that breaks are the *_LOG and LOGS tables (there are some others but the code that deals with them explicitly sets date/time/datetime values).

The sticking point is I'm not sure how Riv decides what happens with LOG start/stop dates that are in the past (it obviously was fine with 0000-00-00). More importantly I don't yet know how it purges logs (again because 0000-00-00 doesn't seem to get purged). Unfortunately, MySQL v5.7 doesn't let you set a default date as 0000-00-00 (it says invalid date).

So yeah I'm carefully trying to make changes without breaking stuff.

On 2016-05-31 21:18, Rob Landry wrote:
On Fri, 27 May 2016, Wayne Merricks wrote:

There are quite a few different database issues with Rivendell where older versions of MySQL implied NULL values or converted NULL dates to 0000-00-00 00:00:00 but with MySQL v5.7 you can't do that any more (at best 0000-00-00 gives you an invalid date error).

So, if you add a record to a table containing a date field without
specifying a value for that field, what value does MySQL 5.7 assume?


Rob

_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to