[Mapserver-users] RE: [postgis-users] RE: gone are my query results
Paul Ramsey
pramsey at refractions.net
Sat May 1 21:08:54 PDT 2004
Got your back, Charlton :)
The problem is that your PostgreSQL oids are larger than the mapserver
row number variable can store. The oid is larger than a signed 32 bit
integer can store.
So, solution.
Do not use oid as your "unique" field. Make use of the "using unique"
clause in your data statement, and reference a different unique field
in your table. Make sure that field is indexed. If you have loaded your
data with shp2pgsql, you probably have a 'gid' field you can use that
is a primary key (and therefore already indexed).
Yours,
Paul
On Saturday, May 1, 2004, at 08:42 PM, Charlton Purvis wrote:
> OK, Greg, I think we might be onto something. But it still looks very
> grim.
>
> I turned on all the logging, and I notice that MS sends it this query:
>
> LOCATION: pg_parse_query, postgres.c:464
> LOG: 00000: statement: DECLARE mycursor BINARY CURSOR FOR SELECT
> temperature_celcius::text,asbinary(force_collection(force_2d(the_geom))
> ,'NDR'),OID::text from sst_map WHERE
> (date_trunc('hour',report_time_stamp + interval '1 hour' * -04) =
> date_trunc('hour',timestamp without time zone '2004-05-01 22:00:00')
> and (label_z <= 5 or label_z is null)) and (the_geom && setSRID(
> 'BOX3D(-83.0454044480208 24.3838940085927,-82.6541628156105
> 24.775135641003)'::BOX3D,find_srid('','sst_map','the_geom') ))
>
> OK. That's good. Because if I stick the SELECT part at a psql
> prompt, I get back the row I want. And I also notice that its OID is
> 2185295089.
>
> But if I look at the last sql statement in the log, it's another
> cursor, but the OID is wrong.
>
> LOCATION: pg_parse_query, postgres.c:464
> LOG: 00000: statement: DECLARE mycursor BINARY CURSOR FOR SELECT
> station_id::text,time_stamp::text,z::text,label_z::text,temperature_cel
> cius::text,temperature_fahrenheit::text,value_temperature_celcius::text
> ,value_temperature_fahrenheit::text,lon::text,lat::text,title::text,ins
> titution::text,institution_url::text,institution_dods_url::text,source:
> :text,refs::text,contact::text,report_time_stamp::text,asbinary(force_c
> ollection(force_2d(the_geom)),'NDR') from sst_map WHERE OID =
> 2147483647
>
> So had they kept the OID, I would be in good shape.
>
> This isn't looking good!!!
>
> Charlton
>
> -----Original Message-----
> From: Gregory S. Williamson [mailto:gsw at globexplorer.com]
> Sent: Sat 5/1/2004 11:11 PM
> To: PostGIS Users Discussion; mapserver-users at lists.gis.umn.edu
> Cc:
> Subject: RE: [postgis-users] RE: gone are my query results
>
>
>
>
> If you turn on the logging of statements in postgres and run the
> mapserver side of things, does the query show up in the logs ?
>
> If the query does not appear then I'd suspect networking or
> permissions or some darn thing keeping postgres from ever seeing the
> query.
>
> It it does show up then maybe the problem is in the return trip to MS
> or in the processing of that data (perhaps your OID suspicions), since
> it sounds as if the query itself can be processed.
>
> Any changes to *anything* on either server and anything in between ?
> (not likely but always worth ruling out)
>
> Or, shot in the dark, something messing with TOLERANCE so no points
> are selected in a query ?
>
> Very puzzling, I agree.
>
> Greg W.
>
> -----Original Message-----
> From: Charlton Purvis on behalf of Charlton Purvis
> Sent: Sat 5/1/2004 7:59 PM
> To: PostGIS Users Discussion; mapserver-users at lists.gis.umn.edu
> Cc:
> Subject: RE: [postgis-users] RE: gone are my query results
> Thanks for your reply, Gregory. I'm forwarding this onto the MS
> folks to see if they have any pearls of wisdom.
>
> Everything looks great in the db. If I render a map, I see all the
> points correctly. If I take that query and plug it in to the command
> line, I see the rows. But the moment I try to do either a cgi query,
> WFS query, or a PHP query, I get nothing back. No error message.
>
> I'm actually getting panicky which isn't any fun. Has anyone seen
> anything like this before?
>
> Queries rely on OID's and SRID's. Is there any way they could have
> gotten mucked up? Can I somehow refresh them?
>
> Thanks,
>
> Charlton
>
> -----Original Message-----
> From: Gregory S. Williamson [mailto:gsw at globexplorer.com]
> Sent: Sat 5/1/2004 6:20 PM
> To: PostGIS Users Discussion
> Cc:
> Subject: [postgis-users] RE: gone are my query results
>
>
>
>
> If you do the query directly to postgres (via psql or pgAdmin or
> whatever) does the query return results ?
>
> If so, then my guess is that this is not a database error, at least
> not directly. If ot then yes, it would seem that somehow the postGIS
> itself has gottent snarfled.
>
> The change you made relating the geometryColumns doesn't sound to me
> like it should effect queries unless somehow the SRID info for the
> tables in your mapserver queries got clobbered; should be easy enough
> to confirm that this data is ok.
>
> I am not familiar enough with PHP and mapserver to have a clue; does
> the mapserver log itself show anything ?
>
> Not much help, I'm afraid, but perhaps posting this to the MMS list
> would add some more knowledge to the issue at hand ?
>
> Greg Williamson
> DBA
> GlobeXplorer LLC
>
> -----Original Message-----
> From: Charlton Purvis on behalf of Charlton Purvis
> Sent: Sat 5/1/2004 2:46 PM
> To: PostGIS Users Discussion
> Cc:
> Subject: gone are my query results
> Hi, folks:
>
> Bizarre and unnerving problem here.
>
> Up until last night, mapping was fine and point-query was fine. Now
> it appears that the mapping is still great, but the point query and
> WFS are toast. I don't get any errors in pgsql.log or php.log. I get
> . . . nothing. Even going mapserv cgi query returns empty for a query
> I know should work.
>
> Maybe I'm being taught a lesson. In a separate database, I noticed
> that addgeometrycolumn was taking too long -- I create about 400
> smaller tables per day. So I commented out fix_geometry_columns();
> from the addgeometrycolumn function and did it once I had finished
> creating all my new tables. So am I paying the price? Has this
> corrupted this database as well as my other?
>
> If all this is OID stuff, is there any way to refresh all OID's?
>
> Restarted . . . yes. VACUUM and ANALYZE'd . . . yes.
>
> Thanks,
>
> Charlton
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>
Paul Ramsey
Refractions Research
Email: pramsey at refractions.net
Phone: (250) 885-0632
More information about the MapServer-users
mailing list