Re: Help debugging PostGIS raster connection

Jeff McKenna <[email protected]>
Newsgroups gmane.comp.gis.mapserver.user
Message-ID <[email protected]>
Great work Thomas!  thank you!  -jeff



On 2019-03-06 1:08 PM, Thomas Horner wrote:
> These findings, along with my entire solution for querying rows of a 
> table with a raster column based on timestamp in the WMS GET parameter, 
> has been added to the MapServer wiki Tips and Tricks section which links 
> to this page:
> 
> https://github.com/mapserver/mapserver/wiki/Raster-Layers:-GDAL-PostGISRaster-Tricks
> 
> Cheers
> Thomas
> 
> On Wed, Mar 6, 2019 at 6:29 AM Jeff McKenna 
> <[email protected] <mailto:[email protected]>> 
> wrote:
> 
>     Great news Thomas.  I also think (for good karma) all of your steps and
>     hints for PGraster could be added to a new wiki page in the "Tricks,
>     Tips, and HowTos" section of https://github.com/mapserver/mapserver/wiki
> 
>     (that way people don't have to troll through thousands of email
>     messages
>     to find your important tip)
> 
>     thanks!
> 
>     -jeff
> 
> 
> 
>     On 2019-03-05 7:02 PM, Thomas Horner wrote:
>      > Great!  Thanks Jeff.  Turns out it was the single quotes in other
>     parts
>      > of the connection string...  Not sure why.  Possibly special
>     characters
>      > in the password or username?  After removing them, I no longer have
>      > connection issues.  With that being solved, removing the WHERE
>     clause at
>      > least returns a blank image instead of an error.
>      >
>      > I then brought back the WHERE clause, which returned an error
>     despite
>      > working in GDAL.
>      > This WHERE clause returns a single raster result in GDAL with the
>     exact
>      > same connection string as above:
>      > gdalinfo "PG:.. where='timestamp=\'2019-03-05 00:00:00\''"
>      >
>      > However, no matter the combination of string literals, escape
>      > characters, and whatnot, I could not get MapServer to handle this
>     clause
>      > without error.
>      >
>      > But wait!  Enter Postgres's dollar-quoted string constants:
>      > where='timestamp=$$2019-03-05 00:00:00$$'
>      >
>      > The DATA connection string now works.  Hope this helps anyone in
>     the future.
>      >
>      > Regards,
>      > Thomas
>      >
>      > On Tue, Mar 5, 2019 at 3:24 PM Jeff McKenna
>      > <[email protected]
>     <mailto:[email protected]>
>     <mailto:[email protected]
>     <mailto:[email protected]>>>
>      > wrote:
>      >
>      >     Hi Thomas,
>      >
>      >     I would try the following:
>      >
>      >     - remove all single quotes from your DATA statement (most
>     times they
>      >     are
>      >     unnecessary for my use, and cause me problems)
>      >     - remove the WHERE clause
>      >     - also try to access another table from your database, but
>     not raster,
>      >     using that same DATA connection statement (I bet the problem has
>      >     nothing
>      >     to do with the raster table, but instead is your connection
>     parameters)
>      >     - verify that remote connections can access your database
>     (check your
>      >     file pg_hba.conf)
>      >
>      >     hope that brings ideas and opens doors...
>      >
>      >     -jeff
>      >
>      >
>      >
>      >     --
>      >     Jeff McKenna
>      >     MapServer Consulting and Training Services
>      > https://gatewaygeomatics.com/
>      >
>      >
>      >     On 2019-03-04 2:38 PM, Thomas Horner wrote:
>      >      > I have a PostGIS connection string that works fine in
>     GDAL, as I
>      >     get a
>      >      > raster response when running
>      >      > ---
>      >      > gdalinfo "PG:host=... port=5432 user='...' password='...'
>      >      > dbname='weather_models' schema='rasters'
>      >      > table='wpc_snow_50pct_1551268800' column='rast' mode=1
>      >      > where='timestamp=\'2019-03-02 00:00:00\''"
>      >      > ---
>      >      >
>      >      > On this very same server, I have cgi-mapserver running,
>     and the
>      >     output
>      >      > from /usr/lib/cgi-bin/mapserv/ -v is
>      >      > ---
>      >      > MapServer version 7.2.1 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML
>      >     SUPPORTS=PROJ
>      >      > SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO
>     SUPPORTS=SVG_SYMBOLS
>      >      > SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI
>     SUPPORTS=WMS_SERVER
>      >      > SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT
>      >      > SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI
>      >      > SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG
>     INPUT=POSTGIS
>      >      > INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
>      >      > ---
>      >      >
>      >      > The problem is, when I use that same PG:... connection
>     string as the
>      >      > DATA for a LAYER in MapServer, I get an unhelpful error:
>     Unable to
>      >      > access file. Corrupt, empty or missing file '<snip of PG
>     connection
>      >      > string>' Couldn't establish a database connection.
>      >      >
>      >      > Despite turning DEBUG level to 5, and CPL_DEBUG to ON in
>     the MAP
>      >     block
>      >      > of my mapfile, I don't get any helpful debug information
>      >     whatsoever in
>      >      > my error log -- just the connection string and "Couldn't
>     establish a
>      >      > database connection." I have tried a variety of where
>     clauses and
>      >     other
>      >      > tables and get the same result. I have no idea if the actual
>      >     error is
>      >      > coming from GDAL or MapServer, despite all those strings
>     working
>      >     fine
>      >      > when running them directly via GDAL.
>      >      >
>      >      > By the way, it's the same error whether I use 'timestamp'= or
>      >     timestamp=.
>      >      >
>      >      > Here is the mapfile:
>      >      > ---
>      >      > MAP
>      >      >   CONFIG "MS_ERRORFILE" "/map/error.txt"
>      >      >   CONFIG "CPL_DEBUG" "ON"
>      >      >   DEBUG 5
>      >      >   PROJECTION
>      >      >    "init=epsg:4326"
>      >      >   END
>      >      >   LAYER
>      >      >    NAME wpc_snow_50pct
>      >      >    TYPE RASTER
>      >      >    STATUS ON
>      >      >    VALIDATION
>      >      >     "timestamp" ".*"
>      >      >    END
>      >      >    PROJECTION
>      >      >     "init=epsg:4326"
>      >      >    END
>      >      >    METADATA
>      >      >     "wms_title" "wpc_snow_50pct"
>      >      >     "wms_srs"   "EPSG:4326"
>      >      >     "wms_extent" "-108.5 41 -104.5 36"
>      >      >     "wms_enable_request" "*"
>      >      >    END
>      >      >    DATA "PG:host=... port=5432 dbname='weather_models'
>     user='...'
>      >      > password='...' schema='rasters'
>     table='wpc_snow_50pct_1551268800'
>      >      > column='rast' mode=1 where='timestamp=\'2019-03-02
>     00:00:00\''"
>      >      >    PROCESSING "BANDS=1"
>      >      >   END
>      >      > END
>      >      > ---
>      >      >
>      >      > Any help is appreciated!
>      >      >
>      >      > Thanks,
>      >      > Thomas
>      >      >
>      >      >
>      >     _______________________________________________
>      >     mapserver-users mailing list
>      > [email protected]
>     <mailto:[email protected]>
>     <mailto:[email protected]
>     <mailto:[email protected]>>
>      > https://lists.osgeo.org/mailman/listinfo/mapserver-users
>      >
> 
> 
>     -- 
>     Jeff McKenna
>     MapServer Consulting and Training Services
>     https://gatewaygeomatics.com/
>     _______________________________________________
>     mapserver-users mailing list
>     [email protected] <mailto:[email protected]>
>     https://lists.osgeo.org/mailman/listinfo/mapserver-users
> 
> 
> _______________________________________________
> mapserver-users mailing list
> [email protected]
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
> 


-- 
Jeff McKenna
MapServer Consulting and Training Services
https://gatewaygeomatics.com/
_______________________________________________
mapserver-users mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.