[fdo-internals] SDF defect fixes code submission

Badreddine Karoui badreddine.karoui at autodesk.com
Tue Jan 23 14:15:49 EST 2007

The following defects are fixed:


1- The SDF provider filter capability does not does not advertise that
it supports the spatial inside, this code change throws an exception if
the inside operator is used.

2- A dynamic cast failed on Linux and caused a Rtree based filter
optimization to be skipped. This change replaces the dynamic cast with a
hard cast and explicit FDO type checking. i.e it the Fdo object type is
as expected, we use hard cast.

3- The SDF filter is not being validated at execution time and exception
of not found property are being thrown when accessing the reader. A new
validator is added and called by select,update and delete when the
execute method is called. Also added a better message for the case of a
class not found.

Code modified:

   M /branches/3.2.x/Providers/SDF/Src/Message/SDFMessage.mc

   M /branches/3.2.x/Providers/SDF/Src/Provider/SdfDelete.cpp

   M /branches/3.2.x/Providers/SDF/Src/Provider/SdfInsert.cpp

   M /branches/3.2.x/Providers/SDF/Src/Provider/SdfQueryOptimizer.cpp

   M /branches/3.2.x/Providers/SDF/Src/Provider/SdfQueryOptimizer.h

   M /branches/3.2.x/Providers/SDF/Src/Provider/SdfSelect.cpp

   M /branches/3.2.x/Providers/SDF/Src/Provider/SdfUpdate.cpp


   M /trunk/Providers/SDF/Src/Message/SDFMessage.mc

   M /trunk/Providers/SDF/Src/Provider/SdfDelete.cpp

   M /trunk/Providers/SDF/Src/Provider/SdfInsert.cpp

   M /trunk/Providers/SDF/Src/Provider/SdfQueryOptimizer.cpp

   M /trunk/Providers/SDF/Src/Provider/SdfQueryOptimizer.h

   M /trunk/Providers/SDF/Src/Provider/SdfSelect.cpp

   M /trunk/Providers/SDF/Src/Provider/SdfUpdate.cpp



4- A deadlock can occur if an SDF reader is maintained open for an
extended period while a writer thread tries to make an update. This
deadlock happened when a grid control used a scrollable reader and left
it opens for the lifetime of the grid in order to scroll up and down.

The fix is to relax the use of the shared lock for the readers and only
apply the lock when loading the first page.

Code modified:

   M /branches/3.2.x/Thirdparty/Sqlite3.1.5/Src/pager.c


     M /trunk/Thirdparty/Sqlite3.1.5/Src/pager.c




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/fdo-internals/attachments/20070123/cbdfea31/attachment-0001.html

More information about the fdo-internals mailing list