[Mapserver-users] bug #316 and ms4 missing functions

Twan Kogels twan at twansoft.com
Wed Jul 2 09:04:26 EDT 2003


Hello Paul,

Thanks for the reply, i've changed the code you had specified and now it 
works. But querying still gives me  the #316 bug. Then i found out that i 
had downloaded the ms4.0b and not the latest from cvs (the nightly one), so 
i downloaded it and compiled it. Works great.

The #316 bug is also gone, but now i've got a another strange error when 
querying a postgis layer:

===============
Fatal error: MapServer Error in msPOSTGISLayerGetShape(): Error executing 
POSTGIS SQL statement (in FETCH ALL): DECLARE mycursor BINARY CURSOR FOR 
SELECT 
id::text,adnaa::text,adsub::text,adeti::text,adpub::text,adper::text,adafk::text,adlo1::text,adst1::text,adhu1::text,adto1::text,adpo1::text,adwo1::text,adwt1::text,adlo2::text,adst2::text,adhu2::text,adto2::text,adpo2::text,adwo2::text,adwt2::text,adpro::text,adlac::text,adlan::text,adpob::text,adne1::text,adab1::text,adat1::text,adne2::text,adab2::text,adat2::text,adne3::text,adab3::text,adat3::text,adtla::text,adnef::text,adabf::text,ademl::text,adwww::text,adach::text,advoo::text,adtus::text,adtit::text,admvo::text,adafd::text,adfun::text,adber::text,adwco::text,adwna::text,adves::text,adrel::text,adter::text,aduni::text,adond::text,addin::text,addco::text,addwy::text,addto::text,addve::text,adred::text,adopm::text,adtek::text,adnaa_dg::text,adsub_dg::text,adeti_dg::text,adpub_dg::text,adper_dg::text,adafk_dg::text,adlo1_dg::text,adst1_dg::text,adhu1_dg::text,adto 

===============

I suspected that this was only a half part of the error, so i modified 
mappostgis.c so that it would print the actual cause of the error (and not 
the long sql statement):

===============
Fatal error: MapServer Error in msPOSTGISLayerGetShape(): Error executing 
POSTGIS SQL statement (in FETCH ALL): temp -ERROR: Cannot cast type boolean 
to text
More Help:
Error with POSTGIS data variable. You specified ''.
Standard ways of specifiying are :
(1) 'geometry_column from geometry_table'
(2) 'geometry_column from (<sub query>) as foo using unique <column name> 
using SRID=<srid#>'
===============

I suspect there are 2 possible causes of this error:
1. the sql query is just too long, and gets shorten in the process which 
causes postgresql to give the error.
2. postgresql can't convert text to boolean (there are 2 boolean columns in 
my table)

Is there a method which allows me to specify the columns which postgis 
should query, so that postgis does not try to query all the columns in the 
table.

I'm using the following query on my postgis layer:
============
$lo->set("data", "the_geom from og");
============
Table og contains about 150 colums (it couldn't be less, but that's out of 
the scope of the email).

Best regards,
Twan Kogels


At 07:28 2-7-2003 -0400, you wrote:
>Twan,
>
>The format of the mapfile has changed somewhat.  Two of the changes relate 
>to your problem.
>
>The symbol is now part of a new style object, that is part of a class 
>object.  Color objects are no longer referenced by index because of 24 bit 
>support, you now have an API to set the RGB color directly.
>
>This means that you would make the following:
>
>$co = ms_newClassObj($lo);
>$co->set("name", "mysym" );
>$st = ms_newStyleObj($co);
>$st->set( "symbol", $mymap->getSymbolByName('star') );
>
>
>$co->label->backgroundcolor->SetRGB( 255, 255, 255 );
>
>The migration guide that explains these and other changes is at:
>
>http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?MigrationGuide
>
>I recommend that you investigate the README in the mapscript/php3 
>directory for specific API details.
>
>I don't know how difficult back-porting the postgis query bug would be.
>
>Cheers,
>
>Paul
>
>Twan Kogels wrote:
>
>>Hello,
>>Tomorrow i've hit a know bug when quering a postgis layer with mapserver 
>>3.6.5, its on bugszilla <http://mapserver.gis.umn.edu/bugs/show_bug.cgi?id=316>
>>So i tryed the latest cvs version of mapserver (4.0b), it configures and 
>>compiles oke. But it some mapscript functions seems to have dissapear, 
>>for example i have mapscript generate a postgis layer:
>>==========
>>         $co=ms_newClassObj($lo);
>>         $co->set("name", "mysym");
>>         $temp=$mymap->getSymbolByName('star');
>>         $co->set("symbol", $temp);
>>==========
>>This part of code returns a error:
>>==========
>>Property 'symbol' does not exist in this object.
>>==========
>>The same happens with:
>>==========
>>         $co->label->set("type", MS_BITMAP);
>>         $co->label->set("backgroundcolor", $mymap->addColor(255,255,225));
>>==========
>>results in:
>>==========
>>Call to undefined function: addcolor()
>>==========
>>These mapscript functions are doing it correct with mapserver 3.6.5.
>>Is it possible that i've downloaded a cvs version where some mapscript 
>>functions are broken? If so, is it possible for me to modify the 
>>mapserver 3.6.5 source (which functions perfect) so bug #316 won't appear 
>>anymore?
>>Best regards,
>>Twan Kogels
>>_______________________________________________
>>Mapserver-users mailing list
>>Mapserver-users at lists.gis.umn.edu
>>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>
>--
>Paul Spencer
>Applications and Software Development
>DM Solutions Group Inc.
>http://www.dmsolutions.ca
>
>
>_______________________________________________
>Mapserver-users mailing list
>Mapserver-users at lists.gis.umn.edu
>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users




More information about the mapserver-users mailing list