Opened 13 years ago

Closed 13 years ago

#1116 closed defect (fixed)

Topology: ST_ModEdgeHeal return undocumented

Reported by: aperi2007 Owned by: strk
Priority: medium Milestone: PostGIS 2.0.0
Component: documentation Version: master
Keywords: Cc:

Description

Hi. try-ing to use the ST_ModEdgeHeal I notice the function return wrong idedge.

More precisely it seem to do the correct work assigning also the correct value (idedge), but not always retrun that value.

So I to some tests. This is the result:

calling EdgeA (with value id1) the first edge and EdgeB (with value id2) the second edge, the function should merge the two edges and assign it the value of the first edge passed ("id1").

There are 4 possible case: (the character > < show the direction of the edge)

Case 1)

*-(EdgeA)→—* *-(EdgeB)→—*

The Function correctly produce a edge (EdgeC) like this:

*-(EdgeC)—>——-* having id=id1.

But the query select STModEdgeHeal(..); will return the value "id2" instead of "id1".

Case 2)

*-(EdgeA)-←-* *-(EdgeB)→—*

The Function correctly produce a edge (EdgeC) like this:

*-(EdgeC)—>——-* having id=id1. In this case the function ST_ModEdgeHeal will return the right value (id1)

Case 3)

*-(EdgeA)→—* *-(EdgeB)-←-*

The Function correctly produce a edge (EdgeC) like this:

*-(EdgeC)—>——-* having id=id1.

But the query will return a value different from "id1"

Case 4)

*-(EdgeA)-←-* *-(EdgeB)-←-*

The Function correctly produce a edge (EdgeC) like this:

*-(EdgeC)—←——* having id=id1.

In this case the function ST_ModEdgeHeal will return the right value (id1)

Regards,

Change History (2)

comment:1 by strk, 13 years ago

ST_ModEdgeHeal returns a _node_ identifier (the node being deleted by the operation), not an _edge_ identifier. I've updated the documentation in r7624.

The ISO specs say the function should not have a return, I tought it could have been useful to know abot the node id…

comment:2 by strk, 13 years ago

Component: topologydocumentation
Resolution: fixed
Status: newclosed
Summary: Topology: ST_ModEdgeHeal return wrong idTopology: ST_ModEdgeHeal return undocumented
Note: See TracTickets for help on using tickets.