<div>Hello,</div><div><br></div><div>FdoFilter::ToString() returns wrong string representation of "complex" 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 -> NOT a AND b == (NOT a) AND b //WRONG</div><div>3. FfdoFilter::Parse("NOT a AND b") -> 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<FdoFilter> flt1 = FdoFilter::Parse(L"Geometry INTERSECTS GeomFromText('POLYGON ((461848 100030, 462399 100892, 463039 100544, 462697 99882, 462545 99926, 462652 100525, 462539 100612, 462075 99911, 461848 100030))')");//a</div>
<div>FdoPtr<FdoFilter> flt2 = FdoFilter::Parse(L"POVRSINA < 200");//b</div><div>FdoPtr<FdoFilter> fltand = FdoFilter::Combine(flt1, FdoBinaryLogicalOperations_And, flt2);</div><div>FdoPtr<FdoFilter> fltnot = FdoUnaryLogicalOperator::Create(fltand, FdoUnaryLogicalOperations_Not);</div>
<div>FdoPtr<FdoFilter> fltnot2 = FdoFilter::Parse(fltnot->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>