Sorry to repost but I was surprised there were no responses. It seems like time interval arithmetic must be fairly common for web2py applications. Has no one else run into a similar problem? Thanks, G
On Aug 23, 8:27 am, G <glenn.calt...@gmail.com> wrote: > Hello, > I've noticed that the cleanup task in scheduler.py is not working for > me. Looking into it, it appears that the handling of time intervals in > MySQL through DAL is not being done properly. > > This code > db(db.task_scheduled.status.belongs(statuses)) \ > (db.task_scheduled.last_run_time+60<now)._select() > > generates the following sql > > SELECT task_scheduled.id, task_scheduled.name, > task_scheduled.group_name, task_scheduled.status, task_scheduled.func, > task_scheduled.args, task_scheduled.vars, task_scheduled.enabled, > task_scheduled.start_time, task_scheduled.next_run_time, > task_scheduled.stop_time, task_scheduled.repeats, > task_scheduled.period, task_scheduled.timeout, > task_scheduled.times_run, task_scheduled.last_run_time, > task_scheduled.assigned_worker_name FROM task_scheduled WHERE > ((task_scheduled.status IN ('completed')) AND > ((task_scheduled.last_run_time + '60') < '2011-08-23 15:01:38')); > > However, if I execute the following in MySQL: > > SELECT last_run_time + '60' < '2011-08-23 15:01:38' FROM > task_scheduled ORDER BY ID DESC LIMIT 1; > > I get all zeros and MySQL even provides a warning about incorrect > DOUBLE value '2011-08-23 15:01:38' > > If you do > SELECT '2011-08-23 15:01:38' + 60; > you also get this warning and the result is meaningless 2071. > > Is this an error in the MySQL adapter for DAL or is the query missing > something to explicitly tell MySQL to do time interval arithmatic? > > Thanks, > G