Changes between Version 7 and Version 8 of MapGuideRfc46


Ignore:
Timestamp:
Mar 19, 2008, 3:13:59 PM (16 years ago)
Author:
ronnielouie
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc46

    v7 v8  
    2727== Motivation ==
    2828
    29 The current MgSelectionBase::GenerateFilter() API returns a string representing a filter for a set of selected features. 
     29The current MgSelectionBase::!GenerateFilter() API returns a string representing a filter for a set of selected features. 
    3030
    3131{{{
     
    3333}}}
    3434
    35 This filter string would look something like: "FeatId = 1109 OR FeatId = 1130 OR FeatId = 2065" such that each of the IDs of the selected features is explicitly specified.  The string is then passed as the filter to MgFeatureService::SelectFeatures() to query the datastore.   
     35This filter string would look something like: "!FeatId = 1109 OR !FeatId = 1130 OR !FeatId = 2065" such that each of the IDs of the selected features is explicitly specified.  The string is then passed as the filter to MgFeatureService::!SelectFeatures() to query the datastore.   
    3636
    3737A selection can contain an unlimited number of features, which means that the filter will contain an unlimited number of OR conditions.  However, most datastores have a finite number of OR's that can be supported, and some data sources, such as Access databases, are limited to a relatively small number or OR conditions. 
    3838
    39 Results can be unpredictable when the limit is exceeded due to buffer overruns and/or memory corruption leading to instability in the MapGuide Server.  In an effort to improve stability, GenerateFilter() was modified to return a string representing a smaller, but incomplete subset of the total selected features.
     39Results can be unpredictable when the limit is exceeded due to buffer overruns and/or memory corruption leading to instability in the !MapGuide Server.  In an effort to improve stability, !GenerateFilter() was modified to return a string representing a smaller, but incomplete subset of the total selected features.
    4040
    4141== Proposed Solution ==
     
    5353== Implications ==
    5454
    55 Code that currently calls MgSelectionBase::GenerateFilter() should be updated to use MgSelectionBase::GenerateFilters() instead, and the caller will be required to process all the filters in the collection to correctly query the complete selection set. 
     55Code that currently calls MgSelectionBase::!GenerateFilter() should be updated to use MgSelectionBase::!GenerateFilters() instead, and the caller will be required to process all the filters in the collection to correctly query the complete selection set. 
    5656
    57 PHP code example using existing MgSelectionBase::GenerateFilter() API
     57PHP code example using existing MgSelectionBase::!GenerateFilter() API
    5858{{{
    5959            $filter = $sel->GenerateFilter($selLayer, $featureClassName);
     
    7575}}}
    7676
    77 PHP code example using NEW MgSelectionBase::GenerateFilters() API
     77PHP code example using NEW MgSelectionBase::!GenerateFilters() API
    7878{{{
    7979            $filterCollection = $sel->GenerateFilters($selLayer, $featureClassName, GetMaxSelectionSize());
     
    9898}}}
    9999
    100 The old GenerateFilter() API should be deprecated.  In places where a relatively small number of features are expected in a selection (i.e. less than the value specified by SelectionFilterSize in serverconfig.ini/webconfig.ini), MgSelectionBase::GenerateFilter() may still be safely used to return correct results.
     100The old !GenerateFilter() API should be deprecated.  In places where a relatively small number of features are expected in a selection (i.e. less than the value specified by !SelectionFilterSize in serverconfig.ini/webconfig.ini), MgSelectionBase::!GenerateFilter() may still be safely used to return correct results.
    101101
    102102This is a new API which will need to be documented.