Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 34 additions & 34 deletions docqueries/ksp/doc-ksp.result
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ SET
SELECT * FROM pgr_KSP(
'SELECT id, source, target, cost, reverse_cost FROM edges',
6, 17, 2);
seq | path_id | path_seq | node | edge | cost | agg_cost
-----+---------+----------+------+------+------+----------
1 | 1 | 1 | 6 | 4 | 1 | 0
2 | 1 | 2 | 7 | 10 | 1 | 1
3 | 1 | 3 | 8 | 12 | 1 | 2
4 | 1 | 4 | 12 | 13 | 1 | 3
5 | 1 | 5 | 17 | -1 | 0 | 4
6 | 2 | 1 | 6 | 4 | 1 | 0
7 | 2 | 2 | 7 | 8 | 1 | 1
8 | 2 | 3 | 11 | 9 | 1 | 2
9 | 2 | 4 | 16 | 15 | 1 | 3
10 | 2 | 5 | 17 | -1 | 0 | 4
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
-----+---------+----------+-----------+---------+------+------+------+----------
1 | 1 | 1 | 6 | 17 | 6 | 4 | 1 | 0
2 | 1 | 2 | 6 | 17 | 7 | 10 | 1 | 1
3 | 1 | 3 | 6 | 17 | 8 | 12 | 1 | 2
4 | 1 | 4 | 6 | 17 | 12 | 13 | 1 | 3
5 | 1 | 5 | 6 | 17 | 17 | -1 | 0 | 4
6 | 2 | 1 | 6 | 17 | 6 | 4 | 1 | 0
7 | 2 | 2 | 6 | 17 | 7 | 8 | 1 | 1
8 | 2 | 3 | 6 | 17 | 11 | 9 | 1 | 2
9 | 2 | 4 | 6 | 17 | 16 | 15 | 1 | 3
10 | 2 | 5 | 6 | 17 | 17 | -1 | 0 | 4
(10 rows)

/* --q2 */
Expand All @@ -26,28 +26,28 @@ SELECT * FROM pgr_KSP(
6, 17, 2,
directed => false, heap_paths => true
);
seq | path_id | path_seq | node | edge | cost | agg_cost
-----+---------+----------+------+------+------+----------
1 | 1 | 1 | 6 | 4 | 1 | 0
2 | 1 | 2 | 7 | 10 | 1 | 1
3 | 1 | 3 | 8 | 12 | 1 | 2
4 | 1 | 4 | 12 | 13 | 1 | 3
5 | 1 | 5 | 17 | -1 | 0 | 4
6 | 2 | 1 | 6 | 4 | 1 | 0
7 | 2 | 2 | 7 | 8 | 1 | 1
8 | 2 | 3 | 11 | 11 | 1 | 2
9 | 2 | 4 | 12 | 13 | 1 | 3
10 | 2 | 5 | 17 | -1 | 0 | 4
11 | 3 | 1 | 6 | 4 | 1 | 0
12 | 3 | 2 | 7 | 8 | 1 | 1
13 | 3 | 3 | 11 | 9 | 1 | 2
14 | 3 | 4 | 16 | 15 | 1 | 3
15 | 3 | 5 | 17 | -1 | 0 | 4
16 | 4 | 1 | 6 | 2 | 1 | 0
17 | 4 | 2 | 10 | 5 | 1 | 1
18 | 4 | 3 | 11 | 9 | 1 | 2
19 | 4 | 4 | 16 | 15 | 1 | 3
20 | 4 | 5 | 17 | -1 | 0 | 4
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
-----+---------+----------+-----------+---------+------+------+------+----------
1 | 1 | 1 | 6 | 17 | 6 | 4 | 1 | 0
2 | 1 | 2 | 6 | 17 | 7 | 10 | 1 | 1
3 | 1 | 3 | 6 | 17 | 8 | 12 | 1 | 2
4 | 1 | 4 | 6 | 17 | 12 | 13 | 1 | 3
5 | 1 | 5 | 6 | 17 | 17 | -1 | 0 | 4
6 | 2 | 1 | 6 | 17 | 6 | 4 | 1 | 0
7 | 2 | 2 | 6 | 17 | 7 | 8 | 1 | 1
8 | 2 | 3 | 6 | 17 | 11 | 11 | 1 | 2
9 | 2 | 4 | 6 | 17 | 12 | 13 | 1 | 3
10 | 2 | 5 | 6 | 17 | 17 | -1 | 0 | 4
11 | 3 | 1 | 6 | 17 | 6 | 4 | 1 | 0
12 | 3 | 2 | 6 | 17 | 7 | 8 | 1 | 1
13 | 3 | 3 | 6 | 17 | 11 | 9 | 1 | 2
14 | 3 | 4 | 6 | 17 | 16 | 15 | 1 | 3
15 | 3 | 5 | 6 | 17 | 17 | -1 | 0 | 4
16 | 4 | 1 | 6 | 17 | 6 | 2 | 1 | 0
17 | 4 | 2 | 6 | 17 | 10 | 5 | 1 | 1
18 | 4 | 3 | 6 | 17 | 11 | 9 | 1 | 2
19 | 4 | 4 | 6 | 17 | 16 | 15 | 1 | 3
20 | 4 | 5 | 6 | 17 | 17 | -1 | 0 | 4
(20 rows)

/* --q3 */
Expand Down
2 changes: 1 addition & 1 deletion pgtap/ksp/ksp/edge_cases/issue_1891.pg
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ RETURN QUERY
SELECT is(have, 5);

prepare q2 AS
SELECT * FROM
SELECT seq, path_id, path_seq, node, edge, cost, agg_cost FROM
pgr_ksp('SELECT * FROM fiber', 1, 4, 10, directed => false, heap_paths => true);

PREPARE r2 AS
Expand Down
19 changes: 12 additions & 7 deletions pgtap/ksp/ksp/types_check.pg
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,31 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
********************************************************************PGR-GNU*/
BEGIN;
/* SELECT plan(5); */
SELECT plan(3);
SELECT plan(5);

SELECT has_function('pgr_ksp');
SELECT has_function('pgr_ksp',ARRAY['text','bigint','bigint','integer','boolean','boolean']);
SELECT function_returns('pgr_ksp',ARRAY['text','bigint','bigint','integer','boolean','boolean'],'setof record');

/* TODO

SELECT set_eq(
$$SELECT proargnames from pg_proc WHERE proname = 'pgr_ksp'$$,
$$SELECT '{"","","","","directed","heap_paths","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$
$$VALUES
('{"","","","directed","heap_paths","seq","path_id","path_seq",start_vid,end_vid,"node","edge","cost","agg_cost"}'::TEXT[]),
('{"","","","","directed","heap_paths","seq","path_id","path_seq",start_vid,end_vid,"node","edge","cost","agg_cost"}'::TEXT[])
$$
);

SELECT set_eq(
$$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_ksp'$$,
$$SELECT '{25,20,20,23,16,16,23,23,23,20,20,701,701}'::OID[] $$
$$VALUES
('{25,25,23,16,16,23,23,23,20,20,20,20,701,701}'::OID[]),
('{25,20,20,23,16,16,23,23,23,20,20,20,20,701,701}'::OID[]),
('{25,20,2277,23,16,16,23,23,23,20,20,20,20,701,701}'::OID[]),
('{25,2277,20,23,16,16,23,23,23,20,20,20,20,701,701}'::OID[]),
('{25,2277,2277,23,16,16,23,23,23,20,20,20,20,701,701}'::OID[])
$$
);

*/

SELECT finish();
ROLLBACK;
4 changes: 3 additions & 1 deletion sql/ksp/ksp.sql
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,16 @@ CREATE FUNCTION pgr_ksp(
OUT seq INTEGER,
OUT path_id INTEGER,
OUT path_seq INTEGER,
OUT start_vid BIGINT,
OUT end_vid BIGINT,
OUT node BIGINT,
OUT edge BIGINT,
OUT cost FLOAT,
OUT agg_cost FLOAT)
RETURNS SETOF RECORD AS
$BODY$
SELECT *
FROM _pgr_ksp(_pgr_get_statement($1), $2, $3, $4, $5, $6);
FROM _v4pgr_ksp(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6);
$BODY$
LANGUAGE SQL VOLATILE STRICT
COST 100
Expand Down