Question(s) regarding Rule-based Row Filter


I have a question about the Rule-based Row Filter node. I have got a table with 20 rows, each representing one object. Each object has two properties (you can see a screenshot of my table attached to this post). Now I want to exclude all objects, whose Property2 is smaller than 800.

$Property2$ < 800 => FALSE

Executing this node does not filter any rows, the output table still contains all incoming rows! The option at the bottom of the configuration dialog ("include if first matching rule is TRUE") is unchecked. Could it be that there is something wrong or do I have problems understanding how this node works?


There was a bug in 2.9.0 that sounds similar to your problem. It's fixed in 2.9.1.

Thank you for your answer. As one can infer from the changelog, there were no changes in the node mentioned in my initial post (I use version 2.9.1). Bug 4848 refers to the Rule-based Row Splitter.

Using the same rule in the Rule-based Row Splitter leads to having all rows in the first output (option below unchecked) or having all rows in the second output when the option below is checked.

The filter and splitter use the same classes, so both were affected by the bug. But I believe the problem is different: if you have only this one rule in the configuration then all rows will evaluate to false. If no rule matches the outcome for a row is implicitly "false". So you have essentially two rules that both result in false, which explains why all rows end up in the same output (or are included/excluded). You need to have a rule TRUE => TRUE as last rule (see also the comment lines of the rule input field).

Thank you very much!