@@ -24,6 +24,7 @@ vids BIGINT[] = ARRAY[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
2424x BIGINT ;
2525q TEXT ;
2626mainq TEXT ;
27+ otherq TEXT ;
2728expected TEXT ;
2829BEGIN
2930 UPDATE edges
@@ -66,26 +67,32 @@ BEGIN
6667 - 1 ::BIGINT AS target,
6768 - 1 ::FLOAT AS cost$$);
6869
69- q = format(mainq, ARRAY[vids[1 ], vids[2 ]], directed);
70+ otherq = $d$ SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction(
71+ $$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id = ANY(' %1$s' ::BIGINT []) $$,
72+ ARRAY[1 ]::integer [], 1 , ARRAY[]::BIGINT [], ' %2$s' ::BOOLEAN )$d$;
7073
71- RETURN QUERY
72- SELECT set_eq(q,
73- $$ SELECT
74- ' v ' :: CHAR AS type,
75- $$ || vids[ 10 ] || $$:: BIGINT AS id,
76- ARRAY[ $$ || vids[ 5 ] || $$,$$ || vids[ 6 ] || $$] ::BIGINT [] AS contracted_vertices ,
77- - 1 :: BIGINT AS source,
78- - 1 :: BIGINT AS target ,
79- - 1 ::FLOAT AS cost$$) ;
74+ q = format(otherq, ARRAY[vids[ 1 ], vids[ 2 ]], directed);
75+
76+ expected = format($d$
77+ SELECT type, id, unnest
78+ FROM ( VALUES
79+ ( ' v ' :: TEXT , % 1 $s:: BIGINT , % 2 $s ::BIGINT ) ,
80+ ( ' v ' , % 1 $s, % 3 $s)
81+ ) AS t(type, id, unnest)$d$ ,
82+ vids[ 10 ], vids[ 5 ], vids[ 6 ]) ;
8083
81- q = format(mainq, ARRAY[vids[1 ], vids[2 ], vids[3 ]], directed);
84+ RETURN QUERY SELECT set_eq(q, expected);
85+
86+ q = format(otherq, ARRAY[vids[1 ], vids[2 ], vids[3 ]], directed);
8287
8388 expected = format($d$
84- SELECT type, id, contracted_vertices, source, target, cost
89+ SELECT type, id, unnest
8590 FROM (VALUES
86- (' v' ::CHAR , %1 $s::BIGINT , ' %2$s' ::BIGINT [], - 1 ::BIGINT , - 1 ::BIGINT , - 1 ::FLOAT)
87- ) AS t(type, id, contracted_vertices, source, target, cost )$d$,
88- vids[6 ], ARRAY[vids[5 ], vids[10 ], vids[15 ]]) ;
91+ (' v' ::TEXT , %1 $s::BIGINT , %2 $s::BIGINT ),
92+ (' v' , %1 $s, %3 $s),
93+ (' v' , %1 $s, %4 $s)
94+ ) AS t(type, id, unnest)$d$,
95+ vids[6 ], vids[5 ], vids[10 ], vids[15 ]) ;
8996
9097 RETURN QUERY
9198 SELECT set_eq(q, expected);
0 commit comments