[mapserver-users] wfs and oracle spatial

Holger Porath porath at web.de
Thu Sep 23 06:16:29 EDT 2010


Hi list,

we are having issues with using mapserver 5.6.5 as a wfs together with  
oracle. When we submit a wfs getfeature filter request mapserver  
doesn't use the filter in the sql statement. It just searches all the  
objects in the database and applies the filter on the result. This is  
very inefficient and even leads to timeouts.

Here is our filter request:

Filter=%3CFilter%3E%3CPropertyIsLike%20wildCard%3D 
%22%25%22%20singleChar%3D%22%3F%22%20escape%3D%22ESC%22%3E 
%3CPropertyName%3EFS_FSZ%3C%2FPropertyName%3E%3CLiteral%3E111%3C 
%2FLiteral%3E%3C%2FPropertyIsLike%3E%3C%2FFilter%3E

As you can see the filter for the attribute "FS_FSZ" is set to "111".

The debug log shows that this isn't used in the sql at all: Using this  
Sql to retrieve the data : SELECT fs_id, FS_GKNR, FS_FLNR, FS_FSZ,  
FS_FSN, FS_FSSTATUS, FS_ID, FS_FSRWERT_ABS, FS_FSHWERT_ABS,  
fs_koordinate FROM os_flst
I expected to see a where clause like the following: where fs_fsz like  
"111"
When we switch back to mapserver 5.0.0 we see the correct where clause  
in the debug log. So what are we doing wrong or is this a bug?

Thanks for your help.
Regards,
Holger

This is how our layer definition looks like:
  LAYER
	NAME "test_flst"
	 METADATA
		 "wfs_extent"	 "3410000 5470000 3666000 5726000"
		 "wfs_title"	 "test_flst"
		 "gml_featureid"	 "fs_id"
		 "gml_include_items"	 "all" # optional
	 END # of METADATA
	 TYPE POINT
	 STATUS ON 	
	CONNECTIONTYPE oraclespatial
	 CONNECTION	 "user/pass at service"
	 DATA	 "fs_koordinate from os_flst USING UNIQUE fs_id NONE"
	 PROJECTION
		 "init=epsg:31467"
	 END # of PROJECTION
	 DUMP TRUE
  END # of LAYER


More information about the mapserver-users mailing list