metadataengine/server/src/mdsfindsqlclause.cpp
changeset 23 33ae025ac1e8
parent 21 50bf9db68373
child 25 8e4539ab1889
--- a/metadataengine/server/src/mdsfindsqlclause.cpp	Fri Apr 16 15:23:55 2010 +0300
+++ b/metadataengine/server/src/mdsfindsqlclause.cpp	Mon May 03 12:55:01 2010 +0300
@@ -15,6 +15,7 @@
 */
 
 // INCLUDE FILES
+#include <mdequery.h>
 #include "mdsfindsqlclause.h"
 #include "mdsfindsqlclausedef.h"
 #include "mdsclausebuffer.h"
@@ -2642,10 +2643,13 @@
 			{
 			case EQueryResultModeItem:
 			case EQueryResultModeId:
+                {
+                // "GROUP BY BO.ObjectId "
+                iQueryBuf->AppendL( KGroupByObjectId );
+                }
+                break;
 			case EQueryResultModeCount:
 				{
-				// "GROUP BY BO.ObjectId "
-				iQueryBuf->AppendL( KGroupByObjectId );
 				}
 				break;
 
@@ -2664,6 +2668,12 @@
 //
 void CMdSFindSqlClause::AppendOrderByL()
     {
+    if( iSearchCriteria->iQueryResultType == EQueryResultModeCount )
+        {
+        // No need to sort or group if only one count is returned
+        return;
+        }
+    
 	if( iSearchCriteria->iOrderRules.iPtr.iCount > 0 )
 		{
 		iQueryBuf->AppendL( KOrderBy );
@@ -2828,7 +2838,7 @@
     	iQueryBuf->AppendL( KComma );
     	iQueryBuf->BufferL().AppendNum( iSearchCriteria->iOffset );
     	}
-    else if ( iSearchCriteria->iLimit != KMaxTUint32 )
+    else if ( iSearchCriteria->iLimit != KMdEQueryDefaultMaxCount )
     	{
     	// 10 is maximum length of text format TUint32
     	iQueryBuf->ReserveSpaceL( iQueryBuf->ConstBufferL().Length() +