Filter in Mapserver 4.10.0

Steve Lime Steve.Lime at DNR.STATE.MN.US
Tue Oct 24 14:34:27 EDT 2006


Yep, will do. I introduced this bug when tracking down the expression
truncation bug (1428). I had
cleaned things up for clarity- a bit to clean it turns out...

Steve

>>> Daniel Morissette <dmorissette at MAPGEARS.COM> 10/24/2006 10:25:03 AM
>>>
Can you please create a bug and add a note to the 4.10 HISTORY.TXT
about 
this... the users will thank you.

Daniel


Steve Lime wrote:
> Ok, found and fixed the problem. It wasn't an issue with the lexer
changes Paul refers to
> rather an issue with some cleanup done in loadExpressionString in
mapfile.c. I made a 
> mistake and let the lexer check for simple expression strings when in
reality that's should
> be the default case if an expression is not a regex, logical or case
insensitive. 
> 
> I have fixed in both 4.10 and 5.0 if anyone would care to confirm...
> 
> Steve
> 
>>>> Steve Lime <Steve.Lime at DNR.STATE.MN.US> 10/23/06 12:33 PM >>>
> Will look into it...
> 
> Steve
> 
>>>> Paul Ramsey <pramsey at REFRACTIONS.NET> 10/19/2006 2:59:10 PM >>>
> I assume this traces back to this commit:
> ----------------------------
> revision 1.101
> date: 2006/08/15 06:18:49;  author: sdlime;  state: Exp;  lines: +5
-34
> Simplified quoted string rules in maplexer.l, just or'd together the 

> single and
> double qoute regular expressions. Updated include detection to  
> support single
> quotes as well.
> 
> 
> On 19-Oct-06, at 12:21 PM, Andreas Albarello wrote:
> 
>> Sture Dingsøyr wrote:
>>> The code below fails:
>>> $poLayer = $mapObject->getLayerByName($layerId[$i]);
>>> $poLayer->set("status", 1);			
>>> $poLayer->setFilter("navn = 'Fjaler'");
>>> I get this error message:
>>> DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection

>>> (force_2d(the_geom)),'NDR'),gid::text from (SELECT * FROM  
>>> n2000ko_f) AS n2000ko_f WHERE (navn = ) and (the_geom && setSRID 
>>> ( 'BOX3D(-647132 6410334.17468806,1689132  
>>> 7988665.82531194)'::BOX3D,32633) )
>> Sture,
>>
>> I've experienced exactly the same problem with Mapserver 4.10.0.  
>> Don't know if this should be considered a bug, but it is a  
>> backwards compatibility issue with existing mapscript applications 

>> at least. I believe this behavior has been caused by some recent  
>> changes to the mapfile lexer.
>>
>> There's however a workaround for this. The following should do the 

>> trick:
>>
>> $poLayer->setFilter("\"navn = 'Fjaler'\"");
>>
>> Best regards,
>> -- 
>>
--------------------------------------------------------------------
>> Andreas Albarello
>> Analysis & SW Development
>>
>> Territorium Online srl/GmbH
>> Via Buozzi/Buozzistraße 12 - I 39100 Bolzano/Bozen
>> email: andreas.albarello at territoriumonline.com 
>> web:   www.territoriumonline.com 
>>
--------------------------------------------------------------------


-- 
Daniel Morissette
http://www.mapgears.com/



More information about the mapserver-dev mailing list