Skip to content

Commit f42d7d1

Browse files
authored
Allow sorting in MSSQL with WFS (#5833)
1 parent 65b1ba9 commit f42d7d1

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

maplayer.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1680,7 +1680,7 @@ int msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int
16801680
int msLayerSupportsSorting(layerObj *layer)
16811681
{
16821682
if (layer && (
1683-
(layer->connectiontype == MS_OGR) || (layer->connectiontype == MS_POSTGIS) || (layer->connectiontype == MS_ORACLESPATIAL) || ((layer->connectiontype == MS_PLUGIN) && (strstr(layer->plugin_library,"msplugin_oracle") != NULL))
1683+
(layer->connectiontype == MS_OGR) || (layer->connectiontype == MS_POSTGIS) || (layer->connectiontype == MS_ORACLESPATIAL) || ((layer->connectiontype == MS_PLUGIN) && (strstr(layer->plugin_library,"msplugin_oracle") != NULL)) || ((layer->connectiontype == MS_PLUGIN) && (strstr(layer->plugin_library,"msplugin_mssql2008") != NULL))
16841684
)
16851685
)
16861686
return MS_TRUE;

mapmssql2008.c

+14-1
Original file line numberDiff line numberDiff line change
@@ -1506,8 +1506,21 @@ static int prepare_database(layerObj *layer, rectObj rect, char **query_string)
15061506
query = msStringConcatenate(query, box3d);
15071507
query = msStringConcatenate(query, ") = 1 ");
15081508

1509-
if (layerinfo->sort_spec)
1509+
if (layerinfo->sort_spec) {
15101510
query = msStringConcatenate(query, layerinfo->sort_spec);
1511+
}
1512+
1513+
/* Add extra sort by */
1514+
if( layer->sortBy.nProperties > 0 ) {
1515+
char* pszTmp = msLayerBuildSQLOrderBy(layer);
1516+
if (layerinfo->sort_spec)
1517+
query = msStringConcatenate(query, ", ");
1518+
else
1519+
query = msStringConcatenate(query, " ORDER BY ");
1520+
query = msStringConcatenate(query, pszTmp);
1521+
msFree(pszTmp);
1522+
}
1523+
15111524

15121525
if (layer->debug) {
15131526
msDebug("query:%s\n", query);

0 commit comments

Comments
 (0)