[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