[mapguide-commits] r6901 - in branches/2.4/MgDev/Desktop: MgDesktop/Services UnitTest

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sun Jul 15 07:44:19 PDT 2012


Author: jng
Date: 2012-07-15 07:44:18 -0700 (Sun, 15 Jul 2012)
New Revision: 6901

Modified:
   branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.cpp
   branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.h
   branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.cpp
   branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.h
   branches/2.4/MgDev/Desktop/UnitTest/main.cpp
Log:
#2074: Partition off existing select aggregate functionality into a private SelectAggregateNormal method. Add a stub SelectAggregateJoined method which is called if the class is an extended one.

Modified: branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.cpp
===================================================================
--- branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.cpp	2012-07-15 11:25:45 UTC (rev 6900)
+++ branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.cpp	2012-07-15 14:44:18 UTC (rev 6901)
@@ -3757,151 +3757,180 @@
         throw new MgInvalidArgumentException(L"MgdFeatureService::SelectAggregate", __LINE__, __WFILE__, NULL, L"", NULL);
 
     Ptr<MgFeatureConnection> connWrap = new MgFeatureConnection(resource);
+    bool bFeatureJoin = FindFeatureJoinProperties(resource, className);
+    if (bFeatureJoin)
+        reader = SelectAggregateJoined(connWrap, className, options);
+    else
+        reader = SelectAggregateNormal(connWrap, className, options);
+
+    // Successful operation
+    MG_LOG_OPERATION_MESSAGE_ADD_STRING(MgResources::Success.c_str());
+
+    MG_FEATURE_SERVICE_CHECK_CONNECTION_CATCH(resource, L"MgdFeatureService::SelectAggregate")
+
+    if (mgException != NULL)
     {
-        FdoPtr<FdoIConnection> conn = connWrap->GetConnection();
+        // Failed operation
+        MG_LOG_OPERATION_MESSAGE_ADD_STRING(MgResources::Failure.c_str());
+        MG_DESKTOP_LOG_EXCEPTION();
+    }
 
-        FdoPtr<FdoISelectAggregates> select = (FdoISelectAggregates*)conn->CreateCommand(FdoCommandType_SelectAggregates);
-        select->SetFeatureClassName(className.c_str());
+    // Add access log entry for operation
+    MG_LOG_OPERATION_MESSAGE_ACCESS_ENTRY();
 
-        STRING filter = options->GetFilter();
-        if (!filter.empty())
-	        select->SetFilter(filter.c_str());
+    MG_FEATURE_SERVICE_THROW()
 
-        Ptr<MgStringCollection> props = options->GetClassProperties();
-        Ptr<MgStringPropertyCollection> computed = options->GetComputedProperties();
+	return reader.Detach();
+}
 
-        INT32 propCount = props->GetCount();
-        INT32 compCount = computed->GetCount();
-		
-		bool bCustomPropertyFound = false;
-		FdoFunction* customFunc = NULL;
-		STRING customPropName;
+MgDataReader* MgdFeatureService::SelectAggregateNormal(MgFeatureConnection* connWrap, CREFSTRING className, MgFeatureAggregateOptions* options)
+{
+    Ptr<MgDataReader> reader;
+    MG_FEATURE_SERVICE_TRY()
+    
+    CHECKNULL(options, L"MgdFeatureService::SelectAggregateNormal");
+    CHECKNULL(connWrap, L"MgdFeatureService::SelectAggregateNormal");
+    FdoPtr<FdoIConnection> conn = connWrap->GetConnection();
 
-        FdoPtr<FdoIdentifierCollection> fdoProps = select->GetPropertyNames();
-        if (propCount > 0)
+    FdoPtr<FdoISelectAggregates> select = (FdoISelectAggregates*)conn->CreateCommand(FdoCommandType_SelectAggregates);
+    select->SetFeatureClassName(className.c_str());
+
+    STRING filter = options->GetFilter();
+    if (!filter.empty())
+        select->SetFilter(filter.c_str());
+
+    Ptr<MgStringCollection> props = options->GetClassProperties();
+    Ptr<MgStringPropertyCollection> computed = options->GetComputedProperties();
+
+    INT32 propCount = props->GetCount();
+    INT32 compCount = computed->GetCount();
+	
+    bool bCustomPropertyFound = false;
+    FdoFunction* customFunc = NULL;
+    STRING customPropName;
+
+    FdoPtr<FdoIdentifierCollection> fdoProps = select->GetPropertyNames();
+    if (propCount > 0)
+    {
+        for (INT32 i = 0; i < propCount; i++)
         {
-	        for (INT32 i = 0; i < propCount; i++)
-	        {
-		        FdoPtr<FdoIdentifier> name = FdoIdentifier::Create(props->GetItem(i).c_str());
-		        fdoProps->Add(name);
-	        }
+            FdoPtr<FdoIdentifier> name = FdoIdentifier::Create(props->GetItem(i).c_str());
+            fdoProps->Add(name);
         }
-        if (compCount > 0)
+    }
+    if (compCount > 0)
+    {
+        for (INT32 i = 0; i < compCount; i++)
         {
-	        for (INT32 i = 0; i < compCount; i++)
-	        {
-		        Ptr<MgStringProperty> comp = computed->GetItem(i);
-				STRING aliasName = comp->GetName();
-		        FdoPtr<FdoExpression> expr = FdoExpression::Parse(comp->GetValue().c_str());
-		        
-				if (ContainsUdf(connWrap, expr))
-				{
-					// If property is already found, two custom properties are not supported and therefore throw exception
-					if (bCustomPropertyFound)
-					{
-						STRING message = MgFeatureUtil::GetMessage(L"MgOnlyOnePropertyAllowed");
+            Ptr<MgStringProperty> comp = computed->GetItem(i);
+		    STRING aliasName = comp->GetName();
+            FdoPtr<FdoExpression> expr = FdoExpression::Parse(comp->GetValue().c_str());
+	        
+		    if (ContainsUdf(connWrap, expr))
+		    {
+			    // If property is already found, two custom properties are not supported and therefore throw exception
+			    if (bCustomPropertyFound)
+			    {
+				    STRING message = MgFeatureUtil::GetMessage(L"MgOnlyOnePropertyAllowed");
 
-						MgStringCollection arguments;
-						arguments.Add(message);
-						throw new MgFeatureServiceException(L"MgdFeatureService::SelectAggregate", __LINE__, __WFILE__, &arguments, L"", NULL);
-					}
+				    MgStringCollection arguments;
+				    arguments.Add(message);
+				    throw new MgFeatureServiceException(L"MgdFeatureService::SelectAggregate", __LINE__, __WFILE__, &arguments, L"", NULL);
+			    }
 
-					// Downcast to FdoFunction
-					FdoFunction* function = dynamic_cast<FdoFunction*>(expr.p);
+			    // Downcast to FdoFunction
+			    FdoFunction* function = dynamic_cast<FdoFunction*>(expr.p);
 
-					if (function != NULL)
-					{
-						FdoString* expName = aliasName.c_str();
-						if (expName != NULL)
-						{
-							FdoPtr<FdoExpressionCollection> exprCol = function->GetArguments();
-							FdoInt32 cnt = exprCol->GetCount();
-							FdoPtr<FdoExpression> expr;
-							if (cnt > 0)
-							{
-								expr = exprCol->GetItem(0);   // Property Name
-							}
+			    if (function != NULL)
+			    {
+				    FdoString* expName = aliasName.c_str();
+				    if (expName != NULL)
+				    {
+					    FdoPtr<FdoExpressionCollection> exprCol = function->GetArguments();
+					    FdoInt32 cnt = exprCol->GetCount();
+					    FdoPtr<FdoExpression> expr;
+					    if (cnt > 0)
+					    {
+						    expr = exprCol->GetItem(0);   // Property Name
+					    }
 
-							// Just pass in the property name
-							// FdoPtr<FdoComputedIdentifier> fdoIden = FdoComputedIdentifier::Create(expName, expr);
+					    // Just pass in the property name
+					    // FdoPtr<FdoComputedIdentifier> fdoIden = FdoComputedIdentifier::Create(expName, expr);
 
-							// NOTE: Each provider has its own rule for supporting computed properties, select and select aggregate
-							// functionality. Therefore we just work with simple select command, fetch the property and do the needed
-							// calculations. Therefore, we are not adding them as computed properties.
+					    // NOTE: Each provider has its own rule for supporting computed properties, select and select aggregate
+					    // functionality. Therefore we just work with simple select command, fetch the property and do the needed
+					    // calculations. Therefore, we are not adding them as computed properties.
 
-							FdoIdentifier* propName = dynamic_cast<FdoIdentifier*>(expr.p);
+					    FdoIdentifier* propName = dynamic_cast<FdoIdentifier*>(expr.p);
 
-							if (propName != NULL)
-								fdoProps->Add(propName);
+					    if (propName != NULL)
+						    fdoProps->Add(propName);
 
-							customPropName = aliasName;
-							bCustomPropertyFound = true;
-							customFunc = FDO_SAFE_ADDREF(function);
-						}
-					}
-				}
-				else
-				{
-					FdoPtr<FdoComputedIdentifier> name = FdoComputedIdentifier::Create(comp->GetName().c_str(), expr);
-					fdoProps->Add(name);
-				}
-	        }
+					    customPropName = aliasName;
+					    bCustomPropertyFound = true;
+					    customFunc = FDO_SAFE_ADDREF(function);
+				    }
+			    }
+		    }
+		    else
+		    {
+			    FdoPtr<FdoComputedIdentifier> name = FdoComputedIdentifier::Create(comp->GetName().c_str(), expr);
+			    fdoProps->Add(name);
+		    }
         }
+    }
 
-        if (options->GetDistinct())
-	        select->SetDistinct(true);
+    if (options->GetDistinct())
+        select->SetDistinct(true);
 
-        STRING groupFilter = options->GetGroupFilter();
-        if (!groupFilter.empty())
+    STRING groupFilter = options->GetGroupFilter();
+    if (!groupFilter.empty())
+    {
+        FdoPtr<FdoFilter> grpFilter = FdoFilter::Parse(groupFilter.c_str());
+        select->SetGroupingFilter(grpFilter);
+    }
+    FdoPtr<FdoIdentifierCollection> fdoGroupBy = select->GetGrouping();
+    Ptr<MgStringCollection> mgGroupBy = options->GetGroupingProperties();
+    if (NULL != mgGroupBy && mgGroupBy->GetCount() > 0)
+    {
+        for (INT32 i = 0; i < mgGroupBy->GetCount(); i++)
         {
-	        FdoPtr<FdoFilter> grpFilter = FdoFilter::Parse(groupFilter.c_str());
-	        select->SetGroupingFilter(grpFilter);
-        }
-        FdoPtr<FdoIdentifierCollection> fdoGroupBy = select->GetGrouping();
-        Ptr<MgStringCollection> mgGroupBy = options->GetGroupingProperties();
-        if (NULL != mgGroupBy && mgGroupBy->GetCount() > 0)
-        {
-	        for (INT32 i = 0; i < mgGroupBy->GetCount(); i++)
-	        {
-		        STRING name = mgGroupBy->GetItem(i);
-		        FdoPtr<FdoIdentifier> fdoId = FdoIdentifier::Create(name.c_str());
+            STRING name = mgGroupBy->GetItem(i);
+            FdoPtr<FdoIdentifier> fdoId = FdoIdentifier::Create(name.c_str());
 
-		        fdoGroupBy->Add(fdoId);
-	        }
+            fdoGroupBy->Add(fdoId);
         }
+    }
 
-        FdoPtr<FdoIDataReader> fdoReader = select->Execute();
-		if (bCustomPropertyFound) 
-		{
-			Ptr<MgReader> origReader = new MgdDataReader(connWrap, fdoReader);
-			Ptr<MgDataReader> customReader = dynamic_cast<MgDataReader*>(this->GetCustomReader(origReader, customFunc, customPropName));
-			origReader->Close();
-			reader = customReader;
-		}
-		else
-		{
-			reader = new MgdDataReader(connWrap, fdoReader);
-		}
+    FdoPtr<FdoIDataReader> fdoReader = select->Execute();
+    if (bCustomPropertyFound) 
+    {
+	    Ptr<MgReader> origReader = new MgdDataReader(connWrap, fdoReader);
+	    Ptr<MgDataReader> customReader = dynamic_cast<MgDataReader*>(this->GetCustomReader(origReader, customFunc, customPropName));
+	    origReader->Close();
+	    reader = customReader;
     }
+    else
+    {
+	    reader = new MgdDataReader(connWrap, fdoReader);
+    }
 
-    // Successful operation
-    MG_LOG_OPERATION_MESSAGE_ADD_STRING(MgResources::Success.c_str());
+    MG_FEATURE_SERVICE_CATCH_AND_THROW(L"MgdFeatureService::SelectAggregateNormal")
 
-    MG_FEATURE_SERVICE_CHECK_CONNECTION_CATCH(resource, L"MgdFeatureService::SelectAggregate")
+    return reader.Detach();
+}
 
-    if (mgException != NULL)
-    {
-        // Failed operation
-        MG_LOG_OPERATION_MESSAGE_ADD_STRING(MgResources::Failure.c_str());
-        MG_DESKTOP_LOG_EXCEPTION();
-    }
+MgDataReader* MgdFeatureService::SelectAggregateJoined(MgFeatureConnection* connWrap, CREFSTRING className, MgFeatureAggregateOptions* options)
+{
+    Ptr<MgDataReader> reader;
 
-    // Add access log entry for operation
-    MG_LOG_OPERATION_MESSAGE_ACCESS_ENTRY();
+    MG_FEATURE_SERVICE_TRY()
 
-    MG_FEATURE_SERVICE_THROW()
+    NOT_IMPLEMENTED(L"MgdFeatureService::SelectAggregateJoined");
 
-	return reader.Detach();
+    MG_FEATURE_SERVICE_CATCH_AND_THROW(L"MgdFeatureService::SelectAggregateJoined")
+
+    return reader.Detach();
 }
 
 // Convert reader into a custom MgDataReader

Modified: branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.h
===================================================================
--- branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.h	2012-07-15 11:25:45 UTC (rev 6900)
+++ branches/2.4/MgDev/Desktop/MgDesktop/Services/FeatureService.h	2012-07-15 14:44:18 UTC (rev 6901)
@@ -273,6 +273,14 @@
 											bool withLock,
                                             bool asScrollable);
 
+    MgDataReader* SelectAggregateNormal(MgFeatureConnection* conn,
+                                        CREFSTRING className,
+                                        MgFeatureAggregateOptions* options);
+
+    MgDataReader* SelectAggregateJoined(MgFeatureConnection* conn,
+                                        CREFSTRING className,
+                                        MgFeatureAggregateOptions* options);
+
 	bool ContainsUdf(MgFeatureConnection* conn, FdoExpression* expression);
 	bool IsCustomFunction(FdoFunction* fdoFunc);
 	MgReader* GetCustomReader(MgReader* reader, FdoFunction* customFunc, CREFSTRING propertyName);

Modified: branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.cpp
===================================================================
--- branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.cpp	2012-07-15 11:25:45 UTC (rev 6900)
+++ branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.cpp	2012-07-15 14:44:18 UTC (rev 6901)
@@ -1453,21 +1453,22 @@
             throw new MgServiceNotAvailableException(L"TestFeatureService.TestCase_SelectAggregate", __LINE__, __WFILE__, NULL, L"", NULL);
         }
 
+        Ptr<MgDataReader> reader;
         Ptr<MgResourceIdentifier> resource = new MgResourceIdentifier();
         STRING className = L"";
         Ptr<MgFeatureAggregateOptions> options = new MgFeatureAggregateOptions();
-        CPPUNIT_ASSERT_THROW_MG(pService->SelectAggregate(resource, className, options), MgInvalidRepositoryTypeException*);
+        CPPUNIT_ASSERT_THROW_MG(reader = pService->SelectAggregate(resource, className, options), MgInvalidRepositoryTypeException*);
 
         resource = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_Parcels.MapDefinition");
-        CPPUNIT_ASSERT_THROW_MG(pService->SelectAggregate(resource, className, options), MgInvalidResourceTypeException*);
+        CPPUNIT_ASSERT_THROW_MG(reader = pService->SelectAggregate(resource, className, options), MgInvalidResourceTypeException*);
 
         resource = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_Parcels.FeatureSource");
-        CPPUNIT_ASSERT_THROW_MG(pService->SelectAggregate(resource, className, options), MgInvalidArgumentException*);
+        CPPUNIT_ASSERT_THROW_MG(reader = pService->SelectAggregate(resource, className, options), MgInvalidArgumentException*);
 
         resource = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_Parcels.FeatureSource");
         className = L"Parcels";
         options->SetFilter(L"Autogenerated_SDF_ID = 1");
-        Ptr<MgDataReader> reader = pService->SelectAggregate(resource, className, options);
+        reader = pService->SelectAggregate(resource, className, options);
         bool bResult = reader->ReadNext();
         reader->Close();
         CPPUNIT_ASSERT(bResult);
@@ -2739,6 +2740,14 @@
 
         Ptr<MgClassDefinition> clsDef = pService->GetClassDefinition(lFeatureSource, L"SHP_Schema", L"Ext1");
         CPPUNIT_ASSERT(NULL != clsDef.p);
+
+        //Custom aggregates should also work
+        Ptr<MgFeatureAggregateOptions> agg = new MgFeatureAggregateOptions();
+        agg->AddComputedProperty(L"EXTENT", L"EXTENTS(SHPGEOM)");
+        Ptr<MgDataReader> dr = pService->SelectAggregate(lFeatureSource, L"Ext1", agg);
+        bool bRead = dr->ReadNext();
+        dr->Close();
+        CPPUNIT_ASSERT(bRead);
     }
     catch(MgException* e)
     {
@@ -3611,6 +3620,114 @@
     }
 }
 
+void TestFeatureService::TestCase_BenchmarkSqliteAggregateJoin()
+{
+    try
+    {
+        Ptr<MgServiceFactory> fact = new MgServiceFactory();
+        Ptr<MgResourceService> pService = dynamic_cast<MgResourceService*>(fact->CreateService(MgServiceType::ResourceService));
+        if (pService == 0)
+        {
+            throw new MgServiceNotAvailableException(L"TestFeatureService::TestCase_BenchmarkSqliteAggregateJoin",
+                __LINE__, __WFILE__, NULL, L"", NULL);
+        }
+        Ptr<MgFeatureService> featSvc = dynamic_cast<MgFeatureService*>(fact->CreateService(MgServiceType::FeatureService));
+        if (featSvc == 0)
+        {
+            throw new MgServiceNotAvailableException(L"TestFeatureService::TestCase_BenchmarkSqliteAggregateJoin",
+                __LINE__, __WFILE__, NULL, L"", NULL);
+        }
+
+        Ptr<MgResourceIdentifier> fsId = new MgResourceIdentifier(L"Library://UnitTests/Data/ParcelsJoinTestSQLite.FeatureSource");
+        CPPUNIT_ASSERT(featSvc->TestConnection(fsId));
+        Ptr<MgDataReader> reader;
+
+        // ----- Start the tests ------- //
+        Ptr<MgFeatureAggregateOptions> aggOpts = new MgFeatureAggregateOptions();
+        aggOpts->AddComputedProperty(L"Extents", L"SpatialExtents(Geometry)");
+        aggOpts->AddComputedProperty(L"TotalCount", L"Count(SdfId)");
+
+        ACE_DEBUG((LM_INFO, ACE_TEXT("\nTestFeatureService::TestCase_BenchmarkSqliteAggregateJoin() - Inner Join \n")));
+        long lStart = GetTickCount();
+        long total = 0L;
+        int iterations = 0;
+
+        reader = featSvc->SelectAggregate(fsId, L"ParcelsInner", aggOpts);
+        while(reader->ReadNext())
+        {
+            Ptr<MgByteReader> br = reader->GetGeometry(L"Extents");
+            total = reader->GetInt64(L"TotalCount");
+            iterations++;
+        }
+        reader->Close();
+        CPPUNIT_ASSERT(iterations == 1);
+
+        ACE_DEBUG((LM_INFO, ACE_TEXT("  Execution Time (%d results): = %6.4f (s)\n"), total, ((GetTickCount()-lStart)/1000.0) ));
+        ACE_DEBUG((LM_INFO, ACE_TEXT("\nTestFeatureService::TestCase_BenchmarkSqliteAggregateJoin() - Left Outer Join \n")));
+        lStart = GetTickCount();
+        iterations = 0L;
+
+        reader = featSvc->SelectAggregate(fsId, L"ParcelsLeftOuter", aggOpts);
+        while(reader->ReadNext())
+        {
+            Ptr<MgByteReader> br = reader->GetGeometry(L"Extents");
+            total = reader->GetInt64(L"TotalCount");
+            iterations++;
+        }
+        reader->Close();
+        CPPUNIT_ASSERT(iterations == 1L);
+
+        ACE_DEBUG((LM_INFO, ACE_TEXT("  Execution Time (%d results): = %6.4f (s)\n"), total, ((GetTickCount()-lStart)/1000.0) ));
+        ACE_DEBUG((LM_INFO, ACE_TEXT("\nTestFeatureService::TestCase_BenchmarkSqliteAggregateJoin() - Inner Join (Forced 1:1) \n")));
+        lStart = GetTickCount();
+        iterations = 0L;
+
+        reader = featSvc->SelectAggregate(fsId, L"ParcelsInnerOneToOne", aggOpts);
+        while(reader->ReadNext())
+        {
+            Ptr<MgByteReader> br = reader->GetGeometry(L"Extents");
+            total = reader->GetInt64(L"TotalCount");
+            iterations++;
+        }
+        reader->Close();
+        CPPUNIT_ASSERT(iterations == 1L);
+
+        ACE_DEBUG((LM_INFO, ACE_TEXT("  Execution Time (%d results): = %6.4f (s)\n"), total, ((GetTickCount()-lStart)/1000.0) ));
+        ACE_DEBUG((LM_INFO, ACE_TEXT("\nTestFeatureService::TestCase_BenchmarkSqliteAggregateJoin() - Left Outer Join (Forced 1:1) \n")));
+        lStart = GetTickCount();
+        iterations = 0L;
+
+        reader = featSvc->SelectAggregate(fsId, L"ParcelsLeftOuterOneToOne", aggOpts);
+        while(reader->ReadNext())
+        {
+            Ptr<MgByteReader> br = reader->GetGeometry(L"Extents");
+            total = reader->GetInt64(L"TotalCount");
+            iterations++;
+        }
+        reader->Close();
+        CPPUNIT_ASSERT(iterations == 1L);
+
+        ACE_DEBUG((LM_INFO, ACE_TEXT("  Execution Time (%d results): = %6.4f (s)\n"), total, ((GetTickCount()-lStart)/1000.0) ));
+    }
+    catch(MgException* e)
+    {
+        STRING message = e->GetDetails(TEST_LOCALE);
+        SAFE_RELEASE(e);
+        CPPUNIT_FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+    }
+    catch(FdoException* e)
+    {
+        STRING message = L"FdoException occurred: ";
+        message += e->GetExceptionMessage();
+        FDO_SAFE_RELEASE(e);
+        CPPUNIT_FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+    }
+    catch(...)
+    {
+        throw;
+    }
+}
+
 void TestFeatureService::TestCase_BenchmarkMergeSortJoin()
 {
     try

Modified: branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.h
===================================================================
--- branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.h	2012-07-15 11:25:45 UTC (rev 6900)
+++ branches/2.4/MgDev/Desktop/UnitTest/TestFeatureService.h	2012-07-15 14:44:18 UTC (rev 6901)
@@ -68,6 +68,7 @@
     CPPUNIT_TEST(TestCase_LayerSelectScrollable);
 
     CPPUNIT_TEST(TestCase_BenchmarkSqliteJoin);
+    CPPUNIT_TEST(TestCase_BenchmarkSqliteAggregateJoin);
     CPPUNIT_TEST(TestCase_BenchmarkSdfJoin);
     CPPUNIT_TEST(TestCase_BenchmarkMergeSortJoin);
     CPPUNIT_TEST(TestCase_BenchmarkBatchSortedBlockJoin);
@@ -120,6 +121,7 @@
 
     void TestCase_BenchmarkSdfJoin();
     void TestCase_BenchmarkSqliteJoin();
+    void TestCase_BenchmarkSqliteAggregateJoin();
     void TestCase_BenchmarkMergeSortJoin();
     void TestCase_BenchmarkBatchSortedBlockJoin();
     void TestCase_BenchmarkNestedLoopsSortedBlockJoin();

Modified: branches/2.4/MgDev/Desktop/UnitTest/main.cpp
===================================================================
--- branches/2.4/MgDev/Desktop/UnitTest/main.cpp	2012-07-15 11:25:45 UTC (rev 6900)
+++ branches/2.4/MgDev/Desktop/UnitTest/main.cpp	2012-07-15 14:44:18 UTC (rev 6901)
@@ -25,13 +25,13 @@
 */
 
 #define TEST_COORDINATE_SYSTEM  0
-#define TEST_LOG_MANAGER        1
-#define TEST_RESOURCE_SERVICE   1
+#define TEST_LOG_MANAGER        0
+#define TEST_RESOURCE_SERVICE   0
 #define TEST_FEATURE_SERVICE    1
-#define TEST_MAPPING_SERVICE    1
-#define TEST_PROFILING_SERVICE  1
-#define TEST_RENDERING_SERVICE  1
-#define TEST_TILE_SERVICE       1
+#define TEST_MAPPING_SERVICE    0
+#define TEST_PROFILING_SERVICE  0
+#define TEST_RENDERING_SERVICE  0
+#define TEST_TILE_SERVICE       0
 
 int main(int argc, char** argv)
 {



More information about the mapguide-commits mailing list