[pgrouting-dev] PGR 2.0 - Refactored the TYPEs and Added a seq column

Alec Gosse alec at thegosses.com
Tue May 14 06:16:36 PDT 2013


Hello,

This looks like a nice concise list of return types. 

In relation to our discussion on bulk routing, however, I was thinking that I would need to add a routeId column to the ptr_costResult type in order to return multiple routes from the same query, unless there is a function structure that I am not aware of?

Alec


On May 13, 2013, at 9:30 PM, Stephen Woodbridge <woodbri at swoodbridge.com> wrote:

> Hi All,
> 
> Another big change just got pushed to the repository for sew-devel-2_0.
> 
> This change involved refactoring and abstracting our return types from our functions. Basically every function was create a new return type that was the same but a little different mostly in the column names.
> 
> So what we now have are:
> 
>    CREATE TYPE pgr_costResult AS
>    (
>        seq integer,
>        id1 integer,
>        id2 integer,
>        cost float8
>    );
> 
>    CREATE TYPE pgr_geomResult AS
>    (
>        seq integer,
>        id1 integer,
>        id2 integer,
>        geom geometry
>    );
> 
>    CREATE TYPE pgr_vertexResult AS
>    (
>        x float8,
>        y float8
>    );
> 
> and I have eliminated 6 of the old types, namely:
> 
>    pgr_pathResult
>    pgr_geoms
>    pgr_apspEdge
>    pgr_linkPoint
>    pgr_kspResult
>    pgr_kspGeoms
> 
> 
> You will also notice that I have added a seq column to the first two types and this can be used to maintain order if you need two.
> 
> So what are id1 and id2? these are just generic names, you will have to looks at the specify function to see what it returns in these slots.
> 
> The docs have NOT been updated to reflect these changes, but Daniel and I will work on this over the next few days.
> 
> CALL FOR HELP!
> 
> One of the things that we really could use some help with is building test cases. I would like to see a minimum of one test per function call and ideally one for each of the variation that a function has.
> 
> This should not be that hard to do, because we have cut down significantly on the number of functions by abandoning most of the wrapper functions. But there are still a lot of functions in the src/common/sql/ directory that have no test. When I was converting the code for the changes above, I found a bunch functions in the matching code that clearly have never worked correctly because they had assignments like:
> 
>   variable = equation;
> 
> which basic computes the boolean comparison of variable and equation and then throws away the result. Oooops! This must be written like:
> 
>   variable := equation;
> 
> to do an assignment.
> 
> Anyway having the tests that we do have made it much faster to identify problems in the code I changed and to make sure everything was working as it was before I made the changes. I'm just worried about the things we do not have test for! and should should you!
> 
> Let me know how it goes when you have a chance to give it a try.
> 
> Thanks,
>  -Steve
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev



More information about the pgrouting-dev mailing list