<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EpostStil17
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EpostStil18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EpostStil19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EpostStil20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EpostStil21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EpostStil22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi Steve,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Good new year and my apologies for the late reaction.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thank you for looking into it! <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">The data is stored in a postgres database.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Type: boolean in a materialized view.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">When opening the table it shows TRUE and FALSE. When calling it using SQL the output shows t and f<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">SELECT DISTINCT something FROM table<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I don’t think this is relevant though.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Your examples look good so I guess you are right and this is wms specific
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="NO-BOK" style="color:#1F497D">CLASS<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="NO-BOK" style="color:#1F497D">      NAME "Eiendomsgrense"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="NO-BOK" style="color:#1F497D">      #EXPRESSION (("[fromtable]" == "eiendomsgrense") && ("[something]" == 'f'))<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="NO-BOK" style="color:#1F497D">      </span><span style="color:#1F497D">EXPRESSION (("[fromtable]" == "eiendomsgrense") && ("[something]" != 't'))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">            STYLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">        MAXWIDTH 1.8<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">        MINWIDTH 0.7<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">        COLOR 255 0 0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">      END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">    END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="color:#1F497D">Again thank you for your time.<o:p></o:p></span></a></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">With kind regards, <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Karin <o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>Fra:</b> Lime, Steve D (MNIT) [mailto:steve.lime@state.mn.us]
<br>
<b>Sendt:</b> 21. desember 2018 22:35<br>
<b>Til:</b> Lime, Steve D (MNIT) <steve.lime@state.mn.us>; Karin Kuipers <Karin.Kuipers@kartverket.no>; mapserver-dev@lists.osgeo.org<br>
<b>Emne:</b> RE: Boolean class expression Mapserver 7.2<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I’ve been unable to replicate the bug using straight MapServer expressions and Postgres. Both 7.0.7 and 7.2.1 work as expected, which makes me think we’re not talking about the same thing. I setup a layer like
 so:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">LAYER<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  NAME ‘test'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  STATUS DEFAULT<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  TYPE POLYGON<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  CONNECTIONTYPE postgis<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  CONNECTION 'host=localhost port=5432 dbname=foo password=**** user=****'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  DATA "shape FROM (SELECT objectid, shape, 'f' as something  FROM mytable) as foo USING UNIQUE objectid USING SRID=26915"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  CLASS<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">    EXPRESSION ("[something]" == 'f')<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">    STYLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">      COLOR 255 0 0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">    END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">The expression handling in MapServer behaves as expected. All features are drawing with "[something]" == 'f' or "[something]" != 'k' and none are drawn with "[something]" == 'k' or "[something]" != 'f'. In the
 expression case MapServer is doing the expression evaluation. I also tried using a filter where Postgres is doing the evaluation and the filter is translated, so:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">LAYER<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  NAME ‘test'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  STATUS DEFAULT<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  TYPE POLYGON<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  CONNECTIONTYPE postgis<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  CONNECTION 'host=localhost port=5432 dbname=foo password=**** user=****'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  DATA "shape FROM (SELECT objectid, shape, 'f' as something  FROM mytable) as foo USING UNIQUE objectid USING SRID=26915"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  FILTER ("[something]" == 'f')<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  CLASS<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">    STYLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">      COLOR 255 0 0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">    END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">  END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">END<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Again, both versions behave as expected. I guess I’ll need more info to be of any assistance… Perhaps this is specific to WMS?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">--Steve<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> mapserver-dev [<a href="mailto:mapserver-dev-bounces@lists.osgeo.org">mailto:mapserver-dev-bounces@lists.osgeo.org</a>]
<b>On Behalf Of </b>Lime, Steve D (MNIT)<br>
<b>Sent:</b> Thursday, December 20, 2018 9:55 AM<br>
<b>To:</b> Karin Kuipers <<a href="mailto:Karin.Kuipers@kartverket.no">Karin.Kuipers@kartverket.no</a>>;
<a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a><br>
<b>Subject:</b> Re: [mapserver-dev] Boolean class expression Mapserver 7.2<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">What data type is the “something” column in your case? I’ll whip up a quick test and see what the translated SQL looks like. --Steve</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> Karin Kuipers [<a href="mailto:Karin.Kuipers@kartverket.no">mailto:Karin.Kuipers@kartverket.no</a>]
<br>
<b>Sent:</b> Thursday, December 20, 2018 1:11 AM<br>
<b>To:</b> Lime, Steve D (MNIT) <<a href="mailto:steve.lime@state.mn.us">steve.lime@state.mn.us</a>>;
<a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a><br>
<b>Subject:</b> SV: Boolean class expression Mapserver 7.2<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Hi Steve,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">“</span><span style="color:black">you’re saying you have data where something = ‘f’ and it works in 7.0 but not in 7.2”</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">That is indeed what I am trying to say.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">The portgis data is ‘true’ or ‘false’ (data type boolean) in Mapserver we query this with ‘t’ and ‘f’
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I have a WMS build in 7.0 with the == ‘f’ expression</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">We want to upgrade to 7.2 and during testing the layer with ==’f’ expression fails.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">When changing the expression to != ‘t’ the layer works again.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">With kind regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Karin</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>Fra:</b> Lime, Steve D (MNIT) [<a href="mailto:steve.lime@state.mn.us">mailto:steve.lime@state.mn.us</a>]
<br>
<b>Sendt:</b> 19. desember 2018 16:55<br>
<b>Til:</b> Karin Kuipers <<a href="mailto:Karin.Kuipers@kartverket.no">Karin.Kuipers@kartverket.no</a>>;
<a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a><br>
<b>Emne:</b> RE: Boolean class expression Mapserver 7.2<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:black">Hi Karin: All of the example expressions below represent straight string comparisons so for ("[something]" == 'f') to evaluate to true the value for something would need to be ‘f’, same goes for all the others.
 ‘f’, ‘t’ and ‘false’ are just strings and are not equivalent to true/false – you’d use something like ([something] == true) if you really wanted that type of comparison.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:black"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:black">Anyway, just so I understand, you’re saying you have data where something = ‘f’ and it works in 7.0 but not in 7.2?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:black">--Steve</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> mapserver-dev [<a href="mailto:mapserver-dev-bounces@lists.osgeo.org">mailto:mapserver-dev-bounces@lists.osgeo.org</a>]
<b>On Behalf Of </b>Karin Kuipers<br>
<b>Sent:</b> Wednesday, December 19, 2018 3:03 AM<br>
<b>To:</b> <a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a><br>
<b>Subject:</b> [mapserver-dev] Boolean class expression Mapserver 7.2<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Dear sir/madame,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">I think I found an issue with the boolean class expression in Mapserver 7.2<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">On 7.0 ("[something]" == 'f') works<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">On 7.2 ("[something]" == 'f') does not work but ("[something]" != 't') works fine and ("[something]" == 'false') is fine as well.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Connection is to a postgis database. <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span lang="NO-BOK">With kind regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="NO-BOK"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="NO-BOK">Karin Kuipers</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="NO-BOK"> </span><o:p></o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" align="left" width="100%" style="width:100.0%">
<tbody>
<tr>
<td valign="top" style="padding:3.0pt 3.0pt 3.0pt 3.0pt">
<p class="MsoNormal" style="mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<img border="0" width="111" height="70" id="Bilde_x0020_1" src="cid:image001.png@01D4A442.9568FEF0" alt="logo_sign"><o:p></o:p></p>
</td>
<td width="100%" valign="top" style="width:100.0%;padding:3.0pt 3.0pt 3.0pt 3.0pt">
<p class="MsoNormal"><b><span lang="NO-BOK" style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040">Karin Kuipers</span></b><span lang="NO-BOK" style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040"><br>
Overingeniør GIS-Specialist<br>
IT-avdelingen, Geodatatjenester -I5 </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="NO-BOK" style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040">Tlf.: +47 </span><span style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040">321 13036 mob.:+47 46 213 198</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040">E-post:
<a href="mailto:karin.kuipers@kartverket.no">karin.kuipers@kartverket.no</a> </span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040"><br>
</span><span lang="NO-BOK" style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040">Tlf. sentralbord: 32 11 81 00<br>
Kundesenter: 08700 <br>
</span><span style="font-size:7.0pt;font-family:"Verdana",sans-serif;color:#404040"><a href="http://www.kartverket.no/"><span lang="NO-BOK" style="color:blue">www.kartverket.no</span></a></span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="NO-BOK"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="NO-BOK"> </span><o:p></o:p></p>
</div>
</body>
</html>