[mapguide-commits] r5949 - trunk/MgDev/Server/src/Services/Feature

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Jun 27 21:37:00 EDT 2011


Author: hubu
Date: 2011-06-27 18:36:59 -0700 (Mon, 27 Jun 2011)
New Revision: 5949

Modified:
   trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp
   trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h
   trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.cpp
   trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.h
Log:
On behalf of: Spark Liu

Fix ticket 1728.
When executing command (by MgServerSelectFeatures or MgServerFeatureService.ExecuteSqlQuery), if fetch size is not specified, the DataCacheSize will be used as fetch size.

Modified: trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp	2011-06-24 15:25:06 UTC (rev 5948)
+++ trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp	2011-06-28 01:36:59 UTC (rev 5949)
@@ -62,6 +62,15 @@
 /// </summary>
 MgServerFeatureService::MgServerFeatureService() : MgFeatureService()
 {
+    // Get data cache size
+    MgConfiguration* config = MgConfiguration::GetInstance();
+    if(config)
+    {
+        config->GetIntValue(MgConfigProperties::FeatureServicePropertiesSection,
+                            MgConfigProperties::FeatureServicePropertyDataCacheSize,
+                            m_nDataCacheSize,
+                            MgConfigProperties::DefaultFeatureServicePropertyDataCacheSize);
+    }
 }
 
 
@@ -738,8 +747,7 @@
 {
     MG_LOG_TRACE_ENTRY(L"MgServerFeatureService::ExecuteSqlQuery()");
 
-    MgServerSqlCommand sqlCommand;
-    return sqlCommand.ExecuteQuery(resource, sqlStatement, NULL, NULL);
+    return ExecuteSqlQuery(resource, sqlStatement, NULL, NULL);
 }
 
 
@@ -785,8 +793,7 @@
 {
     MG_LOG_TRACE_ENTRY(L"MgServerFeatureService::ExecuteSqlQuery()");
 
-    MgServerSqlCommand sqlCommand;
-    return sqlCommand.ExecuteQuery(resource, sqlStatement, params, transaction);
+    return ExecuteSqlQuery(resource, sqlStatement, params, transaction, m_nDataCacheSize);
 }
 
 

Modified: trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h	2011-06-24 15:25:06 UTC (rev 5948)
+++ trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.h	2011-06-28 01:36:59 UTC (rev 5949)
@@ -1044,6 +1044,8 @@
     void FeatureSourceToString(MgResourceIdentifier* resource, string& resourceContent);
     //This method just used for OGC WFS certification
     STRING SchemaToXml(MgFeatureSchemaCollection* schema, CREFSTRING namespacePrefix, CREFSTRING namespaceUrl);
+
+    INT32 m_nDataCacheSize;
 };
 
 #endif

Modified: trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.cpp	2011-06-24 15:25:06 UTC (rev 5948)
+++ trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.cpp	2011-06-28 01:36:59 UTC (rev 5949)
@@ -47,14 +47,19 @@
     // Set a default join query batch size
     m_nJoinQueryBatchSize = MgConfigProperties::DefaultFeatureServicePropertyJoinQueryBatchSize;
 
-    // Get the join batch size
     MgConfiguration* config = MgConfiguration::GetInstance();
     if(config)
     {
+        // Get the join batch size
         config->GetIntValue(MgConfigProperties::FeatureServicePropertiesSection,
                             MgConfigProperties::FeatureServicePropertyJoinQueryBatchSize,
                             m_nJoinQueryBatchSize,
                             MgConfigProperties::DefaultFeatureServicePropertyJoinQueryBatchSize);
+        // Get data cache size
+        config->GetIntValue(MgConfigProperties::FeatureServicePropertiesSection,
+                            MgConfigProperties::FeatureServicePropertyDataCacheSize,
+                            m_nDataCacheSize,
+                            MgConfigProperties::DefaultFeatureServicePropertyDataCacheSize);
     }
 }
 
@@ -370,10 +375,11 @@
 // Fetch size
 void MgServerSelectFeatures::ApplyFetchSize()
 {
-    CHECKNULL(m_options, L"MgServerSelectFeatures.ApplyFetchSize");
     CHECKNULL(m_command, L"MgServerSelectFeatures.ApplyFetchSize");
-
-    m_command->SetFetchSize(m_options->GetFetchSize());
+    if(m_options)
+        m_command->SetFetchSize(m_options->GetFetchSize());
+    else
+        m_command->SetFetchSize(m_nDataCacheSize);
 }
 
 // Spatial Filter

Modified: trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.h
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.h	2011-06-24 15:25:06 UTC (rev 5948)
+++ trunk/MgDev/Server/src/Services/Feature/ServerSelectFeatures.h	2011-06-28 01:36:59 UTC (rev 5949)
@@ -89,6 +89,8 @@
 
     // This setting limits the batch size used by the join query algorithm
     INT32 m_nJoinQueryBatchSize;
+
+    INT32 m_nDataCacheSize;
 };
 
 #endif



More information about the mapguide-commits mailing list