Skip to content

Commit 716163e

Browse files
committed
Standardizing output columns pgr_edgeColoring to (edge,color)
1 parent 60e6f39 commit 716163e

6 files changed

Lines changed: 46 additions & 45 deletions

File tree

docqueries/coloring/edgeColoring.pg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-- CopyRight(c) pgRouting developers
22
-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/
33
/* -- q1 */
4-
SELECT * FROM pgr_edgeColoring(
4+
SELECT edge, color FROM pgr_edgeColoring(
55
'SELECT id, source, target, cost, reverse_cost FROM edges
66
ORDER BY id'
77
);

docqueries/coloring/edgeColoring.result

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@ BEGIN
33
SET client_min_messages TO NOTICE;
44
SET
55
/* -- q1 */
6-
SELECT * FROM pgr_edgeColoring(
6+
SELECT edge, color FROM pgr_edgeColoring(
77
'SELECT id, source, target, cost, reverse_cost FROM edges
88
ORDER BY id'
99
);
10-
edge_id | color_id
11-
---------+----------
12-
1 | 3
13-
2 | 2
14-
3 | 3
15-
4 | 4
16-
5 | 4
17-
6 | 1
18-
7 | 2
19-
8 | 1
20-
9 | 2
21-
10 | 5
22-
11 | 5
23-
12 | 3
24-
13 | 2
25-
14 | 1
26-
15 | 3
27-
16 | 1
28-
17 | 1
29-
18 | 1
10+
edge | color
11+
------+-------
12+
1 | 3
13+
2 | 2
14+
3 | 3
15+
4 | 4
16+
5 | 4
17+
6 | 1
18+
7 | 2
19+
8 | 1
20+
9 | 2
21+
10 | 5
22+
11 | 5
23+
12 | 3
24+
13 | 2
25+
14 | 1
26+
15 | 3
27+
16 | 1
28+
17 | 1
29+
18 | 1
3030
(18 rows)
3131

3232
/* -- q2 */

pgtap/coloring/edgeColoring/edge_cases.pg

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
2020
BEGIN;
2121

2222
UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost);
23-
SELECT CASE WHEN NOT min_version('3.3.0') THEN plan(1) ELSE plan(29) END;
23+
SELECT CASE WHEN min_version('4.0.0') THEN plan(29) ELSE plan(1) END;
2424

2525
CREATE OR REPLACE FUNCTION edge_cases()
2626
RETURNS SETOF TEXT AS
2727
$BODY$
2828
BEGIN
2929

30-
IF NOT min_version('3.3.0') THEN
30+
IF NOT min_version('4.0.0') THEN
3131
RETURN QUERY
32-
SELECT skip(1, 'Function is new on 3.3.0');
32+
SELECT skip(1, 'pgr_edgecoloring: testing only signatures standardaized in v4.0.0.');
3333
RETURN;
3434
END IF;
3535

@@ -118,7 +118,7 @@ SELECT set_eq('q5',
118118
);
119119

120120
RETURN QUERY
121-
SELECT ok((SELECT count(DISTINCT color_id) <= 3 FROM pgr_edgeColoring('q5')), 'At most three colors are expected');
121+
SELECT ok((SELECT count(DISTINCT color) <= 3 FROM pgr_edgeColoring('q5')), 'At most three colors are expected');
122122

123123

124124
-- even length cycle test
@@ -142,7 +142,7 @@ SELECT set_eq('q6',
142142
);
143143

144144
RETURN QUERY
145-
SELECT ok((SELECT count(DISTINCT color_id) <= 3 FROM pgr_edgeColoring('q6')), 'At most three colors are expected');
145+
SELECT ok((SELECT count(DISTINCT color) <= 3 FROM pgr_edgeColoring('q6')), 'At most three colors are expected');
146146

147147
-- changing the order of the edges will change the number of colors expected
148148

@@ -165,7 +165,7 @@ SELECT set_eq('q7',
165165
);
166166

167167
RETURN QUERY
168-
SELECT is((SELECT count(DISTINCT color_id)::INTEGER FROM pgr_edgeColoring('q7')), 2, 'Two colors are expected');
168+
SELECT is((SELECT count(DISTINCT color)::INTEGER FROM pgr_edgeColoring('q7')), 2, 'Two colors are expected');
169169

170170

171171
-- odd length cycle test
@@ -200,7 +200,7 @@ SELECT set_eq('q8',
200200
);
201201

202202
RETURN QUERY
203-
SELECT is((SELECT count(DISTINCT color_id)::INTEGER FROM pgr_edgeColoring('q8')), 3, 'Three colors are expected');
203+
SELECT is((SELECT count(DISTINCT color)::INTEGER FROM pgr_edgeColoring('q8')), 3, 'Three colors are expected');
204204

205205

206206
-- 5 vertices cyclic
@@ -237,7 +237,7 @@ SELECT set_eq('q9',
237237
);
238238

239239
RETURN QUERY
240-
SELECT is((SELECT count(DISTINCT color_id)::INTEGER FROM pgr_edgeColoring('q9')), 3, 'Three colors are expected');
240+
SELECT is((SELECT count(DISTINCT color)::INTEGER FROM pgr_edgeColoring('q9')), 3, 'Three colors are expected');
241241

242242

243243
-- self loop test
@@ -344,7 +344,7 @@ SELECT set_eq('q12',
344344
);
345345

346346
RETURN QUERY
347-
SELECT is((SELECT count(DISTINCT color_id)::INTEGER FROM pgr_edgeColoring('q12')), 3, 'Three colors are expected');
347+
SELECT is((SELECT count(DISTINCT color)::INTEGER FROM pgr_edgeColoring('q12')), 3, 'Three colors are expected');
348348

349349

350350
-- 3 vertices multiple edge
@@ -377,7 +377,7 @@ SELECT set_eq('q13',
377377
);
378378

379379
RETURN QUERY
380-
SELECT is((SELECT count(DISTINCT color_id)::INTEGER FROM pgr_edgeColoring('q13')), 2, 'Two colors are expected');
380+
SELECT is((SELECT count(DISTINCT color)::INTEGER FROM pgr_edgeColoring('q13')), 2, 'Two colors are expected');
381381

382382

383383
-- 2 vertices multiple edge
@@ -442,7 +442,7 @@ SELECT set_eq('q15',
442442
);
443443

444444
RETURN QUERY
445-
SELECT is((SELECT count(DISTINCT color_id)::INTEGER FROM pgr_edgeColoring('q15')), 1, 'One color is required');
445+
SELECT is((SELECT count(DISTINCT color)::INTEGER FROM pgr_edgeColoring('q15')), 1, 'One color is required');
446446

447447

448448
END;

pgtap/coloring/edgeColoring/types_check.pg

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1919
********************************************************************PGR-GNU*/
2020
BEGIN;
2121

22-
SELECT CASE WHEN NOT min_version('3.3.0') THEN plan(1) ELSE plan(5) END;
22+
SELECT CASE WHEN NOT min_version('4.0.0') THEN plan(1) ELSE plan(5) END;
2323

2424
CREATE OR REPLACE FUNCTION types_check()
2525
RETURNS SETOF TEXT AS
2626
$BODY$
2727
BEGIN
2828

29-
IF NOT min_version('3.3.0') THEN
29+
IF NOT min_version('4.0.0') THEN
3030
RETURN QUERY
31-
SELECT skip(1, 'Function is new on 3.3.0');
31+
SELECT skip(1, 'pgr_edgecoloring: testing only signatures standardaized in v4.0.0.');
3232
RETURN;
3333
END IF;
3434

@@ -38,7 +38,7 @@ BEGIN
3838

3939
RETURN QUERY
4040
SELECT function_args_eq('pgr_edgecoloring',
41-
$$SELECT '{"","edge_id","color_id"}'::TEXT[] $$
41+
$$SELECT '{"","edge","color"}'::TEXT[] $$
4242
);
4343

4444
RETURN QUERY

sql/coloring/edgeColoring.sql

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
3434
CREATE FUNCTION pgr_edgeColoring(
3535
TEXT, -- edges_sql (required)
3636

37-
OUT edge_id BIGINT,
38-
OUT color_id BIGINT)
37+
OUT edge BIGINT,
38+
OUT color BIGINT)
3939
RETURNS SETOF RECORD AS
4040
$BODY$
41-
BEGIN
42-
RETURN QUERY
43-
SELECT a.edge_id, a.color_id
44-
FROM _pgr_edgeColoring(_pgr_get_statement($1)) AS a;
45-
END;
41+
SELECT edge_id, color_id
42+
FROM _pgr_edgeColoring(_pgr_get_statement($1));
4643
$BODY$
47-
LANGUAGE plpgsql VOLATILE STRICT;
44+
LANGUAGE SQL VOLATILE STRICT;
4845

4946
-- COMMENTS
5047

sql/scripts/build-extension-update-files.pl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,10 @@ sub generate_upgrade_script {
279279
push @commands, drop_special_case_function("pgr_dagshortestpath(text,text)");
280280
}
281281

282+
if ($old_minor >= "3.3") {
283+
push @commands, drop_special_case_function("pgr_edgecoloring(text)");
284+
}
285+
282286
# Row type defined by OUT parameters is different.
283287
# Out parameters changed names on v4.0.0
284288
# Experimental functions

0 commit comments

Comments
 (0)