<div>Hello,</div><div><br></div><div>FdoFilter::ToString() returns wrong string representation of &quot;complex&quot; filter NOT(a AND b).</div><div>The following is a description of a bug:</div><div><br></div><div><div>1. filter = NOT ( a AND b)</div>
<div>2. filter.ToString -&gt; NOT a AND b == (NOT a) AND b     //WRONG</div><div>3. FfdoFilter::Parse(&quot;NOT a AND b&quot;) -&gt; NOT a AND b</div></div><div><br></div><div>A sample code to reproduce two different filters when they should be identical:</div>
<div><br></div><div>FdoPtr&lt;FdoFilter&gt; flt1 = FdoFilter::Parse(L&quot;Geometry INTERSECTS GeomFromText(&#39;POLYGON ((461848 100030, 462399 100892, 463039 100544, 462697 99882, 462545 99926, 462652 100525, 462539 100612, 462075 99911, 461848 100030))&#39;)&quot;);//a</div>
<div>FdoPtr&lt;FdoFilter&gt; flt2 = FdoFilter::Parse(L&quot;POVRSINA &lt; 200&quot;);//b</div><div>FdoPtr&lt;FdoFilter&gt; fltand = FdoFilter::Combine(flt1, FdoBinaryLogicalOperations_And, flt2);</div><div>FdoPtr&lt;FdoFilter&gt; fltnot = FdoUnaryLogicalOperator::Create(fltand, FdoUnaryLogicalOperations_Not);</div>
<div>FdoPtr&lt;FdoFilter&gt; fltnot2 = FdoFilter::Parse(fltnot-&gt;ToString());</div><div>//fltnot != fltnot2</div><div><br></div><div>Surely this is not correct or is it ?</div><div><br></div><div>Regards,</div><div>Igor Jarm</div>