--- a/metadataengine/server/src/mdsfindsqlclause.cpp Wed Apr 14 16:24:03 2010 +0300
+++ b/metadataengine/server/src/mdsfindsqlclause.cpp Tue Apr 27 17:05:23 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() +