1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
BEGIN;
BEGIN
SET client_min_messages TO NOTICE;
SET
/* -- q1 */
SELECT * FROM pgr_topologicalsort(
$$SELECT id, source, target, cost
FROM edges WHERE cost >= 0
UNION
SELECT id, target, source, reverse_cost
FROM edges WHERE cost < 0$$);
seq | sorted_v
-----+----------
1 | 1
2 | 5
3 | 2
4 | 4
5 | 3
6 | 13
7 | 14
8 | 15
9 | 10
10 | 6
11 | 7
12 | 8
13 | 9
14 | 11
15 | 16
16 | 12
17 | 17
(17 rows)
/* -- q2 */
SELECT * FROM pgr_topologicalsort(
$$SELECT id, source, target, cost, -1 AS reverse_cost
FROM edges WHERE cost >= 0
UNION
SELECT id, source, target, -1, reverse_cost
FROM edges WHERE cost < 0$$);
seq | sorted_v
-----+----------
1 | 5
2 | 2
3 | 4
4 | 13
5 | 14
6 | 1
7 | 3
8 | 15
9 | 10
10 | 6
11 | 7
12 | 8
13 | 9
14 | 11
15 | 12
16 | 16
17 | 17
(17 rows)
/* -- q3 */
SELECT * FROM pgr_topologicalsort(
$$SELECT id, source, target, cost, reverse_cost FROM edges$$);
ERROR: Graph is not DAG
CONTEXT: SQL function "pgr_topologicalsort" statement 1
/* -- q4 */
ROLLBACK;
ROLLBACK
|