<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>Geometry_columns</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hello all</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Wrote a few days ago but did not get any replay so I try again.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">I upgradede mapserver from 4.8.4 to version 5.2 and gdal from 1.3.2. to 1.5.2</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Now I get this error </FONT>

<BR><FONT SIZE=2 FACE="Courier New">Warning: [MapServer Error]: msDrawMap(): Failed to draw layer named 'ODBC'. in c:\inetpub\wwwroot\jar3\xmlkort.php on line 591</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">Warning: [MapServer Error]: msOGRFileNextShape(): No column definitions found for table 'test', layer not usable. in c:\inetpub\wwwroot\jar3\xmlkort.php on line 591 Fatal error: Call to a member function on a non-object in c:\inetpub\wwwroot\jar3\xmlkort.php on line 621</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">I found out that I had a row i geometry_columns that did not have a view with that name, this was not a problem in mapserver 4.8.4</FONT></P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">found in mapogr.cpp</FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">static</FONT><FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">int</FONT><FONT SIZE=2 FACE="Courier New"> </FONT>

<BR><FONT SIZE=2 FACE="Courier New">msOGRFileNextShape(layerObj *layer, shapeObj *shape,</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msOGRFileInfo *psInfo )</FONT> 
</P>

<P><FONT SIZE=2 FACE="Courier New">that this code has been changed</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">***** cut out *****</FONT>

<BR><FONT SIZE=2 FACE="Courier New">**** from 5.2 ****</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">if</FONT><FONT SIZE=2 FACE="Courier New">( (hFeature = OGR_L_GetNextFeature( psInfo-&gt;hLayer )) == NULL )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">if</FONT><FONT SIZE=2 FACE="Courier New">( CPLGetLastErrorType() == CE_Failure )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msSetError(MS_OGRERR, </FONT><FONT COLOR="#800000" SIZE=2 FACE="Courier New">&quot;%s&quot;</FONT><FONT SIZE=2 FACE="Courier New">, </FONT><FONT COLOR="#800000" SIZE=2 FACE="Courier New">&quot;msOGRFileNextShape()&quot;</FONT><FONT SIZE=2 FACE="Courier New">,</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPLGetLastErrorMsg() );</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RELEASE_OGR_LOCK;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">return</FONT><FONT SIZE=2 FACE="Courier New"> MS_FAILURE;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">else</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RELEASE_OGR_LOCK;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">if</FONT><FONT SIZE=2 FACE="Courier New"> (layer-&gt;debug &gt;= MS_DEBUGLEVEL_VV)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msDebug(</FONT><FONT COLOR="#800000" SIZE=2 FACE="Courier New">&quot;msOGRFileNextShape: Returning MS_DONE (no more shapes)\n&quot;</FONT><FONT SIZE=2 FACE="Courier New"> );</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">return</FONT><FONT SIZE=2 FACE="Courier New"> MS_DONE;&nbsp; </FONT><FONT COLOR="#008000" SIZE=2 FACE="Courier New">// No more features to read</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">***** cut out *****</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Courier New">***** cut out *****</FONT>

<BR><FONT SIZE=2 FACE="Courier New">*** from 4.8.4 ****</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&nbsp;</FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">if</FONT><FONT SIZE=2 FACE="Courier New">( (poFeature = psInfo-&gt;poLayer-&gt;GetNextFeature()) == NULL )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">return</FONT><FONT SIZE=2 FACE="Courier New"> MS_DONE;&nbsp; </FONT><FONT COLOR="#008000" SIZE=2 FACE="Courier New">// No more features to read</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">***** cut out *****</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">do you see any problem in changing the code to </FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">if</FONT><FONT SIZE=2 FACE="Courier New">( (hFeature = OGR_L_GetNextFeature( psInfo-&gt;hLayer )) == NULL )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">return</FONT><FONT SIZE=2 FACE="Courier New"> MS_DONE;&nbsp; </FONT><FONT COLOR="#008000" SIZE=2 FACE="Courier New">// No more features to read</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</FONT>

<BR><FONT SIZE=2 FACE="Courier New">so that it doesnot check all rows in geometry_columns</FONT>

<BR><FONT SIZE=2 FACE="Courier New">and is there a reason why all rows in geometry_columns should have a matching view ?</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Arial">Jeppe Lund Andersen</FONT>
</P>

</BODY>
</HTML>