[mapserver-users] DEBUG statement - lets actually do something about it!
david blasby
dblasby at refractions.net
Tue Oct 1 10:11:49 PDT 2002
We've had a few discussion about having a mapfile-wide "DEBUG on/off"
and LAYER-level "DEBUG on/off".
I dont think much has actually come of this (did I miss something?). I
think it would be very useful for, at least, the
PostGIS layer to have it report the SQL statement it's executing and
what kind of indexes its using. I'm sure other portions of mapserver
would appreciate it too.
Proposal
-------------
Change the parser so it handles layers like:
LAYER
DEBUG on/off
...
END
DEBUG will default to "off".
Add, to layerObj, a boolean debug flag:
char debug; //boolean: false = no debug info, true =
write debugging info to stderr
It would be wise to add (also to map.h) a constant so new code is
compatible with older version of layer:
#DEFINE LAYERHASDEBUGFLAG
Then in layer functions, one can do something like:
#ifdef LAYERHASDEBUGFLAG
if (layer->debug)
{
printf(stderr,"POSTGIS layer opening\n");
// report DATA statement
// report CONNECTION information
// execute an EXPLAIN command to get the query plan & report
// execute EXPLAIN VERBOSE, parse and report more information
about the query
// query DB and report all the indexes on the appropriate tables
// query pg_stats and ensure the DB statistical analysis is
up-to-date
// ....
}
#endif
Alternatively, we could have DEBUG be off/on/full (0/1/128) to provide a
bit more control over how much debugging is done.
--------
I understand that this isn't necessarily the best way, but we've had
this discussion a few times and we have almost nothing. At least this
way we'll have something. And it shouldn't take very long (I'd do it
myself, but I dont want to mess around with the parser).
What say?
dave
More information about the MapServer-users
mailing list