[pgrouting-dev] Proposal to clean up function signatures in pgRouting 2.0

Stephen Woodbridge woodbri at swoodbridge.com
Thu May 2 12:25:44 PDT 2013


Hi all,

I have started looking at the function signatures with an eye toward 
clean them up and making them easier to deal with.

A little history. When we write code for a function in pgRouting there 
are typically a few functions that are very simple and map to the 
low-level C code fairly closely. Than on top of that people have written 
convenience functions to hide some of the complexity of the various ways 
to optimize the queries based on things like bounding boxes, or a buffer 
distance to create a bounding box. Then there are things like adding 
information about whether your graph is directed or not, and to specify 
a cost column name or a reverse cost column name, etc.

So if you look at the attached spreadsheet, you can see some of this mess.

I plan is to clean this up! I have not decided how deeply to cut into 
this mess. I'm inclined to put the old functions into a 
pgrouting_legacy.sql file that gets installed but not loaded into the 
database by default. People that don't or can't upgrade their code to 
use the new function names would be able to load this file at least for 
the 2.0 release, but this might go away in the future.

My goal is to try and map most of the various shortest path functions to 
a template something like:

func_name(
     table_name, -- table or view name
     start_id,   -- edge or vertix id, for trsp this could be [id, pos,]
     target_id,  -- edge or vertix id, for trsp this could be [id, pos,]
     delta,      -- *amount to expand an implied bbox
     directed,   -- *is the graph directed?
     has_rcost)  -- *does the table have reverse_cost column?

* these items would be optional

In the spreadsheet under the library column, the blanks represent 
wrapper function, the lib* entries are the low level SQL wrappers to the 
C code and legacy stuff I threw into the what will become the legacy file.

Thoughts and feedback are welcome.

-Steve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgRouting 2.0 Functions.pdf
Type: application/pdf
Size: 190841 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/pgrouting-dev/attachments/20130502/b049d905/attachment-0001.pdf>


More information about the pgrouting-dev mailing list