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
|
/* :file: This file is part of the pgRouting project.
:copyright: Copyright (c) 2022-2026 pgRouting developers
:license: Creative Commons Attribution-Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0 */
BEGIN;
UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost);
SELECT CASE WHEN min_version('3.2.0') THEN plan(732) ELSE plan(577) END;
-- ONE TO ONE
SELECT style_cost_flow('pgr_maxflowmincost(', ', 6, 10)');
-- ONE TO MANY
SELECT style_cost_flow('pgr_maxflowmincost(', ', 6, ARRAY[10])');
-- MANY TO ONE
SELECT style_cost_flow('pgr_maxflowmincost(', ', ARRAY[6], 10)');
-- MANY TO MANY
SELECT style_cost_flow('pgr_maxflowmincost(', ', ARRAY[6], ARRAY[10])');
CREATE OR REPLACE FUNCTION inner_query() RETURNS SETOF TEXT AS
$BODY$
BEGIN
IF min_version('3.2.0') THEN
-- COMBINATIONS
RETURN QUERY SELECT style_cost_flow('pgr_maxflowmincost(', ', $$SELECT * FROM combinations WHERE target NOT IN (5,6)$$)');
RETURN QUERY SELECT innerquery_combinations('pgr_maxflowmincost($$SELECT * FROM edges$$,',')');
ELSE
RETURN QUERY SELECT skip(1, 'Combinations signature added on 3.2.0');
END IF;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
SELECT inner_query();
SELECT finish();
ROLLBACK;
|