[postgis-users] Empty Geometry

Paragon Corporation lr at pcorp.us
Tue Jun 9 14:10:10 PDT 2009


Bob,
 
If you want to skip over linestrings in your update, you should move that
condition out of your correlated sub query.  The way you had it, since its a
subselect and valu is setting the ip_target it has to be run for all
records.
 
so change to 
 
Something like
 
UPDATE temp_arrow
 set ip_target  = 
 (  select (st_translate(graphics.utilities_dgm.the_geom, 
 st_x (st_startpoint(temp_arrow.ithe_geom))-
 st_x (st_startpoint(graphics.utilities_dgm.the_geom)) ,
 st_y (st_centroid(temp_arrow.ithe_geom))-
 st_y (st_startpoint(graphics.utilities_dgm.the_geom)))) 
  from graphics.utilities_dgm, temp_arrow, p_id.p_id, p_id.processes
  where temp_arrow.graphic_id = p_id.p_id.process_graphic_id
  and p_id.p_id.process_id = p_id.processes.process_id
  and p_id.processes.fluid_id = temp_arrow.fluid_id
   and graphics.utilities_dgm.utilities_description = 'Arrow_Flow_Direction'

  and graphics.utilities_dgm.orientation = p_id.p_id.ip_orient ) 
 
WHERE ST_GeometryType(temp_arrow.ithe_geom) = 'ST_MultiLineString'  
 
Leo
 

  _____  

From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Bob
Pawley
Sent: Tuesday, June 09, 2009 4:27 PM
To: PostGIS Users Discussion
Subject: [postgis-users] Empty Geometry


In the past, when the update conditions are not met, the update transaction
doesn.t finalize.
 
However when I run the following update function where
ST_GeometryType(temp_arrow.ithe_geom) = 'ST_MultiLineString'  is not true,
then the return is a null value.
 
Is there a workaround to this problem??
 
 update temp_arrow
 set ip_target  = 
 (  select (st_translate(graphics.utilities_dgm.the_geom, 
 st_x (st_startpoint(temp_arrow.ithe_geom))-
 st_x (st_startpoint(graphics.utilities_dgm.the_geom)) ,
 st_y (st_centroid(temp_arrow.ithe_geom))-
 st_y (st_startpoint(graphics.utilities_dgm.the_geom)))) 
  from graphics.utilities_dgm, temp_arrow, p_id.p_id, p_id.processes
  where temp_arrow.graphic_id = p_id.p_id.process_graphic_id
  and p_id.p_id.process_id = p_id.processes.process_id
  and p_id.processes.fluid_id = temp_arrow.fluid_id
  and ST_GeometryType(temp_arrow.ithe_geom) = 'ST_MultiLineString'  
  and graphics.utilities_dgm.utilities_description = 'Arrow_Flow_Direction' 
  and graphics.utilities_dgm.orientation = p_id.p_id.ip_orient );
 
 
Bob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20090609/952aea8c/attachment.html>


More information about the postgis-users mailing list