[RDD] Ubuntu 16.04 - and at the end the font...

Wayne Merricks waynemerricks at thevoiceasia.com
Tue May 31 16:26:45 EDT 2016

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

More information about the Rivendell-dev mailing list