- Diagnostics for filter eval were not enabled properly. Now rc.debug.parser=2
  will show all filter eval diagnostics.
This commit is contained in:
Paul Beckingham 2014-11-22 13:48:28 -05:00
parent 85518c646f
commit d5c937ba8c
3 changed files with 8 additions and 4 deletions

View file

@ -1565,7 +1565,7 @@ void CLI::insertIDExpr ()
} }
} }
// Combine the ID and UUID sections wiþh 'or'. // Combine the ID and UUID sections with 'or'.
if (_id_ranges.size () && if (_id_ranges.size () &&
_uuid_list.size ()) _uuid_list.size ())
reconstructed.push_back (opOr); reconstructed.push_back (opOr);

View file

@ -242,7 +242,7 @@ bool DOM::get (const std::string& name, const Task& task, Variant& value)
{ {
if (column->type () == "date") if (column->type () == "date")
value = Variant (task.get_date (canonical), Variant::type_date); value = Variant (task.get_date (canonical), Variant::type_date);
else if (column->type () == "duration") else if (column->type () == "duration" || canonical == "recur")
value = Variant ((time_t) Duration (task.get (canonical)), Variant::type_duration); value = Variant ((time_t) Duration (task.get (canonical)), Variant::type_duration);
else if (column->type () == "numeric") else if (column->type () == "numeric")
value = Variant (task.get_float (canonical)); value = Variant (task.get_float (canonical));

View file

@ -85,7 +85,7 @@ void Filter::subset (const std::vector <Task>& input, std::vector <Task>& output
// Debug output from Eval during compilation is useful. During evaluation // Debug output from Eval during compilation is useful. During evaluation
// it is mostly noise. // it is mostly noise.
eval.debug (context.config.getInteger ("debug.parser") >= 1 ? true : false); eval.debug (context.config.getInteger ("debug.parser") >= 2 ? true : false);
eval.compileExpression (filterExpr); eval.compileExpression (filterExpr);
eval.debug (false); eval.debug (false);
@ -147,7 +147,9 @@ void Filter::subset (std::vector <Task>& output)
contextTask = *task; contextTask = *task;
Variant var; Variant var;
eval.debug (context.config.getInteger ("debug.parser") >= 2 ? true : false);
eval.evaluateCompiledExpression (var); eval.evaluateCompiledExpression (var);
eval.debug (false);
if (var.get_bool ()) if (var.get_bool ())
output.push_back (*task); output.push_back (*task);
} }
@ -156,7 +158,7 @@ void Filter::subset (std::vector <Task>& output)
if (! shortcut) if (! shortcut)
{ {
context.timer_filter.stop (); context.timer_filter.stop ();
const std::vector <Task>& completed = context.tdb2.completed.get_tasks (); // TODO Optional const std::vector <Task>& completed = context.tdb2.completed.get_tasks ();
context.timer_filter.start (); context.timer_filter.start ();
_startCount += (int) completed.size (); _startCount += (int) completed.size ();
@ -166,7 +168,9 @@ void Filter::subset (std::vector <Task>& output)
contextTask = *task; contextTask = *task;
Variant var; Variant var;
eval.debug (context.config.getInteger ("debug.parser") >= 2 ? true : false);
eval.evaluateCompiledExpression (var); eval.evaluateCompiledExpression (var);
eval.debug (false);
if (var.get_bool ()) if (var.get_bool ())
output.push_back (*task); output.push_back (*task);
} }