[mapguide-commits] r6363 - in
trunk/MgDev/Server/src/Gws/GwsQueryEngine: . inc
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sat Dec 24 09:20:28 EST 2011
Author: jng
Date: 2011-12-24 06:20:28 -0800 (Sat, 24 Dec 2011)
New Revision: 6363
Modified:
trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsFeatureQueryResults.cpp
trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsPreparedFeatureQuery.cpp
trunk/MgDev/Server/src/Gws/GwsQueryEngine/inc/GwsQuery.h
Log:
#1888: The prepared GWS feature query did not create the FDO extended select command, despite the fixed sortability check actually now checking support for this command. This submission updates the prepared feature query to create this command.
Modified: trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsFeatureQueryResults.cpp
===================================================================
--- trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsFeatureQueryResults.cpp 2011-12-23 16:41:25 UTC (rev 6362)
+++ trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsFeatureQueryResults.cpp 2011-12-24 14:20:28 UTC (rev 6363)
@@ -72,8 +72,10 @@
m_reader = pReader;
m_bScrollableReader = bIsScrollable;
-
- if(dynamic_cast<SdfIScrollableFeatureReader*>(pReader) != NULL)
+
+ if(dynamic_cast<FdoIScrollableFeatureReader*>(pReader) != NULL)
+ m_extProviderType = eFDO;
+ else if(dynamic_cast<SdfIScrollableFeatureReader*>(pReader) != NULL)
m_extProviderType = eSDF;
else if(dynamic_cast<ShpIScrollableFeatureReader*>(pReader) != NULL)
m_extProviderType = eSHP;
Modified: trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsPreparedFeatureQuery.cpp
===================================================================
--- trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsPreparedFeatureQuery.cpp 2011-12-23 16:41:25 UTC (rev 6362)
+++ trunk/MgDev/Server/src/Gws/GwsQueryEngine/GwsPreparedFeatureQuery.cpp 2011-12-24 14:20:28 UTC (rev 6363)
@@ -34,6 +34,7 @@
//operation. Each executed command prints [Query] to stdout
//
//#define TRACE_GWS_QUERY
+//#define DEBUG_PREPARED_FEATURE_QUERY
/////////////////////////////////////////////////////////////////////
//
@@ -204,6 +205,13 @@
FdoInt32* pTypes = ptrCap->GetCommands(size);
for(int i = 0; i < size; i++ )
{
+ if( pTypes[i] == FdoCommandType_ExtendedSelect)
+ {
+ m_bExtendedQuerySupported = true;
+ selcmd = (FdoIExtendedSelect *) m_connection->CreateCommand (FdoCommandType_ExtendedSelect);
+ mExSelProv = eFDO;
+ break;
+ }
if( pTypes[i] == SdfCommandType_ExtendedSelect)
{
m_bExtendedQuerySupported = true;
@@ -232,8 +240,13 @@
}
if(m_bExtendedQuerySupported)
{
- if(mExSelProv == eSDF)
+ if(mExSelProv == eFDO)
{
+ FdoIExtendedSelect* pExSelCmd = (FdoIExtendedSelect*)selcmd;
+ pExSelCmd->SetOrderingOption(orderBy->GetString(0), orderingOption);
+ }
+ else if(mExSelProv == eSDF)
+ {
SdfIExtendedSelect* pExSelCmd = (SdfIExtendedSelect*)selcmd;
pExSelCmd->SetOrderingOption(orderBy->GetString(0), orderingOption);
}
@@ -411,7 +424,9 @@
FdoPtr<FdoIFeatureReader> reader;
if(bScrollable && m_bExtendedQuerySupported)
{
- if(mExSelProv == eSDF)
+ if (mExSelProv == eFDO)
+ reader = ((FdoIExtendedSelect *)m_pCommand.p)->ExecuteScrollable();
+ else if(mExSelProv == eSDF)
reader = ((SdfIExtendedSelect *)m_pCommand.p)->ExecuteScrollable();
else if(mExSelProv == eSHP)
reader = ((ShpIExtendedSelect *)m_pCommand.p)->ExecuteScrollable();
@@ -424,6 +439,21 @@
else
bGotScrollableIterator = true;
+ #ifdef DEBUG_PREPARED_FEATURE_QUERY
+ if(bScrollable && m_bExtendedQuerySupported)
+ {
+ std::string sCommandType;
+ if (mExSelProv == eFDO)
+ sCommandType = "FdoIExtendedSelect";
+ else if(mExSelProv == eSDF)
+ sCommandType = "SdfIExtendedSelect";
+ else if(mExSelProv == eSHP)
+ sCommandType = "ShpIExtendedSelect";
+
+ if (!sCommandType.empty())
+ printf("Extended query type is: %s\n", sCommandType.c_str());
+ }
+ #endif
CGwsFeatureIterator * pResults = CreateFeatureIterator (eGwsFeatureIterator);
stat = pResults->InitializeReader (reader, m_pQuery, this, bGotScrollableIterator);
if (! IGWSException::IsError (stat)) {
Modified: trunk/MgDev/Server/src/Gws/GwsQueryEngine/inc/GwsQuery.h
===================================================================
--- trunk/MgDev/Server/src/Gws/GwsQueryEngine/inc/GwsQuery.h 2011-12-23 16:41:25 UTC (rev 6362)
+++ trunk/MgDev/Server/src/Gws/GwsQueryEngine/inc/GwsQuery.h 2011-12-24 14:20:28 UTC (rev 6363)
@@ -269,7 +269,7 @@
GWSCoordinateSystem m_csname;
};
-typedef enum _GwsExtendedSelProvider { eSDF, eSHP, eCGFI } EGwsExtendedSelProvider;
+typedef enum _GwsExtendedSelProvider { eSDF, eSHP, eCGFI, eFDO } EGwsExtendedSelProvider;
///////////////////////////////////////////////////////////////////////////////
More information about the mapguide-commits
mailing list