Per the 5.1.0 release notes:
3.2.2 Incorrect Results from Evaluation of Filter Expressions with Float Members
Evaluation of filter expressions that referred to float members may have had erroneous results. For example:
struct MyType { float m1; };
Evaluating the SQL filter expression "m1 = 4.1" for the above type may have caused an erroneous result. Therefore a sample that should have passed a filter may have been filtered out.
However the fix referenced in the release notes does not appear to correct the issue in the case of nested structures.
struct MyNestedType { float m1; };
struct MyType { MyNestedType m_struct; };
The above IDL definitions cause filter failures with similiar resuts on the expression "m_struct.m1 = 4.1". We have also seen problems with filtering on longs inside nested structures as well, but in this case, samples which should not pass the filter end up being permitted.
--Jason C. Wenger