-
-
Notifications
You must be signed in to change notification settings - Fork 379
Migration Guide
- Availability: 2.0
- Deprecated signature: 2.2
- Has replacement
How to detect that it needs migration
- When the first parameter is of type float8[][]
- When the result columns are
(seq, id) - When a function that return float8 was written to create the first parameter
- Suppose that the function
make_matrix(<parameters>, ids::BIGINT[])was written to create a distance matrix of theidsin the array using internally pgr_dijkstra and returning float8[][]
- Suppose that the function
- start_vid or end_vid are INTEGER
What to do
- Use pgr_dijkstraCostMatrix
- Adjust the returning columns to the new column names
(seq, node, cost, agg_cost)-
id1is unused -
id2is nownode
-
- Remove the inner query casting
- start_vid or end_vid are BIGINT
- a constant has to be casted to BIGINT otherwise it will get the old signature
- a variable has to be of type BIGINT
Example
SELECT seq, id
FROM pgr_tsp(
make_matrix(<parameters>), ARRAY[2,5,7,9]),
1);
Migrates to
SELECT seq, node, cost, agg_cost FROM pgr_TSP(
$$
SELECT * FROM pgr_dijkstraCostMatrix(
'SELECT id, source, target, cost, reverse_cost FROM edge_table',
ARRAY[2,5,7,9],
false
)
$$,
1::BIGINT);
- Availability: 2.0
- Deprecated signature: 2.2
- Has replacement
How to detect that it needs migration
- When the first parameter is of type text
- When the result columns are
(seq, id1, id2, cost)
What to do
- Change the name to
pgr_eucledianTSP - Adjust the returning columns to the new column names
(seq, node, cost, agg_cost)-
id1is unused -
id2is nownode
-
- Remove the inner query casting
Example
SELECT seq, id1, id2, cost
FROM pgr_tsp(
'SELECT id::INTEGER, x, y
FROM vertex_table'
, 6, 5);
Migrates to
SELECT seq, node, cost, agg_cost
FROM pgr_eucledianTSP(
'SELECT id, x, y
FROM vertex_table'
, 6, 5);
- Availability: 2.0.0
- Deprecated: 2.2.0
- Has a replacement
How to detect that it needs migration
- When the name is
pgr_kDijkstraPath - When the result columns are
(seq, id1, id2, id3, cost)
What to do
- Change the name to
pgr_dijkstra - Adjust the returning to the new column names
(seq, path_seq, end_vid, node, edge, cost, agg_cost)-
id1is nowend_vid -
id1is nownode -
id2is nowedge
-
- Remove the inner query casting
- Remove any contradiction
- When the last boolean value has a value false: physically the column
reverse_costmust not exist in the inner query - When the last boolean value has a value true: physically the column
reverse_costmust exist in the inner query
- When the last boolean value has a value false: physically the column
- Remove the last boolean value
- Remove the inner query casting
Example
SELECT seq, id1, id2, id3, cost FROM pgr_kDijkstraPath(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table',
10, array[4,12], false, false);
migrates to
SELECT seq, path_seq, end_vid, node, edge, cost, agg_cost FROM pgr_dijkstra(
'SELECT id, source, target, cost
FROM edge_table',
10, array[4,12], false);
- Availability: 2.0.0
- Deprecated: 2.2.0
- Has a replacement
How to detect that it needs migration
- When the name is
pgr_kDijkstraCost - When the output columns are
(seq, id1, id2, cost)
What to do
- Change the name to
pgr_dijkstraCost - Adjust the returning to the new column names
(start_vid, end_vid, agg_cost)-
id1is nowstart_vid -
id2is nowend_vid -
costis nowagg_cost
-
- Remove the inner query casting
- Remove any contradiction
- When the last boolean value has a value false: physically the column
reverse_costmust not exist in the inner query - When the last boolean value has a value true: physically the column
reverse_costmust exist in the inner query
- When the last boolean value has a value false: physically the column
- Remove the last boolean value
Example
SELECT seq, id1, id2, cost FROM pgr_kDijkstraCost(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table',
10, array[4,12], false, false);
migrates to
SELECT start_vid, end_vid, agg_cost FROM pgr_dijkstraCost(
'SELECT id, source, target, cost
FROM edge_table',
10, array[4,12], false);
- Availability: 2.0.0
- Deprecated: 2.2.0
- Has a replacement
How to detect that it needs migration
- When the output columns are
(seq, id1, id2, cost) - When it has
apspas part of the name. - When the inner query columns need casting
- When the sequence starts with 0
- Only worked for directed graph
What to do
- Change the name to
pgr_johnson - Adjust the returning to the new column names
(start_vid, end_vid, agg_cost)-
id1is nowstart_vid -
id2is nowend_vid -
costis nowagg_cost
-
- Remove the inner query casting
Example
SELECT seq, id1, id2, cost FROM pgr_apspJohnson(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table');
migrates to
SELECT start_vid, end_vid, agg_cost FROM pgr_johnson(
'SELECT id, source, target, cost
FROM edge_table');
- Availability: 2.0.0
- Deprecated: 2.2.0
- Has a replacement
How to detect that it needs migration
- When the output columns are
(seq, id1, id2, cost) - When it has
apspas part of the name. - When the inner query columns need casting
- When the
pgr_apspWarshallends with two boolean values - When the sequence starts with 0
- Only worked for directed graph
What to do
- Change the name to
pgr_floydWarshall - Adjust the returning to the new column names
(start_vid, end_vid, agg_cost)-
id1is nowstart_vid -
id2is nowend_vid -
costis nowagg_cost
-
- Remove the inner query casting
- Remove any contradiction
- When the last boolean value has a value false: physically the column
reverse_costmust not exist in the inner query - When the last boolean value has a value true: physically the column
reverse_costmust exist in the inner query
- When the last boolean value has a value false: physically the column
- Remove the last boolean value
Example
SELECT seq, id1, id2, cost FROM pgr_apspWarshall(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table',
true, false);
migrates to
SELECT start_vid, end_vid, agg_cost FROM pgr_floydWarshall(
'SELECT id, source, target, cost
FROM edge_table',
true);
- Availability: 2.0.0
- Signature Changed: 2.1.0
- A parameter was removed
How to detect that it needs migration
- When the output columns are
(seq, id1, id2, cost) - When the
pgr_dijkstraends with two boolean values - When the inner query columns need casting
- When the sequence starts with 0
What to do
- Adjust the returning to the new column names
(seq, path_seq, node, edge, cost, agg_cost)- id1 is now node
- id2 is now edge
- Remove the inner query casting
- Remove any contradiction
- When the last boolean value has a value false: physically the column
reverse_costmust not exist in the inner query - When the last boolean value has a value true: physically the column
reverse_costmust exist in the inner query
- When the last boolean value has a value false: physically the column
- Remove the last boolean value
- The sequence starts with 1, adjust any cycle to this value
Example
SELECT seq, id1, id2, cost FROM pgr_dijkstra(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table',
4, 10, true, false);
migrates to
SELECT seq, path_seq, node, edge, cost, agg_cost FROM pgr_dijkstra(
'SELECT id, source, target, cost
FROM edge_table',
4, 10, true);
- Availability: 2.0.0
- Signature Changed: 2.1.0
- A parameter was renamed
- Functionality of the renamed parameter changed
How to detect that it needs migration
- When the output columns are
(seq, id1, id2, id3, cost) - When the
pgr_KSPends with one boolean value (has_rcost) - When the inner query columns need casting
- When the sequence starts with 0
- Only worked for directed graphs
What to do
- Adjust the returning to the new column names
seq, path_id, path_seq, node, edge, cost, agg_cost)- id1 is now path_id
- id2 is now node
- id3 is now edge
- Remove the inner query casting
- Remove any contradiction
- When the boolean value has a value false: physically the column
reverse_costmust not exist in the inner query - When the boolean value has a value true: physically the column
reverse_costmust exist in the inner query
- When the boolean value has a value false: physically the column
- Substitute the boolean value to be
directed := true - The sequence starts with 1, adjust any cycle to this value
Example
SELECT seq, id1, id2, id3, cost FROM pgr_KSP(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table',
2, 11, 2, false);
migrates to
SELECT seq, path_seq, node, edge, cost, agg_cost FROM pgr_KSP(
'SELECT id, source, target, cost
FROM edge_table',
2, 11, 2, directed := true);
- Availability: 2.0.0
- Signature Changed: 2.1.0
- A parameter was removed
How to detect that it needs migration
- When the output columns are
(seq, id1, id2, cost) - When the
pgr_drivingDistanceends with two boolean values - When the inner query columns need casting
- When the sequence starts with 0
What to do
- Adjust the returning to the new column names
(seq, node, edge, cost, agg_cost)- id1 is now node
- id2 is now edge and was not considered useful, now its part of a spanning tree
- Remove the inner query casting
- Remove any contradiction
- When the last boolean value has a value false: physically the column
reverse_costmust not exist in the inner query - When the last boolean value has a value true: physically the column
reverse_costmust exist in the inner query
- When the last boolean value has a value false: physically the column
- Remove the last boolean value
- The sequence starts with 1, adjust any cycle to this value
Example
SELECT seq, id1, id2, cost FROM pgr_drivingDistance(
'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost
FROM edge_table',
4, 3, true, false);
migrates to
SELECT seq, path_seq, node, edge, cost, agg_cost FROM pgr_drivingDistance(
'SELECT id, source, target, cost
FROM edge_table',
4, 3, true);
- Availability: 2.0.0
- Signature Changed: 2.1.0
- An extra parameter was added
What to do
Nothing
- Availability: 2.0.0
- Signature Changed: 2.1.0
- An extra parameter was added
What to do
Nothing
The following functions are deprecated and no longer maintained.
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
One of the parameters is the column name
- Its like having
f(x,y) returns y - Instead of calling the function, use the second parameter
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
The parameters is the table name:
- Its like having
f(x) returns x - Instead of calling the function, use the parameter
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
This SQL lists the indexes on the table, Modify to suit your needs
SELECT * FROM pg_indexes WHERE tablename = 'edge_table';
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
To see if the_column is in the table my_table
SELECT count(*) = 1
FROM information_schema.columns
WHERE table_name='my_table' and column_name = 'the_column';
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
Use postgreSQL function quote_ident instead.
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
Here is a link on how to compare versions using postgreSQL
- Use the method of your choice
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
- Use postGIS function
ST_StartPointinstead
- Availability: 2.0.0
- Deprecated: 2.1.0
what to do
Use postGIS function ST_EndPoint instead