From 9549b38bf8c2ed8224a0998d0145d246d2f1c152 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 31 Mar 2025 19:19:13 -0600 Subject: [PATCH 1/7] (pgtap/tools) creating function to check function types --- tools/testers/general_pgtap_tests.sql | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tools/testers/general_pgtap_tests.sql b/tools/testers/general_pgtap_tests.sql index fa9c9f82cb7..9f0b09aaad9 100644 --- a/tools/testers/general_pgtap_tests.sql +++ b/tools/testers/general_pgtap_tests.sql @@ -50,18 +50,34 @@ $BODY$ END; $BODY$ LANGUAGE SQL; -CREATE OR REPLACE FUNCTION function_types(TEXT, TEXT) +CREATE OR REPLACE FUNCTION function_types_eq(TEXT, TEXT) RETURNS TEXT AS $BODY$ SELECT set_eq(format($$ WITH a AS ( SELECT oid, u.name, u.idx - FROM pg_proc p CROSS JOIN unnest(p.proallargtypes) + FROM pg_catalog.pg_proc p CROSS JOIN unnest(coalesce(p.proallargtypes, p.proargtypes)) WITH ordinality as u(name, idx) WHERE p.proname = '%1$s'), b AS ( - SELECT a.*, t.typname FROM a JOIN pg_type As t on (t.oid = a.name)) + SELECT a.*, t.typname FROM a JOIN pg_catalog.pg_type As t on (t.oid = a.name)) SELECT array_agg(typname ORDER BY idx) FROM b GROUP BY oid $$, $1), $2, $1 || ': Function types'); $BODY$ LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION function_types_has(TEXT, TEXT) +RETURNS TEXT AS +$BODY$ +SELECT set_has(format($$ + WITH + a AS ( + SELECT oid, u.name, u.idx + FROM pg_catalog.pg_proc p CROSS JOIN unnest(coalesce(p.proallargtypes, p.proargtypes)) + WITH ordinality as u(name, idx) + WHERE p.proname = '%1$s'), + b AS ( + SELECT a.*, t.typname FROM a JOIN pg_catalog.pg_type As t on (t.oid = a.name)) + SELECT array_agg(typname ORDER BY idx) FROM b GROUP BY oid + $$, $1), $2, $1 || ': Function types'); +$BODY$ LANGUAGE SQL; From f6c62ec4c9d1048eacbdeb6b5d7c4cd49b1164b3 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 31 Mar 2025 19:19:35 -0600 Subject: [PATCH 2/7] (pgtap/tools) using new functions on tools files --- tools/testers/astar_pgtap_tests.sql | 84 ++++++++++++-------------- tools/testers/dijkstra_pgtap_tests.sql | 38 ++++++------ tools/testers/flow_pgtap_tests.sql | 24 ++++---- tools/testers/spanningtree.sql | 49 +++++++-------- tools/testers/tsp_pgtap_tests.sql | 11 ++-- tools/testers/types_check.sql | 80 ++++++++++++------------ 6 files changed, 131 insertions(+), 155 deletions(-) diff --git a/tools/testers/astar_pgtap_tests.sql b/tools/testers/astar_pgtap_tests.sql index 9b9670c95c7..f67daf7a0e6 100644 --- a/tools/testers/astar_pgtap_tests.sql +++ b/tools/testers/astar_pgtap_tests.sql @@ -3,12 +3,12 @@ CREATE OR REPLACE FUNCTION astar_types_check(fn TEXT) RETURNS SETOF TEXT AS $BODY$ DECLARE the_type_name TEXT = 'double precision'; -the_type_numb TEXT = '701'; +the_type_numb TEXT = 'float8'; BEGIN IF fn = 'pgr_bdastar' THEN the_type_name = 'numeric'; - the_type_numb = '1700'; + the_type_numb = 'numeric'; END IF; RETURN QUERY SELECT has_function(fn); @@ -41,15 +41,14 @@ BEGIN ('{"","","directed","heuristic","factor","epsilon","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$, 'Column names'); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, format($$VALUES - ('{25,20,20,16,23,%1$s,%1$s, 23,23,20,20,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,%1$s,%1$s, 23,23,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,%1$s,%1$s, 23,23,20,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,%1$s,%1$s,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,%1$s,%1$s, 23,23,20,20,20,20,701,701}'::OID[]) - $$,the_type_numb), 'Column types'); + ('{text,int8,int8,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) + $$,the_type_numb)); ELSIF min_version('3.2.0') THEN RETURN QUERY SELECT set_eq( @@ -62,15 +61,14 @@ BEGIN ('{"","","directed","heuristic","factor","epsilon","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$, 'Old column names'); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, format($$VALUES - ('{25,20,20,16,23,%1$s,%1$s,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,%1$s,%1$s,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,%1$s,%1$s,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,%1$s,%1$s,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,%1$s,%1$s,23,23,20,20,20,20,701,701}'::OID[]) - $$,the_type_numb), 'Old column types'); + ('{text,int8,int8,bool,int4,%1$s,%1$s,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) + $$,the_type_numb)); ELSE RETURN QUERY SELECT set_eq( format($$SELECT proargnames FROM pg_proc WHERE proname = %1$L$$,fn), @@ -81,14 +79,13 @@ BEGIN ('{"","","","directed","heuristic","factor","epsilon","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$, 'Before combinations column names'); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, format($$VALUES - ('{25,20,20,16,23,%1$s,%1$s,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,%1$s,%1$s,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,%1$s,%1$s,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,%1$s,%1$s,23,23,20,20,20,20,701,701}'::OID[]) - $$,the_type_numb), 'Before combinations column types'); + ('{text,int8,int8,bool,int4,%1$s,%1$s,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,%1$s,%1$s,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) + $$,the_type_numb)); END IF; END; @@ -99,12 +96,12 @@ CREATE OR REPLACE FUNCTION astarcost_types_check(fn TEXT) RETURNS SETOF TEXT AS $BODY$ DECLARE the_type_name TEXT = 'double precision'; -the_type_numb TEXT = '701'; +the_type_numb TEXT = 'float8'; BEGIN IF fn = 'pgr_bdastarcost' THEN the_type_name = 'numeric'; - the_type_numb = '1700'; + the_type_numb = 'numeric'; END IF; RETURN QUERY SELECT has_function(fn); @@ -137,14 +134,13 @@ BEGIN ('{"","","","directed","heuristic","factor","epsilon","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, format($$VALUES - ('{25,20,20,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,20,2277,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,2277,20,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,2277,2277,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,25,16,23,%1$s,%1$s,20,20,701}'::OID[]) + ('{text,int8,int8,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,text,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]) $$,the_type_numb)); ELSE RETURN QUERY SELECT set_eq( @@ -156,13 +152,12 @@ BEGIN ('{"","","","directed","heuristic","factor","epsilon","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, format($$VALUES - ('{25,20,20,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,20,2277,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,2277,20,16,23,%1$s,%1$s,20,20,701}'::OID[]), - ('{25,2277,2277,16,23,%1$s,%1$s,20,20,701}'::OID[]) + ('{text,int8,int8,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]) $$,the_type_numb)); END IF; @@ -174,12 +169,12 @@ CREATE OR REPLACE FUNCTION astarcostmatrix_types_check(fn TEXT) RETURNS SETOF TE $BODY$ DECLARE the_type_name TEXT = 'double precision'; -the_type_numb TEXT = '701'; +the_type_numb TEXT = 'float8'; BEGIN IF fn = 'pgr_bdastarcostmatrix' THEN the_type_name = 'numeric'; - the_type_numb = '1700'; + the_type_numb = 'numeric'; END IF; RETURN QUERY SELECT has_function(fn); @@ -194,10 +189,9 @@ BEGIN ('{"","","directed","heuristic","factor","epsilon","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, format($$VALUES - ('{25,2277,16,23,%1$s,%1$s,20,20,701}'::OID[]) + ('{text,anyarray,bool,int4,%1$s,%1$s,int8,int8,float8}'::TEXT[]) $$,the_type_numb)); END; diff --git a/tools/testers/dijkstra_pgtap_tests.sql b/tools/testers/dijkstra_pgtap_tests.sql index 46790131259..c3af2ffac36 100644 --- a/tools/testers/dijkstra_pgtap_tests.sql +++ b/tools/testers/dijkstra_pgtap_tests.sql @@ -158,15 +158,14 @@ BEGIN ('{"","","","directed","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$,'proargnames'); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,20, 16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,20,2277, 16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20, 16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25, 16,23,23,20,20,20,20,701,701}'::OID[]) - $$,'proallargtypes'); + ('{text,int8,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) + $$); RETURN; END IF; @@ -185,14 +184,13 @@ IF (min_version('3.2.0') AND fn != 'pgr_dijkstra') OR (min_version('3.1.0') AND ('{"","","directed","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$); ELSE @@ -205,13 +203,11 @@ ELSE ('{"","","","directed","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$,fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$); END IF; diff --git a/tools/testers/flow_pgtap_tests.sql b/tools/testers/flow_pgtap_tests.sql index 7051ff23010..5f2bce579d4 100644 --- a/tools/testers/flow_pgtap_tests.sql +++ b/tools/testers/flow_pgtap_tests.sql @@ -198,14 +198,13 @@ BEGIN ('{"","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[]) $$), - set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn_name), + function_types_eq(fn_name, $$VALUES - ('{25,20,20,23,20,20,20,20,20}'::OID[]), - ('{25,20,2277,23,20,20,20,20,20}'::OID[]), - ('{25,2277,20,23,20,20,20,20,20}'::OID[]), - ('{25,2277,2277,23,20,20,20,20,20}'::OID[]), - ('{25,25,23,20,20,20,20,20}'::OID[]) + ('{text,int8,int8,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,int8,anyarray,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,anyarray,int8,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,text,int4,int8,int8,int8,int8,int8}'::TEXT[]) $$) ) ELSE @@ -219,13 +218,12 @@ BEGIN ('{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[]) $$), - set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn_name), + function_types_eq(fn_name, $$VALUES - ('{25,20,20,23,20,20,20,20,20}'::OID[]), - ('{25,20,2277,23,20,20,20,20,20}'::OID[]), - ('{25,2277,20,23,20,20,20,20,20}'::OID[]), - ('{25,2277,2277,23,20,20,20,20,20}'::OID[]) + ('{text,int8,int8,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,int8,anyarray,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,anyarray,int8,int4,int8,int8,int8,int8,int8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,int8,int8,int8,int8,int8}'::TEXT[]) $$) ) END; diff --git a/tools/testers/spanningtree.sql b/tools/testers/spanningtree.sql index b7f0d74bd9a..452d6bbbffe 100644 --- a/tools/testers/spanningtree.sql +++ b/tools/testers/spanningtree.sql @@ -11,9 +11,8 @@ BEGIN $$SELECT '{"","edge","cost"}'::TEXT[] $$ ); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn), - $$SELECT '{25,20,701}'::OID[] $$ + RETURN QUERY SELECT function_types_eq(fn, + $$SELECT '{text,int8,float8}'::TEXT[] $$ ); END; @@ -40,11 +39,10 @@ BEGIN $$ ); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ); @@ -57,11 +55,10 @@ BEGIN $$ ); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,20,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20,20,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ); @@ -96,15 +93,14 @@ BEGIN $$ ); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,701,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,701,20,20,20,20,20,701,701}'::OID[]), - ('{25,20,1700,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,1700,20,20,20,20,20,701,701}'::OID[]), - ('{25,20,701,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,701,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,float8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,float8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,numeric,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,numeric,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,float8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,float8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ); @@ -117,15 +113,14 @@ BEGIN $$ ); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn), + RETURN QUERY SELECT function_types_eq(fn, $$VALUES - ('{25,20,701,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,701,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,20,1700,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,1700,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,20,701,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,701,20,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,float8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,float8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,numeric,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,numeric,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,float8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,float8,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ); diff --git a/tools/testers/tsp_pgtap_tests.sql b/tools/testers/tsp_pgtap_tests.sql index 8038aed76b6..6bf015a161f 100644 --- a/tools/testers/tsp_pgtap_tests.sql +++ b/tools/testers/tsp_pgtap_tests.sql @@ -184,9 +184,8 @@ BEGIN 'parameters', 'parameter names'); RETURN QUERY - SELECT set_eq( - format($$SELECT proargnames FROM pg_proc WHERE proname = %1$L$$, fn), - $$VALUES ('{25,20,20,23,20,701,701}'::OID[]) $$, 'parameter_types' + SELECT function_types_eq(fn, + $$VALUES ('{text,int8,int8,23,int8,float8,float8}'::TEXT[]) $$ ); END; $BODY$ @@ -233,10 +232,8 @@ BEGIN RETURN QUERY -- parameter types - SELECT set_eq( - format($$SELECT proallargtypes FROM pg_proc WHERE proname = %1$L$$, fn), - $$SELECT '{25,20,20,701,23,23,23,701,701,701,16,23,20,701,701}'::OID[] $$, - fn || ' parameter types' + SELECT function_types_eq(fn, + $$SELECT '{text,int8,int8,float8,int4,int4,int4,float8,float8,float8,bool,int4,int8,float8,float8}'::TEXT[] $$ ); END; $BODY$ diff --git a/tools/testers/types_check.sql b/tools/testers/types_check.sql index 6332b1b621f..7585e8831e1 100644 --- a/tools/testers/types_check.sql +++ b/tools/testers/types_check.sql @@ -4,18 +4,18 @@ $BODY$ DECLARE params_types_words TEXT[] = ARRAY['text']; params_names TEXT[] = ARRAY['']; - params_numbers OID[] = ARRAY[25]; + params_numbers TEXT[] = ARRAY['text']; optional_params_types_words TEXT[] = ARRAY['boolean']; optional_params_names TEXT[] = ARRAY['directed']; - optional_params_numbers OID[] = ARRAY[16]; + optional_params_numbers TEXT[] = ARRAY['bool']; return_params_names TEXT[]; - return_params_numbers OID[]; + return_params_numbers TEXT[]; return_params_names_start TEXT[] = ARRAY['seq','path_seq']; - return_params_numbers_start OID[] = ARRAY[23,23]; + return_params_numbers_start TEXT[] = '{int4,int4}'::TEXT[]; return_params_names_end TEXT[] = ARRAY['node','edge','cost','agg_cost']; - return_params_numbers_end OID[] = ARRAY[20,20,701,701]; + return_params_numbers_end TEXT[] = '{int8,int8,float8,float8}'::TEXT; start_v TEXT = 'start_vid'; end_v TEXT = 'end_vid'; @@ -33,14 +33,14 @@ BEGIN IF fn LIKE '%trsp%' THEN params_types_words := params_types_words || 'text'::TEXT; params_names := params_names || ARRAY['']; - params_numbers := params_numbers || ARRAY[25::OID]; + params_numbers := params_numbers || ARRAY['text']; END IF; IF fn = 'pgr_withpoints' THEN return_params_names = return_params_names || ARRAY['start_pid','end_pid']; ELSE return_params_names = return_params_names || ARRAY['start_vid','end_vid']; - return_params_numbers = return_params_numbers || ARRAY[20,20]::OID[]; + return_params_numbers = return_params_numbers || ARRAY['int8','int8']::TEXT[]; END IF; return_params_names = return_params_names || return_params_names_end; return_params_numbers = return_params_numbers || return_params_numbers_end; @@ -48,10 +48,10 @@ BEGIN IF fn LIKE '%withpoints%' THEN params_types_words := params_types_words || 'text'::TEXT; params_names := params_names || ARRAY['']; - params_numbers := params_numbers || ARRAY[25::OID]; + params_numbers := params_numbers || ARRAY['text']; optional_params_types_words := optional_params_types_words || ARRAY['character','boolean']; optional_params_names := optional_params_names || ARRAY['driving_side','details']; - optional_params_numbers := optional_params_numbers || ARRAY[1042::OID, 16::OID]; + optional_params_numbers := optional_params_numbers || ARRAY['bpchar','bool']; END IF; @@ -104,26 +104,25 @@ BEGIN ),'proargnames ' || fn); RETURN QUERY - SELECT bag_has( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$, fn), - format('VALUES (%1$L::OID[]),(%2$L::OID[]),(%3$L::OID[]),(%4$L::OID[])', + SELECT function_types_eq(fn, + format('VALUES (%1$L::TEXT[]),(%2$L::TEXT[]),(%3$L::TEXT[]),(%4$L::TEXT[])', -- one to one '{' || array_to_string( - params_numbers || ARRAY[20,20]::OID[] || optional_params_numbers || return_params_numbers_start || return_params_numbers_end,',') + params_numbers || '{int8,int8}'::TEXT[] || optional_params_numbers || return_params_numbers_start || return_params_numbers_end,',') || '}', -- one to many '{' || array_to_string( - params_numbers || ARRAY[20,2277]::OID[] || optional_params_numbers || return_params_numbers_start || 20::OID || return_params_numbers_end,',') + params_numbers || '{int8,anyarray}'::TEXT[] || optional_params_numbers || return_params_numbers_start || 'int8' || return_params_numbers_end,',') || '}', -- many to one '{' || array_to_string( - params_numbers || ARRAY[2277,20]::OID[] || optional_params_numbers || return_params_numbers_start || 20::OID || return_params_numbers_end,',') + params_numbers || '{anyarray,int8}'::TEXT[] || optional_params_numbers || return_params_numbers_start || 'int8' || return_params_numbers_end,',') || '}', -- many to many '{' || array_to_string( - params_numbers || ARRAY[2277,2277]::OID[] || optional_params_numbers || return_params_numbers_start || ARRAY[20,20]::OID[] || return_params_numbers_end,',') + params_numbers || '{anyarray,anyarray}'::TEXT[] || optional_params_numbers || return_params_numbers_start || '{int8,int8}'::TEXT[] || return_params_numbers_end,',') || '}' - ),'proallargtypes ' || fn); + )); IF (min_version('3.1.0') AND fn = 'pgr_dijkstra') OR (min_version('3.2.0') AND fn = 'pgr_withpoints') THEN -- combinations @@ -137,11 +136,10 @@ BEGIN ),'proargnames ' || fn); RETURN QUERY - SELECT bag_has( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$, fn), - format('VALUES (%1$L::OID[])', + SELECT function_types_eq(fn, + format('VALUES (%1$L::TEXT[])', '{' || array_to_string( - params_numbers || 25::OID || optional_params_numbers || return_params_numbers_start || ARRAY[20,20]::OID[] || return_params_numbers_end,',') + params_numbers || 'text'::TEXT || optional_params_numbers || return_params_numbers_start || '{int8,int8}'::TEXT[] || return_params_numbers_end,',') || '}' ),'proallargtypes ' || fn); @@ -163,30 +161,29 @@ BEGIN ),'proargnames ' || fn); RETURN QUERY - SELECT bag_has( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$, fn), - format('VALUES (%1$L::OID[]),(%2$L::OID[]),(%3$L::OID[]),(%4$L::OID[])', + SELECT function_types_has(fn, + format('VALUES (%1$L::TEXT[]),(%2$L::TEXT[]),(%3$L::TEXT[]),(%4$L::TEXT[])', -- one to one '{' || array_to_string( - params_numbers || ARRAY[20,20]::OID[] || optional_params_numbers || return_params_numbers,',') + params_numbers || '{int8,int8}'::TEXT[] || optional_params_numbers || return_params_numbers,',') || '}', -- one to many '{' || array_to_string( - params_numbers || ARRAY[20,2277]::OID[] || optional_params_numbers || return_params_numbers,',') + params_numbers || '{int8,anyarray}'::TEXT[] || optional_params_numbers || return_params_numbers,',') || '}', -- many to one '{' || array_to_string( - params_numbers || ARRAY[2277,20]::OID[] || optional_params_numbers || return_params_numbers,',') + params_numbers || '{anyarray,int8}'::TEXT[] || optional_params_numbers || return_params_numbers,',') || '}', -- many to many '{' || array_to_string( - params_numbers || ARRAY[2277,2277]::OID[] || optional_params_numbers || return_params_numbers,',') + params_numbers || '{anyarray,anyarray}'::TEXT[] || optional_params_numbers || return_params_numbers,',') || '}', -- combinations '{' || array_to_string( - params_numbers || 25::OID || optional_params_numbers || return_params_numbers,',') + params_numbers || 'text'::TEXT || optional_params_numbers || return_params_numbers,',') || '}' - ),'proallargtypes ' || fn); + )); END; $BODY$ @@ -199,14 +196,14 @@ DECLARE -- edges sql params_types_words TEXT[] = ARRAY['text']; params_names TEXT[] = ARRAY['']; - params_numbers OID[] = ARRAY[25]; + params_numbers TEXT[] = ARRAY['text']; optional_params_types_words TEXT[] = ARRAY['boolean','boolean','boolean']; optional_params_names TEXT[] = ARRAY['directed','strict','u_turn_on_edge']; - optional_params_numbers OID[] = ARRAY[16,16,16]; + optional_params_numbers TEXT[] = '{bool,bool,bool}'::TEXT[]; return_params_names TEXT[] = ARRAY['seq','path_id','path_seq','start_vid','end_vid','node','edge','cost','agg_cost','route_agg_cost']; - return_params_numbers OID[] = ARRAY[23,23,23,20,20,20,20,701,701,701]; + return_params_numbers TEXT[] = '{int4,int4,int4,int8,int8,int8,int8,float8,float8,float8}'::TEXT[]; BEGIN IF fn IN ('pgr_trspvia','pgr_trspvia_withpoints','pgr_withpointsvia') AND NOT min_version('3.4.0') THEN @@ -218,24 +215,24 @@ BEGIN -- restrictions sql params_types_words := params_types_words || 'text'::TEXT; params_names := params_names || ARRAY['']; - params_numbers := params_numbers || ARRAY[25::OID]; + params_numbers := params_numbers || ARRAY['text']; END IF; IF fn LIKE '%withpoints%' THEN -- points sql params_types_words := params_types_words || 'text'::TEXT; params_names := params_names || ARRAY['']; - params_numbers := params_numbers || ARRAY[25::OID]; + params_numbers := params_numbers || ARRAY['text']; -- points optionals optional_params_types_words := optional_params_types_words || ARRAY['character','boolean']; optional_params_names := optional_params_names || ARRAY['driving_side','details']; - optional_params_numbers := optional_params_numbers || ARRAY[1042::OID, 16::OID]; + optional_params_numbers := optional_params_numbers || '{bpchar,bool}'::TEXT[]; END IF; -- vias params_types_words := params_types_words || 'anyarray'::TEXT; params_names := params_names || ARRAY['']; - params_numbers := params_numbers || ARRAY[2277::OID]; + params_numbers := params_numbers || ARRAY['anyarray']; RETURN QUERY SELECT has_function(fn); RETURN QUERY SELECT has_function(fn, params_types_words || optional_params_types_words); @@ -251,15 +248,14 @@ BEGIN || '"}'), 'proargnames ' || fn); - RETURN QUERY SELECT set_eq( - format($$SELECT proallargtypes from pg_proc where proname = %1$L$$, fn), + RETURN QUERY SELECT function_types_eq(fn, format( - $$VALUES (%1$L::OID[])$$, + $$VALUES (%1$L::TEXT[])$$, -- one via '{"' || array_to_string( params_numbers || optional_params_numbers || return_params_numbers,'","') - || '"}'), - 'proargnames ' || fn); + || '"}')); + END; $BODY$ From 183d28ba9140b8b2392fb3e3f18deed25ee7d12e Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 31 Mar 2025 19:48:34 -0600 Subject: [PATCH 3/7] (pgtap) Using the function_types_eq and function_types_has --- pgtap/allpairs/floydWarshall/types_check.pg | 5 ++-- pgtap/allpairs/johnson/types_check.pg | 5 ++-- .../bdDijkstra/bdDijkstraCost/types_check.pg | 26 ++++++++-------- .../bdDijkstraCostMatrix/types_check.pg | 5 ++-- .../bellman_ford/bellman_ford/types_check.pg | 24 +++++++-------- pgtap/bellman_ford/edwardMoore/types_check.pg | 24 +++++++-------- pgtap/chinese/chinesePostman/types_check.pg | 6 ++-- .../chinese/chinesePostmanCost/types_check.pg | 5 ++-- pgtap/circuits/hawickCircuits/types_check.pg | 5 ++-- pgtap/coloring/bipartite/types_check.pg | 5 ++-- pgtap/coloring/edgeColoring/types_check.pg | 5 ++-- .../sequentialVertexColoring/types_check.pg | 5 ++-- .../articulationPoints/types_check.pg | 5 ++-- .../biconnectedComponents/types_check.pg | 5 ++-- pgtap/components/bridges/types_check.pg | 5 ++-- .../connectedComponenes/types_check.pg | 5 ++-- pgtap/components/makeConnected/types_check.pg | 5 ++-- .../strongComponenets/types_check.pg | 5 ++-- pgtap/contraction/contraction/types_check.pg | 7 ++--- .../contractionDeadEnd/types_check.pg | 2 +- .../contractionLinear/types_check.pg | 2 +- pgtap/dijkstra/dijkstraCost/types_check.pg | 24 +++++++-------- .../dijkstraCostMatrix/types_check.pg | 5 ++-- pgtap/dijkstra/dijkstraNear/types_check.pg | 11 ++++--- .../dijkstra/dijkstraNearCost/types_check.pg | 11 ++++--- .../dijkstra/driving_distance/types_check.pg | 14 ++++----- .../types_check.pg | 9 +++--- pgtap/ksp/ksp/types_check.pg | 18 +++++------ pgtap/ksp/turnRestrictedPath/types_check.pg | 5 ++-- pgtap/ksp/withPointsKSP/types_check.pg | 22 +++++++------- pgtap/lineGraph/lineGraph/types_check.pg | 5 ++-- pgtap/lineGraph/lineGraphFull/types_check.pg | 5 ++-- .../max_flow/edgedisjointpaths/types_check.pg | 24 +++++++-------- .../maxCardinalityMatch/types_check.pg | 12 ++++---- pgtap/max_flow/maxFlow/types_check.pg | 30 +++++++++---------- pgtap/max_flow/maxFlowMinCost/types_check.pg | 26 ++++++++-------- .../maxFlowMinCost_Cost/types_check.pg | 24 +++++++-------- .../betweennessCentrality/types_check.pg | 5 ++-- pgtap/metrics/degree/types_check.pg | 12 ++++---- pgtap/mincut/stoerWagner/types_check.pg | 5 ++-- .../cuthillMckeeOrdering/types_check.pg | 5 ++-- pgtap/ordering/topologicalSort/types_check.pg | 5 ++-- pgtap/others/alpha_shape/types_check.pg | 11 ++----- pgtap/others/dagShortestPath/types_check.pg | 25 ++++++++-------- pgtap/others/transitiveClosure/types_check.pg | 5 ++-- pgtap/pickDeliver/pickDeliver/types_check.pg | 8 ++--- .../pickDeliverEuclidean/types_check.pg | 8 ++--- pgtap/pickDeliver/vrp_basic/types_check.pg | 6 ++-- pgtap/topology/analyzeGraph/types_check.pg | 6 ++-- pgtap/topology/analyzeOneWay/types_check.pg | 5 ++-- pgtap/topology/createTopology/types_check.pg | 5 ++-- .../createVerticesTable/types_check.pg | 5 ++-- pgtap/topology/extractVertices/types_check.pg | 9 ++---- pgtap/topology/nodeNetwork/types_check.pg | 5 ++-- .../binaryBreadthFirstSearch/types_check.pg | 26 ++++++++-------- .../breadthFirstSearch/types_check.pg | 7 ++--- .../traversal/depthFirstSearch/types_check.pg | 7 ++--- pgtap/trsp/trsp/types_check.pg | 14 +++++---- pgtap/trsp/trspViaEdges/types_check.pg | 5 ++-- pgtap/trsp/trspViaVertices/types_check.pg | 5 ++-- pgtap/utilities/findCloseEdges/types_check.pg | 4 +-- pgtap/version/full_version/types_check.pg | 5 ++-- pgtap/version/version/types_check.pg | 17 +---------- pgtap/withPoints/withPoints/types_check.pg | 24 +++++++-------- .../withPoints/withPointsCost/types_check.pg | 26 ++++++++-------- .../withPointsCostMatrix/types_check.pg | 5 ++-- pgtap/withPoints/withPointsDD/types_check.pg | 20 ++++++------- 67 files changed, 310 insertions(+), 391 deletions(-) diff --git a/pgtap/allpairs/floydWarshall/types_check.pg b/pgtap/allpairs/floydWarshall/types_check.pg index 3b180fd1463..d6581e6d36c 100644 --- a/pgtap/allpairs/floydWarshall/types_check.pg +++ b/pgtap/allpairs/floydWarshall/types_check.pg @@ -31,10 +31,9 @@ SELECT set_eq( ('{"","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_floydwarshall'$$, +SELECT function_types_eq('pgr_floydwarshall', $$VALUES - ('{25,16,20,20,701}'::OID[]) + ('{text,bool,int8,int8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/allpairs/johnson/types_check.pg b/pgtap/allpairs/johnson/types_check.pg index e087f3d2f35..f27ec550ecc 100644 --- a/pgtap/allpairs/johnson/types_check.pg +++ b/pgtap/allpairs/johnson/types_check.pg @@ -31,10 +31,9 @@ SELECT set_eq( ('{"","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_johnson'$$, +SELECT function_types_eq('pgr_johnson', $$VALUES - ('{25,16,20,20,701}'::OID[]) + ('{text,bool,int8,int8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/bdDijkstra/bdDijkstraCost/types_check.pg b/pgtap/bdDijkstra/bdDijkstraCost/types_check.pg index 0abdc306d1e..3273de76778 100644 --- a/pgtap/bdDijkstra/bdDijkstraCost/types_check.pg +++ b/pgtap/bdDijkstra/bdDijkstraCost/types_check.pg @@ -60,14 +60,14 @@ WHEN min_version('3.2.0') THEN ('{"","","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]), ('{"","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bddijkstracost'$$, + + function_types_eq('pgr_bddijkstracost', $$VALUES - ('{25,25,16,20,20,701}'::OID[]), - ('{25,20,20,16,20,20,701}'::OID[]), - ('{25,20,2277,16,20,20,701}'::OID[]), - ('{25,2277,20,16,20,20,701}'::OID[]), - ('{25,2277,2277,16,20,20,701}'::OID[]) + ('{text,text,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int8,int8,float8}'::TEXT[]) $$) ) ELSE @@ -80,13 +80,13 @@ ELSE ('{"","","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]), ('{"","","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bddijkstracost'$$, + + function_types_eq('pgr_bddijkstracost', $$VALUES - ('{25,20,20,16,20,20,701}'::OID[]), - ('{25,20,2277,16,20,20,701}'::OID[]), - ('{25,2277,20,16,20,20,701}'::OID[]), - ('{25,2277,2277,16,20,20,701}'::OID[]) + ('{text,int8,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int8,int8,float8}'::TEXT[]) $$) ) END; diff --git a/pgtap/bdDijkstra/bdDijkstraCostMatrix/types_check.pg b/pgtap/bdDijkstra/bdDijkstraCostMatrix/types_check.pg index b4f90ccbc5c..277d9dbf110 100644 --- a/pgtap/bdDijkstra/bdDijkstraCostMatrix/types_check.pg +++ b/pgtap/bdDijkstra/bdDijkstraCostMatrix/types_check.pg @@ -31,10 +31,9 @@ SELECT set_eq( ('{"","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bddijkstracostmatrix'$$, +SELECT function_types_eq('pgr_bddijkstracostmatrix', $$VALUES - ('{25,2277,16,20,20,701}'::OID[]) + ('{text,anyarray,bool,int8,int8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/bellman_ford/bellman_ford/types_check.pg b/pgtap/bellman_ford/bellman_ford/types_check.pg index 291ddab79b7..9ec4a763f3e 100644 --- a/pgtap/bellman_ford/bellman_ford/types_check.pg +++ b/pgtap/bellman_ford/bellman_ford/types_check.pg @@ -64,14 +64,13 @@ BEGIN $$ ), - set_has( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bellmanford'$$, + function_types_eq('pgr_bellmanford', $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) @@ -87,13 +86,12 @@ BEGIN $$ ), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bellmanford'$$, + function_types_eq('pgr_bellmanford', $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) diff --git a/pgtap/bellman_ford/edwardMoore/types_check.pg b/pgtap/bellman_ford/edwardMoore/types_check.pg index 0a21644c8cf..668b76d0665 100644 --- a/pgtap/bellman_ford/edwardMoore/types_check.pg +++ b/pgtap/bellman_ford/edwardMoore/types_check.pg @@ -64,14 +64,13 @@ BEGIN $$ ), - set_has( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_edwardmoore'$$, + function_types_eq('pgr_edwardmoore', $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) @@ -87,13 +86,12 @@ BEGIN $$ ), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_edwardmoore'$$, + function_types_eq('pgr_edwardmoore', $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) diff --git a/pgtap/chinese/chinesePostman/types_check.pg b/pgtap/chinese/chinesePostman/types_check.pg index 8cf7d599083..875c435d977 100644 --- a/pgtap/chinese/chinesePostman/types_check.pg +++ b/pgtap/chinese/chinesePostman/types_check.pg @@ -31,10 +31,8 @@ SELECT set_eq( $$SELECT '{"", "seq", "node", "edge", "cost", "agg_cost"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_chinesepostman'$$, - $$SELECT '{25,23,20,20,701,701}'::OID[] $$ -); +SELECT function_types_eq('pgr_chinesepostman', + $$SELECT '{text,int4,int8,int8,float8,float8}'::TEXT[] $$); SELECT * FROM finish(); ROLLBACK; diff --git a/pgtap/chinese/chinesePostmanCost/types_check.pg b/pgtap/chinese/chinesePostmanCost/types_check.pg index 8becde73f77..5e367221e60 100644 --- a/pgtap/chinese/chinesePostmanCost/types_check.pg +++ b/pgtap/chinese/chinesePostmanCost/types_check.pg @@ -36,9 +36,8 @@ SELECT set_eq( $$SELECT 701 $$ ); -SELECT set_eq( - $$SELECT proargtypes from pg_proc where proname = 'pgr_chinesepostmancost'$$, - $$SELECT '[0:0]={25}'::OID[] $$ +SELECT function_types_eq('pgr_chinesepostmancost', + $$SELECT '{text}'::TEXT[] $$ ); diff --git a/pgtap/circuits/hawickCircuits/types_check.pg b/pgtap/circuits/hawickCircuits/types_check.pg index b870bb7bda9..7632889d813 100644 --- a/pgtap/circuits/hawickCircuits/types_check.pg +++ b/pgtap/circuits/hawickCircuits/types_check.pg @@ -47,10 +47,9 @@ SELECT set_eq( $$); RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_hawickcircuits'$$, +SELECT function_types_eq('pgr_hawickcircuits', $$VALUES - ('{25,23,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$); END; diff --git a/pgtap/coloring/bipartite/types_check.pg b/pgtap/coloring/bipartite/types_check.pg index bfc4cbf9c74..ed33a94aa65 100644 --- a/pgtap/coloring/bipartite/types_check.pg +++ b/pgtap/coloring/bipartite/types_check.pg @@ -43,10 +43,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bipartite'$$, + SELECT function_types_eq('pgr_bipartite', $$VALUES - ('{25,20,20}'::OID[]) + ('{text,int8,int8}'::TEXT[]) $$ ); END; diff --git a/pgtap/coloring/edgeColoring/types_check.pg b/pgtap/coloring/edgeColoring/types_check.pg index ed0559f9667..5773dabd660 100644 --- a/pgtap/coloring/edgeColoring/types_check.pg +++ b/pgtap/coloring/edgeColoring/types_check.pg @@ -43,10 +43,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_edgecoloring'$$, + SELECT function_types_eq('pgr_edgecoloring', $$VALUES - ('{25,20,20}'::OID[]) + ('{text,int8,int8}'::TEXT[]) $$ ); diff --git a/pgtap/coloring/sequentialVertexColoring/types_check.pg b/pgtap/coloring/sequentialVertexColoring/types_check.pg index db676a9debe..e0c0368b25d 100644 --- a/pgtap/coloring/sequentialVertexColoring/types_check.pg +++ b/pgtap/coloring/sequentialVertexColoring/types_check.pg @@ -43,10 +43,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_sequentialvertexcoloring'$$, + SELECT function_types_eq('pgr_sequentialvertexcoloring', $$VALUES - ('{25,20,20}'::OID[]) + ('{text,int8,int8}'::TEXT[]) $$ ); END; diff --git a/pgtap/components/articulationPoints/types_check.pg b/pgtap/components/articulationPoints/types_check.pg index eb80c7ca442..01002c53515 100644 --- a/pgtap/components/articulationPoints/types_check.pg +++ b/pgtap/components/articulationPoints/types_check.pg @@ -31,9 +31,8 @@ SELECT set_eq( $$SELECT '{"", "node"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_articulationpoints'$$, - $$SELECT '{25,20}'::OID[] $$ +SELECT function_types_eq('pgr_articulationpoints', + $$SELECT '{text,int8}'::TEXT[] $$ ); SELECT * FROM finish(); diff --git a/pgtap/components/biconnectedComponents/types_check.pg b/pgtap/components/biconnectedComponents/types_check.pg index 9770e657ccd..2112fb0a60b 100644 --- a/pgtap/components/biconnectedComponents/types_check.pg +++ b/pgtap/components/biconnectedComponents/types_check.pg @@ -31,9 +31,8 @@ SELECT set_eq( $$SELECT '{"", "seq","component","edge"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_biconnectedcomponents'$$, - $$SELECT '{25,20,20,20}'::OID[] $$ +SELECT function_types_eq('pgr_biconnectedcomponents', + $$SELECT '{text,int8,int8,int8}'::TEXT[] $$ ); SELECT * FROM finish(); diff --git a/pgtap/components/bridges/types_check.pg b/pgtap/components/bridges/types_check.pg index e9c6797d3ce..68d2e7f9c91 100644 --- a/pgtap/components/bridges/types_check.pg +++ b/pgtap/components/bridges/types_check.pg @@ -31,9 +31,8 @@ SELECT set_eq( $$SELECT '{"", "edge"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_bridges'$$, - $$SELECT '{25,20}'::OID[] $$ +SELECT function_types_eq('pgr_bridges', + $$SELECT '{text,int8}'::TEXT[] $$ ); SELECT * FROM finish(); diff --git a/pgtap/components/connectedComponenes/types_check.pg b/pgtap/components/connectedComponenes/types_check.pg index a5bac50eca0..8ed10268894 100644 --- a/pgtap/components/connectedComponenes/types_check.pg +++ b/pgtap/components/connectedComponenes/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"", "seq","component","node"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_connectedcomponents'$$, - $$SELECT '{25,20,20,20}'::OID[] $$ +SELECT function_types_eq('pgr_connectedcomponents', + $$SELECT '{text,int8,int8,int8}'::TEXT[] $$ ); SELECT * FROM finish(); diff --git a/pgtap/components/makeConnected/types_check.pg b/pgtap/components/makeConnected/types_check.pg index bb36128492d..af6e7fdbfbd 100644 --- a/pgtap/components/makeConnected/types_check.pg +++ b/pgtap/components/makeConnected/types_check.pg @@ -42,10 +42,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_makeconnected'$$, + SELECT function_types_eq('pgr_makeconnected', $$VALUES - ('{25,20,20,20}'::OID[]) + ('{text,int8,int8,int8}'::TEXT[]) $$ ); END; diff --git a/pgtap/components/strongComponenets/types_check.pg b/pgtap/components/strongComponenets/types_check.pg index 3b5a7f79ddb..ad4a4f1a70e 100644 --- a/pgtap/components/strongComponenets/types_check.pg +++ b/pgtap/components/strongComponenets/types_check.pg @@ -31,9 +31,8 @@ SELECT set_eq( $$SELECT '{"", "seq","component","node"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_strongcomponents'$$, - $$SELECT '{25,20,20,20}'::OID[] $$ +SELECT function_types_eq('pgr_strongcomponents', + $$SELECT '{text,int8,int8,int8}'::TEXT[] $$ ); SELECT * FROM finish(); diff --git a/pgtap/contraction/contraction/types_check.pg b/pgtap/contraction/contraction/types_check.pg index f5650b3004f..2141e9e52d5 100644 --- a/pgtap/contraction/contraction/types_check.pg +++ b/pgtap/contraction/contraction/types_check.pg @@ -36,7 +36,7 @@ BEGIN ('{"",directed,methods,cycles,forbidden,type,id,contracted_vertices,source,target,cost}'::TEXT[]) $$,'pgr_contraction: Column names'); - RETURN QUERY SELECT function_types('pgr_contraction', + RETURN QUERY SELECT function_types_eq('pgr_contraction', $$VALUES ('{text,bool,_int4,int4,_int8,text,int8,_int8,int8,int8,float8}'::TEXT[]), ('{text,_int8,int4,_int8,bool,text,int8,_int8,int8,int8,float8}'::TEXT[]) $$); @@ -48,9 +48,8 @@ BEGIN ('{"", "", "max_cycles", "forbidden_vertices", "directed", "type", "id", "contracted_vertices", "source", "target", "cost"}'::TEXT[]) $$); - RETURN QUERY SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_contraction'$$, - $$SELECT '{25,1016,23,1016,16,25,20,1016,20,20,701}'::OID[] $$ + RETURN QUERY SELECT function_types_eq('pgr_contraction', + $$SELECT '{text,_int8,int4,_int8,bool,text,int8,_int8,int8,int8,float8}'::TEXT[] $$ ); END IF; diff --git a/pgtap/contraction/contractionDeadEnd/types_check.pg b/pgtap/contraction/contractionDeadEnd/types_check.pg index cff291a86e5..0cd24b9d50b 100644 --- a/pgtap/contraction/contractionDeadEnd/types_check.pg +++ b/pgtap/contraction/contractionDeadEnd/types_check.pg @@ -40,7 +40,7 @@ BEGIN ('{"","directed","forbidden","type","id","contracted_vertices","source","target","cost"}'::TEXT[]) $$); - RETURN QUERY SELECT function_types('pgr_contractiondeadend', + RETURN QUERY SELECT function_types_eq('pgr_contractiondeadend', $$VALUES ('{text,bool,_int8,text,int8,_int8,int8,int8,float8}'::TEXT[]) $$); END; diff --git a/pgtap/contraction/contractionLinear/types_check.pg b/pgtap/contraction/contractionLinear/types_check.pg index f40ea19975d..f94984ec22b 100644 --- a/pgtap/contraction/contractionLinear/types_check.pg +++ b/pgtap/contraction/contractionLinear/types_check.pg @@ -40,7 +40,7 @@ BEGIN ('{"",directed,forbidden,type,id,contracted_vertices,source,target,cost}'::TEXT[]) $$,'pgr_contractionlinear: Column names'); - RETURN QUERY SELECT function_types('pgr_contractionlinear', + RETURN QUERY SELECT function_types_eq('pgr_contractionlinear', $$VALUES ('{text,bool,_int8,text,int8,_int8,int8,int8,float8}'::TEXT[]) $$); END; diff --git a/pgtap/dijkstra/dijkstraCost/types_check.pg b/pgtap/dijkstra/dijkstraCost/types_check.pg index 1704cbae5bb..4ecb879e6ad 100644 --- a/pgtap/dijkstra/dijkstraCost/types_check.pg +++ b/pgtap/dijkstra/dijkstraCost/types_check.pg @@ -60,14 +60,13 @@ WHEN min_version('3.1.0') THEN ('{"","","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]), ('{"","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dijkstracost'$$, + function_types_eq('pgr_dijkstracost', $$VALUES - ('{25,25,16,20,20,701}'::OID[]), - ('{25,20,20,16,20,20,701}'::OID[]), - ('{25,20,2277,16,20,20,701}'::OID[]), - ('{25,2277,20,16,20,20,701}'::OID[]), - ('{25,2277,2277,16,20,20,701}'::OID[]) + ('{text,text,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int8,int8,float8}'::TEXT[]) $$) ) ELSE @@ -80,13 +79,12 @@ ELSE ('{"","","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]), ('{"","","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dijkstracost'$$, + function_types_eq('pgr_dijkstracost', $$VALUES - ('{25,20,20,16,20,20,701}'::OID[]), - ('{25,20,2277,16,20,20,701}'::OID[]), - ('{25,2277,20,16,20,20,701}'::OID[]), - ('{25,2277,2277,16,20,20,701}'::OID[]) + ('{text,int8,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int8,int8,float8}'::TEXT[]) $$) ) END; diff --git a/pgtap/dijkstra/dijkstraCostMatrix/types_check.pg b/pgtap/dijkstra/dijkstraCostMatrix/types_check.pg index bf6bd77811e..08bd04742c1 100644 --- a/pgtap/dijkstra/dijkstraCostMatrix/types_check.pg +++ b/pgtap/dijkstra/dijkstraCostMatrix/types_check.pg @@ -31,10 +31,9 @@ SELECT set_eq( ('{"","","directed","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dijkstracostmatrix'$$, +SELECT function_types_eq('pgr_dijkstracostmatrix', $$VALUES - ('{25,2277,16,20,20,701}'::OID[]) + ('{text,anyarray,bool,int8,int8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/dijkstra/dijkstraNear/types_check.pg b/pgtap/dijkstra/dijkstraNear/types_check.pg index 1153e77e15f..8cc8e5fa28d 100644 --- a/pgtap/dijkstra/dijkstraNear/types_check.pg +++ b/pgtap/dijkstra/dijkstraNear/types_check.pg @@ -60,13 +60,12 @@ SELECT set_eq( -- parameter types RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dijkstranear'$$, +SELECT function_types_eq('pgr_dijkstranear', $$VALUES - ('{25,2277,20,16,20,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,20,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,20,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,20,2277,16,20,23,23,20,20,20,20,701,701}'::OID[]); + ('{text,anyarray,int8,bool,int8,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int8,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]); $$ ); END; diff --git a/pgtap/dijkstra/dijkstraNearCost/types_check.pg b/pgtap/dijkstra/dijkstraNearCost/types_check.pg index dec4f6077a5..aec84c3e6f9 100644 --- a/pgtap/dijkstra/dijkstraNearCost/types_check.pg +++ b/pgtap/dijkstra/dijkstraNearCost/types_check.pg @@ -60,13 +60,12 @@ SELECT set_eq( -- parameter types RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dijkstranearcost'$$, +SELECT function_types_eq('pgr_dijkstranearcost', $$VALUES - ('{25,2277,20,16,20,20,20,701}'::OID[]), - ('{25,25,16,20,16,20,20,701}'::OID[]), - ('{25,20,2277,16,20,20,20,701}'::OID[]), - ('{25,2277,2277,16,20,16,20,20,701}'::OID[]); + ('{text,anyarray,int8,bool,int8,int8,int8,float8}'::TEXT[]), + ('{text,text,bool,int8,bool,int8,int8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int8,int8,int8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int8,bool,int8,int8,float8}'::TEXT[]); $$ ); END; diff --git a/pgtap/dijkstra/driving_distance/types_check.pg b/pgtap/dijkstra/driving_distance/types_check.pg index 0068a8629f2..5e4fc1066e2 100644 --- a/pgtap/dijkstra/driving_distance/types_check.pg +++ b/pgtap/dijkstra/driving_distance/types_check.pg @@ -44,11 +44,10 @@ SELECT set_eq( $$); RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_drivingdistance'$$, +SELECT function_types_eq('pgr_drivingdistance', $$VALUES - ('{25,20,701,16,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,701,16,16,20,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,float8,bool,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,float8,bool,bool,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$); ELSE -- old signatures @@ -61,11 +60,10 @@ SELECT set_eq( $$); RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_drivingdistance'$$, +SELECT function_types_eq('pgr_drivingdistance', $$VALUES - ('{25,20,701,16,23,20,20,701,701}'::OID[]), - ('{25,2277,701,16,16,23,20,20,20,701,701}'::OID[]) + ('{text,int8,float8,bool,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,float8,bool,bool,int4,int8,int8,int8,float8,float8}'::TEXT[]) $$); END IF; END; diff --git a/pgtap/dominator/lengauerTarjanDominatorTree/types_check.pg b/pgtap/dominator/lengauerTarjanDominatorTree/types_check.pg index 891ffad12f4..3ba6e615c86 100644 --- a/pgtap/dominator/lengauerTarjanDominatorTree/types_check.pg +++ b/pgtap/dominator/lengauerTarjanDominatorTree/types_check.pg @@ -44,12 +44,11 @@ SELECT bag_has( ); RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_lengauertarjandominatortree'$$, +SELECT function_types_eq('pgr_lengauertarjandominatortree', $$VALUES - ('{25,20,23,20,20}'::OID[]) - $$ -); + ('{text,int8,int4,int8,int8}'::TEXT[]) + $$); + END; $BODY$ LANGUAGE plpgsql; diff --git a/pgtap/ksp/ksp/types_check.pg b/pgtap/ksp/ksp/types_check.pg index 53b433fde9e..bfa3667a902 100644 --- a/pgtap/ksp/ksp/types_check.pg +++ b/pgtap/ksp/ksp/types_check.pg @@ -51,14 +51,13 @@ BEGIN ('{"","","","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[]) $$), - set_eq( - $$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_ksp'$$, + function_types_eq('pgr_ksp', $$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[]) + ('{text,text,int4,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,int8,int4,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,int4,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int4,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) @@ -68,9 +67,8 @@ BEGIN $$SELECT proargnames from pg_proc WHERE proname = 'pgr_ksp'$$, $$SELECT '{"","","","","directed","heap_paths","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$ ), - 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[] $$ + function_types_eq('pgr_ksp', + $$SELECT '{text,int8,int8,int4,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[] $$ ) ) END; diff --git a/pgtap/ksp/turnRestrictedPath/types_check.pg b/pgtap/ksp/turnRestrictedPath/types_check.pg index f8c6b8c5ee0..76eb1145a04 100644 --- a/pgtap/ksp/turnRestrictedPath/types_check.pg +++ b/pgtap/ksp/turnRestrictedPath/types_check.pg @@ -31,9 +31,8 @@ SELECT set_eq( $$SELECT '{"","","","","","directed","heap_paths","stop_on_first","strict","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_turnrestrictedpath'$$, - $$SELECT '{25,25,20,20,23,16,16,16,16,23,23,23,20,20,701,701}'::OID[] $$ +SELECT function_types_eq('pgr_turnrestrictedpath', + $$SELECT '{text,text,int8,int8,int4,bool,bool,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[] $$ ); SELECT finish(); ROLLBACK; diff --git a/pgtap/ksp/withPointsKSP/types_check.pg b/pgtap/ksp/withPointsKSP/types_check.pg index cc1427d654e..a7625320e66 100644 --- a/pgtap/ksp/withPointsKSP/types_check.pg +++ b/pgtap/ksp/withPointsKSP/types_check.pg @@ -48,15 +48,15 @@ BEGIN ('{"","","","","","directed","heap_paths","details","seq","path_id","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]), ('{"","","","","","directed","heap_paths","driving_side","details","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_withpointsksp'$$, + + function_types_eq('pgr_withpointsksp', $$VALUES - ('{25,25,20,20,23,1042,16,16,16,23,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,20,2277,23,1042,16,16,16,23,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,2277,20,23,1042,16,16,16,23,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,2277,2277,23,1042,16,16,16,23,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,25,23,1042,16,16,16,23,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,20,20,23,16,16,1042,16,23,23,23,20,20,701,701}'::OID[]) + ('{text,text,int8,int8,int4,bpchar,bool,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,anyarray,int4,bpchar,bool,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,int8,int4,bpchar,bool,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,anyarray,int4,bpchar,bool,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,text,int4,bpchar,bool,bool,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,int8,int4,bool,bool,bpchar,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[]) $$) ) ELSE collect_tap( @@ -64,9 +64,9 @@ BEGIN $$SELECT proargnames from pg_proc WHERE proname = 'pgr_withpointsksp'$$, $$SELECT '{"","","","","","directed","heap_paths","driving_side","details","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$ ), - set_eq( - $$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_withpointsksp'$$, - $$SELECT '{25,25,20,20,23,16,16,1042,16,23,23,23,20,20,701,701}'::OID[] $$ + + function_types_eq('pgr_withpointsksp', + $$SELECT '{text,text,int8,int8,int4,bool,bool,bpchar,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[] $$ ) )END; diff --git a/pgtap/lineGraph/lineGraph/types_check.pg b/pgtap/lineGraph/lineGraph/types_check.pg index d2275ee7e10..c420944e7b5 100644 --- a/pgtap/lineGraph/lineGraph/types_check.pg +++ b/pgtap/lineGraph/lineGraph/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"","directed","seq","source","target","cost","reverse_cost"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_linegraph'$$, - $$SELECT '{25,16,23,20,20,701,701}'::OID[] $$ +SELECT function_types_eq('pgr_linegraph', + $$SELECT '{text,bool,int4,int8,int8,float8,float8}'::TEXT[] $$ ); SELECT finish(); diff --git a/pgtap/lineGraph/lineGraphFull/types_check.pg b/pgtap/lineGraph/lineGraphFull/types_check.pg index 1fec6734916..6a25b78c4d7 100644 --- a/pgtap/lineGraph/lineGraphFull/types_check.pg +++ b/pgtap/lineGraph/lineGraphFull/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"","seq","source","target","cost","edge"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes FROM pg_proc WHERE proname = 'pgr_linegraphfull'$$, - $$SELECT '{25,23,20,20,701,20}'::OID[] $$ +SELECT function_types_eq('pgr_linegraphfull', + $$SELECT '{text,int4,int8,int8,float8,int8}'::TEXT[] $$ ); SELECT finish(); diff --git a/pgtap/max_flow/edgedisjointpaths/types_check.pg b/pgtap/max_flow/edgedisjointpaths/types_check.pg index 6bbe585d564..433c3ef1ed4 100644 --- a/pgtap/max_flow/edgedisjointpaths/types_check.pg +++ b/pgtap/max_flow/edgedisjointpaths/types_check.pg @@ -57,14 +57,13 @@ WHEN min_version('3.2.0') THEN ('{"","","directed","seq","path_id","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_edgedisjointpaths'$$, + function_types_eq('pgr_edgedisjointpaths', $$VALUES - ('{25,20,20,16,23,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) ELSE @@ -78,13 +77,12 @@ ELSE ('{"","","","directed","seq","path_id","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_edgedisjointpaths'$$, + function_types_eq('pgr_edgedisjointpaths', $$VALUES - ('{25,20,20,16,23,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) END; diff --git a/pgtap/max_flow/maxCardinalityMatch/types_check.pg b/pgtap/max_flow/maxCardinalityMatch/types_check.pg index deed03cae60..d649b0d7306 100644 --- a/pgtap/max_flow/maxCardinalityMatch/types_check.pg +++ b/pgtap/max_flow/maxCardinalityMatch/types_check.pg @@ -40,11 +40,10 @@ WHEN min_version('3.4.0') THEN $$ ), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_maxcardinalitymatch'$$, + function_types_eq('pgr_maxcardinalitymatch', $$VALUES - ('{25,16,23,20,20,20}'::OID[]), - ('{25,20}'::OID[]) + ('{text,bool,int4,int8,int8,int8}'::TEXT[]), + ('{text,int8}'::TEXT[]) $$ )) ELSE @@ -54,9 +53,8 @@ ELSE $$SELECT '{"","directed","seq","edge","source","target"}'::TEXT[]$$ ), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_maxcardinalitymatch'$$, - $$SELECT '{25,16,23,20,20,20}'::OID[]$$ + function_types_eq('pgr_maxcardinalitymatch', + $$SELECT '{text,bool,int4,int8,int8,int8}'::TEXT[]$$ )) END; diff --git a/pgtap/max_flow/maxFlow/types_check.pg b/pgtap/max_flow/maxFlow/types_check.pg index b41c10b1cfe..3d920a66da0 100644 --- a/pgtap/max_flow/maxFlow/types_check.pg +++ b/pgtap/max_flow/maxFlow/types_check.pg @@ -54,24 +54,24 @@ SELECT set_eq( SELECT CASE WHEN min_version('3.2.0') THEN - set_eq( - $$SELECT array(SELECT unnest(proargtypes)) FROM pg_proc WHERE proname = 'pgr_maxflow'$$, + + function_types_eq('pgr_maxflow', $$VALUES - ('{25,25}'::OID[]), - ('{25,20,20}'::OID[]), - ('{25,20,2277}'::OID[]), - ('{25,2277,20}'::OID[]), - ('{25,2277,2277}'::OID[]) - $$ - ) + ('{text,text}'::TEXT[]), + ('{text,int8,int8}'), + ('{text,int8,anyarray}'), + ('{text,anyarray,int8}'), + ('{text,anyarray,anyarray}') + $$) + ELSE - set_eq( - $$SELECT array(SELECT unnest(proargtypes)) FROM pg_proc WHERE proname = 'pgr_maxflow'$$, + + function_types_eq('pgr_maxflow', $$VALUES - ('{25,20,20}'::OID[]), - ('{25,20,2277}'::OID[]), - ('{25,2277,20}'::OID[]), - ('{25,2277,2277}'::OID[]) + ('{text,int8,int8}'::TEXT[]), + ('{text,int8,anyarray}'), + ('{text,anyarray,int8}'), + ('{text,anyarray,anyarray}') $$) END; diff --git a/pgtap/max_flow/maxFlowMinCost/types_check.pg b/pgtap/max_flow/maxFlowMinCost/types_check.pg index 4911aebfd0c..aa17987a14a 100644 --- a/pgtap/max_flow/maxFlowMinCost/types_check.pg +++ b/pgtap/max_flow/maxFlowMinCost/types_check.pg @@ -60,14 +60,14 @@ WHEN min_version('3.2.0') THEN ('{"","","","seq","edge","source","target","flow","residual_capacity","cost","agg_cost"}'::TEXT[]), ('{"","","seq","edge","source","target","flow","residual_capacity","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_maxflowmincost'$$, + + function_types_eq('pgr_maxflowmincost', $$VALUES - ('{25,20,20,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,20,2277,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,25,23,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) ELSE @@ -80,13 +80,13 @@ ELSE ('{"","","","seq","edge","source","target","flow","residual_capacity","cost","agg_cost"}'::TEXT[]), ('{"","","","seq","edge","source","target","flow","residual_capacity","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_maxflowmincost'$$, + + function_types_eq('pgr_maxflowmincost', $$VALUES - ('{25,20,20,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,20,2277,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20,23,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,23,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) END; diff --git a/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg b/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg index c278fa4a080..9ca7d00c3cb 100644 --- a/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg +++ b/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg @@ -53,23 +53,21 @@ SELECT set_eq( SELECT CASE WHEN min_version('3.2.0') THEN - set_eq( - $$SELECT array(SELECT unnest(proargtypes)) FROM pg_proc WHERE proname = 'pgr_maxflowmincost_cost'$$, + function_types_eq('pgr_maxflow', $$VALUES - ('{25,25}'::OID[]), - ('{25,20,20}'::OID[]), - ('{25,20,2277}'::OID[]), - ('{25,2277,20}'::OID[]), - ('{25,2277,2277}'::OID[]) + ('{text,text}'::TEXT[]), + ('{text,int8,int8}'), + ('{text,int8,anyarray}'), + ('{text,anyarray,int8}'), + ('{text,anyarray,anyarray}') $$) ELSE - set_eq( - $$SELECT array(SELECT unnest(proargtypes)) FROM pg_proc WHERE proname = 'pgr_maxflowmincost_cost'$$, + function_types_eq('pgr_maxflow', $$VALUES - ('{25,20,20}'::OID[]), - ('{25,20,2277}'::OID[]), - ('{25,2277,20}'::OID[]), - ('{25,2277,2277}'::OID[]) + ('{text,int8,int8}'::TEXT[]), + ('{text,int8,anyarray}'), + ('{text,anyarray,int8}'), + ('{text,anyarray,anyarray}') $$) END; diff --git a/pgtap/metrics/betweennessCentrality/types_check.pg b/pgtap/metrics/betweennessCentrality/types_check.pg index 032556df946..def9d24b70e 100644 --- a/pgtap/metrics/betweennessCentrality/types_check.pg +++ b/pgtap/metrics/betweennessCentrality/types_check.pg @@ -47,10 +47,9 @@ SELECT set_eq( $$); RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_betweennesscentrality'$$, +SELECT function_types_eq('pgr_betweennesscentrality', $$VALUES - ('{25,16,20,701}'::OID[]) + ('{text,bool,int8,float8}'::TEXT[]) $$); END; diff --git a/pgtap/metrics/degree/types_check.pg b/pgtap/metrics/degree/types_check.pg index 7c242e33053..26b0b3c027b 100644 --- a/pgtap/metrics/degree/types_check.pg +++ b/pgtap/metrics/degree/types_check.pg @@ -48,11 +48,11 @@ BEGIN ('{"","","dryrun","node","degree"}'::TEXT[]) $$, 'proargnames'), - set_eq($$SELECT proallargtypes from pg_proc where proname = 'pgr_degree'$$, + function_types_eq('pgr_degree', $$VALUES - ('{25,16,20,20}'::OID[]), - ('{25,25,16,20,20}'::OID[]) - $$, 'proallargtypes') + ('{text,bool,int8,int8}'::TEXT[]), + ('{text,text,bool,int8,int8}'::TEXT[]) + $$) ) ELSE collect_tap( @@ -60,8 +60,8 @@ BEGIN set_eq($$SELECT proargnames from pg_proc where proname = 'pgr_degree'$$, $$VALUES ('{"","","dryrun","node","degree"}'::TEXT[]) $$, 'proargnames'), - set_eq($$SELECT proallargtypes from pg_proc where proname = 'pgr_degree'$$, - $$VALUES ('{25,25,16,20,20}'::OID[])$$, 'proallargtypes') + function_types_eq('pgr_degree', + $$VALUES ('{text,text,bool,int8,int8}'::TEXT[])$$) ) END; diff --git a/pgtap/mincut/stoerWagner/types_check.pg b/pgtap/mincut/stoerWagner/types_check.pg index 5be2ceec020..22d2673174f 100644 --- a/pgtap/mincut/stoerWagner/types_check.pg +++ b/pgtap/mincut/stoerWagner/types_check.pg @@ -33,10 +33,9 @@ SELECT set_eq( ('{"","seq","edge","cost","mincut"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_stoerwagner'$$, +SELECT function_types_eq('pgr_stoerwagner', $$VALUES - ('{25,23,20,701,701}'::OID[]) + ('{text,int4,int8,float8,float8}'::TEXT[]) $$);; SELECT finish(); diff --git a/pgtap/ordering/cuthillMckeeOrdering/types_check.pg b/pgtap/ordering/cuthillMckeeOrdering/types_check.pg index 6740e8ee377..10d0424fabc 100644 --- a/pgtap/ordering/cuthillMckeeOrdering/types_check.pg +++ b/pgtap/ordering/cuthillMckeeOrdering/types_check.pg @@ -43,10 +43,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_cuthillmckeeordering'$$, + SELECT function_types_eq('pgr_cuthillmckeeordering', $$VALUES - ('{25,20,20}'::OID[]) + ('{text,int8,int8}'::TEXT[]) $$ ); END; diff --git a/pgtap/ordering/topologicalSort/types_check.pg b/pgtap/ordering/topologicalSort/types_check.pg index 10b3cd6f9f2..e81d57863cc 100644 --- a/pgtap/ordering/topologicalSort/types_check.pg +++ b/pgtap/ordering/topologicalSort/types_check.pg @@ -37,10 +37,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_topologicalsort'$$, + SELECT function_types_eq('pgr_topologicalsort', $$VALUES - ('{25,23,20}'::OID[]) + ('{text,int4,int8}'::TEXT[]) $$ ); diff --git a/pgtap/others/alpha_shape/types_check.pg b/pgtap/others/alpha_shape/types_check.pg index 95260663218..ae7a8970a02 100644 --- a/pgtap/others/alpha_shape/types_check.pg +++ b/pgtap/others/alpha_shape/types_check.pg @@ -23,14 +23,9 @@ SELECT plan(4); SELECT has_function('pgr_alphashape'); -/* pgtap does not like geometry type, this is a workaround */ -SELECT set_eq( - $$WITH a AS (SELECT unnest(proargtypes) from pg_proc where proname = 'pgr_alphashape') - SELECT typname from a JOIN pg_type ON(oid = unnest)$$, - $$VALUES - ('float8'), - ('geometry') - $$); +SELECT function_types_eq('pgr_alphashape', + $$VALUES ('{geometry,float8}'::TEXT[]) $$); + SELECT set_eq( $$WITH a AS (SELECT prorettype from pg_proc where proname = 'pgr_alphashape') SELECT typname from a JOIN pg_type ON(oid = prorettype)$$, diff --git a/pgtap/others/dagShortestPath/types_check.pg b/pgtap/others/dagShortestPath/types_check.pg index ba226a02fef..ebda012381c 100644 --- a/pgtap/others/dagShortestPath/types_check.pg +++ b/pgtap/others/dagShortestPath/types_check.pg @@ -1,7 +1,7 @@ /*PGR-GNU***************************************************************** -Copyright (c) 2018 pgRouting developers +Copyright (c) int818 pgRouting developers Mail: project@pgrouting.org ------ @@ -62,13 +62,13 @@ BEGIN ('{"","","","seq","path_seq","node","edge","cost","agg_cost"}'::TEXT[]) $$ ), - set_has( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dagshortestpath'$$, + function_types_eq('pgr_dagshortestpath', $$VALUES - ('{25,20,20,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,23,23,20,20,701,701}'::OID[]), - ('{25,2277,20,23,23,20,20,701,701}'::OID[]), - ('{25,2277,2277,23,23,20,20,701,701}'::OID[]) + ('{text,int8,int8,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int4,int4,int8,int8,float8,float8}') $$ ) ) @@ -85,13 +85,12 @@ BEGIN ('{"","","","seq","path_seq","node","edge","cost","agg_cost"}'::TEXT[]) $$ ), - set_has( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_dagshortestpath'$$, + function_types_eq('pgr_dagshortestpath', $$VALUES - ('{25,20,20,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,23,23,20,20,701,701}'::OID[]), - ('{25,2277,20,23,23,20,20,701,701}'::OID[]), - ('{25,2277,2277,23,23,20,20,701,701}'::OID[]) + ('{text,int8,int8,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,int4,int4,int8,int8,float8,float8}'::TEXT[]) $$ ) ) diff --git a/pgtap/others/transitiveClosure/types_check.pg b/pgtap/others/transitiveClosure/types_check.pg index e430e02b3d8..ac94d774ef5 100644 --- a/pgtap/others/transitiveClosure/types_check.pg +++ b/pgtap/others/transitiveClosure/types_check.pg @@ -37,10 +37,9 @@ BEGIN ); RETURN QUERY - SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_transitiveclosure'$$, + SELECT function_types_eq('pgr_transitiveclosure', $$VALUES - ('{25,23,20,1016}'::OID[]) + ('{text,int4,int8,_int8}'::TEXT[]) $$ ); diff --git a/pgtap/pickDeliver/pickDeliver/types_check.pg b/pgtap/pickDeliver/pickDeliver/types_check.pg index 07736262eb3..f9a0f169f3d 100644 --- a/pgtap/pickDeliver/pickDeliver/types_check.pg +++ b/pgtap/pickDeliver/pickDeliver/types_check.pg @@ -33,10 +33,10 @@ SELECT set_eq( "travel_time","arrival_time","wait_time","service_time","departure_time"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_pickdeliver'$$, - $$SELECT '{25,25,25,701,23,23,23,23,20,23,23,20,20,701,701,701,701,701,701}'::OID[] $$ -); +SELECT function_types_eq('pgr_pickdeliver', + $$SELECT + '{text,text,text,float8,int4,int4,int4,int4,int8,int4,int4,int8,int8,float8,float8,float8,float8,float8,float8}'::TEXT[] + $$); SELECT finish(); ROLLBACK; diff --git a/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg b/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg index 1ff747be0a5..b492428484e 100644 --- a/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg +++ b/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg @@ -34,10 +34,10 @@ SELECT bag_has( "travel_time","arrival_time","wait_time","service_time","departure_time"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_pickdelivereuclidean'$$, - $$SELECT '{25,25,701,23,23,23,23,20,23,23,20,701,701,701,701,701,701}'::OID[] $$ -); +SELECT function_types_eq('pgr_pickdelivereuclidean', + $$SELECT + '{text,text,float8,int4,int4,int4,int4,int8,int4,int4,int8,float8,float8,float8,float8,float8,float8}'::TEXT[] + $$); SELECT finish(); ROLLBACK; diff --git a/pgtap/pickDeliver/vrp_basic/types_check.pg b/pgtap/pickDeliver/vrp_basic/types_check.pg index 6af8628fdd8..d88cb1b51be 100644 --- a/pgtap/pickDeliver/vrp_basic/types_check.pg +++ b/pgtap/pickDeliver/vrp_basic/types_check.pg @@ -29,10 +29,8 @@ SELECT set_eq( $$SELECT '{"","","","","oid","opos","vid","tarrival","tdepart"}'::TEXT[] $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_vrponedepot'$$, - $$SELECT '{25,25,25,23,23,23,23,23,23}'::OID[] $$ -); +SELECT function_types_eq('pgr_vrponedepot', + $$SELECT '{text,text,text,int4,int4,int4,int4,int4,int4}'::TEXT[] $$); SELECT finish(); ROLLBACK; diff --git a/pgtap/topology/analyzeGraph/types_check.pg b/pgtap/topology/analyzeGraph/types_check.pg index 660f9517823..0542bf22820 100644 --- a/pgtap/topology/analyzeGraph/types_check.pg +++ b/pgtap/topology/analyzeGraph/types_check.pg @@ -30,9 +30,9 @@ SELECT set_eq( $$SELECT '{"","","the_geom","id","source","target","rows_where"}'::TEXT[]$$ ); -SELECT set_eq( - $$SELECT proargtypes from pg_proc where proname = 'pgr_analyzegraph'$$, - $$SELECT '[0:6]={25,701,25,25,25,25,25}'::OID[]$$ + +SELECT function_types_eq('pgr_analyzegraph', + $$SELECT '{text,float8,text,text,text,text,text}'::TEXT[]$$ ); SELECT set_eq( diff --git a/pgtap/topology/analyzeOneWay/types_check.pg b/pgtap/topology/analyzeOneWay/types_check.pg index 6bd2ea2435b..9f48cebecc5 100644 --- a/pgtap/topology/analyzeOneWay/types_check.pg +++ b/pgtap/topology/analyzeOneWay/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"","","","","","two_way_if_null","oneway","source","target"}'::TEXT[]$$ ); -SELECT set_eq( - $$SELECT proargtypes from pg_proc where proname = 'pgr_analyzeoneway'$$, - $$SELECT '[0:8]={25,1009,1009,1009,1009,16,25,25,25}'::OID[]$$ +SELECT function_types_eq('pgr_analyzeoneway', + $$SELECT '{text,_text,_text,_text,_text,bool,text,text,text}'::TEXT[]$$ ); SELECT set_eq( diff --git a/pgtap/topology/createTopology/types_check.pg b/pgtap/topology/createTopology/types_check.pg index 5d0c5bd0857..d6dceba3c8d 100644 --- a/pgtap/topology/createTopology/types_check.pg +++ b/pgtap/topology/createTopology/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"","","the_geom","id","source","target","rows_where","clean"}'::TEXT[]$$ ); -SELECT set_eq( - $$SELECT proargtypes from pg_proc where proname = 'pgr_createtopology'$$, - $$SELECT '[0:7]={25,701,25,25,25,25,25,16}'::OID[]$$ +SELECT function_types_eq('pgr_createtopology', + $$SELECT '{text,float8,text,text,text,text,text,bool}'::TEXT[]$$ ); SELECT set_eq( diff --git a/pgtap/topology/createVerticesTable/types_check.pg b/pgtap/topology/createVerticesTable/types_check.pg index 5854342e35b..c1e2649b00a 100644 --- a/pgtap/topology/createVerticesTable/types_check.pg +++ b/pgtap/topology/createVerticesTable/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"","the_geom","source","target","rows_where"}'::TEXT[]$$ ); -SELECT set_eq( - $$SELECT proargtypes from pg_proc where proname = 'pgr_createverticestable'$$, - $$SELECT '[0:4]={25,25,25,25,25}'::OID[]$$ +SELECT function_types_eq('pgr_createverticestable', + $$SELECT '{text,text,text,text,text}'::TEXT[]$$ ); SELECT set_eq( diff --git a/pgtap/topology/extractVertices/types_check.pg b/pgtap/topology/extractVertices/types_check.pg index 19205416910..1da11a6f4b4 100644 --- a/pgtap/topology/extractVertices/types_check.pg +++ b/pgtap/topology/extractVertices/types_check.pg @@ -30,13 +30,8 @@ SELECT set_eq( $$SELECT '{"","dryrun","id","in_edges","out_edges","x","y","geom"}'::TEXT[] $$ ); -PREPARE fn_types AS -SELECT ARRAY[25,16,20,1016,1016,701,701,oid] FROM pg_type WHERE typname = 'geometry'; - -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_extractvertices'$$, - $$fn_types$$ -); +SELECT function_types_eq('pgr_extractvertices', + $$VALUES ('{text,bool,int8,_int8,_int8,float8,float8,geometry}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/topology/nodeNetwork/types_check.pg b/pgtap/topology/nodeNetwork/types_check.pg index f8b181c07b2..5e9e37ed090 100644 --- a/pgtap/topology/nodeNetwork/types_check.pg +++ b/pgtap/topology/nodeNetwork/types_check.pg @@ -30,9 +30,8 @@ SELECT set_eq( $$SELECT '{"","","id","the_geom","table_ending","rows_where","outall"}'::TEXT[]$$ ); -SELECT set_eq( - $$SELECT proargtypes from pg_proc where proname = 'pgr_nodenetwork'$$, - $$SELECT '[0:6]={25,701,25,25,25,25,16}'::OID[]$$ +SELECT function_types_eq('pgr_nodenetwork', + $$SELECT '{text,float8,text,text,text,text,bool}'::TEXT[]$$ ); SELECT set_eq( diff --git a/pgtap/traversal/binaryBreadthFirstSearch/types_check.pg b/pgtap/traversal/binaryBreadthFirstSearch/types_check.pg index 0b226c30086..c434defee67 100644 --- a/pgtap/traversal/binaryBreadthFirstSearch/types_check.pg +++ b/pgtap/traversal/binaryBreadthFirstSearch/types_check.pg @@ -64,14 +64,14 @@ BEGIN ('{"","","directed","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$ ), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_binarybreadthfirstsearch'$$, + + function_types_eq('pgr_binarybreadthfirstsearch', $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) @@ -86,13 +86,13 @@ BEGIN ('{"","","","directed","seq","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$ ), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_binarybreadthfirstsearch'$$, + + function_types_eq('pgr_binarybreadthfirstsearch', $$VALUES - ('{25,20,20,16,23,23,20,20,701,701}'::OID[]), - ('{25,20,2277,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,2277,2277,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ) ) diff --git a/pgtap/traversal/breadthFirstSearch/types_check.pg b/pgtap/traversal/breadthFirstSearch/types_check.pg index b69ce221b5a..4a148875f9e 100644 --- a/pgtap/traversal/breadthFirstSearch/types_check.pg +++ b/pgtap/traversal/breadthFirstSearch/types_check.pg @@ -38,11 +38,10 @@ SELECT set_eq( $$ ); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_breadthfirstsearch'$$, +SELECT function_types_eq('pgr_breadthfirstsearch', $$VALUES - ('{25,20,20,16,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,20,16,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,int8,bool,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,int8,bool,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ); diff --git a/pgtap/traversal/depthFirstSearch/types_check.pg b/pgtap/traversal/depthFirstSearch/types_check.pg index b737eb9e44f..a0990e40a90 100644 --- a/pgtap/traversal/depthFirstSearch/types_check.pg +++ b/pgtap/traversal/depthFirstSearch/types_check.pg @@ -48,11 +48,10 @@ SELECT bag_has( -- parameter types RETURN QUERY -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_depthfirstsearch'$$, +SELECT function_types_eq('pgr_depthfirstsearch', $$VALUES - ('{25,20,16,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,2277,16,20,20,20,20,20,20,701,701}'::OID[]) + ('{text,int8,bool,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,anyarray,bool,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$ ); END; diff --git a/pgtap/trsp/trsp/types_check.pg b/pgtap/trsp/trsp/types_check.pg index 4e6629ac42a..3af93736656 100644 --- a/pgtap/trsp/trsp/types_check.pg +++ b/pgtap/trsp/trsp/types_check.pg @@ -37,12 +37,16 @@ SELECT bag_has( ('{"","","","","","","","turn_restrict_sql","seq","id1","id2","cost"}'::TEXT[]) $$, 'old signature names'); -SELECT bag_has( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_trsp'$$, +SELECT function_types_eq('pgr_trsp', $$VALUES - ('{25,23,23,16,16,25,23,23,23,701}'::OID[]), - ('{25,23,701,23,701,16,16,25,23,23,23,701}'::OID[]) - $$, 'old signature types'); + ('{text,text,anyarray,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,int4,int4,bool,bool,text,int4,int4,int4,float8}'), + ('{text,text,int8,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), + ('{text,int4,float8,int4,float8,bool,bool,text,int4,int4,int4,float8}'), + ('{text,text,int8,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), + ('{text,text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), + ('{text,text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}') + $$); SELECT types_check_general('pgr_trsp'); diff --git a/pgtap/trsp/trspViaEdges/types_check.pg b/pgtap/trsp/trspViaEdges/types_check.pg index 632cda71f8b..d5472f90db2 100644 --- a/pgtap/trsp/trspViaEdges/types_check.pg +++ b/pgtap/trsp/trspViaEdges/types_check.pg @@ -35,10 +35,9 @@ SELECT set_eq( ('{"","","","","","turn_restrict_sql","seq","id1","id2","id3","cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_trspviaedges'$$, +SELECT function_types_eq('pgr_trspviaedges', $$VALUES - ('{25,1007,1022,16,16,25,23,23,23,23,701}'::OID[]) + ('{text,_int4,_float8,bool,bool,text,int4,int4,int4,int4,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/trsp/trspViaVertices/types_check.pg b/pgtap/trsp/trspViaVertices/types_check.pg index 8f48cfe2ccc..a8fa6d325c4 100644 --- a/pgtap/trsp/trspViaVertices/types_check.pg +++ b/pgtap/trsp/trspViaVertices/types_check.pg @@ -34,10 +34,9 @@ SELECT set_eq( ('{"","","","","restrictions_sql","seq","id1","id2","id3","cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_trspviavertices'$$, +SELECT function_types_eq('pgr_trspviavertices', $$VALUES - ('{25,2277,16,16,25,23,23,23,23,701}'::OID[]) + ('{text,anyarray,bool,bool,text,int4,int4,int4,int4,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/utilities/findCloseEdges/types_check.pg b/pgtap/utilities/findCloseEdges/types_check.pg index b022f60b3b9..d1c7f1edbd7 100644 --- a/pgtap/utilities/findCloseEdges/types_check.pg +++ b/pgtap/utilities/findCloseEdges/types_check.pg @@ -55,7 +55,7 @@ BEGIN 'proargnames'); RETURN QUERY - SELECT function_types('pgr_findcloseedges', + SELECT function_types_eq('pgr_findcloseedges', $$ VALUES ('{text,_geometry,float8,int4,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), ('{text,geometry,float8,int4,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), @@ -74,7 +74,7 @@ BEGIN 'proargnames'); RETURN QUERY - SELECT function_types('pgr_findcloseedges', + SELECT function_types_eq('pgr_findcloseedges', $$ VALUES ('{text,geometry,float8,int4,bool,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), ('{text,_geometry,float8,int4,bool,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]) diff --git a/pgtap/version/full_version/types_check.pg b/pgtap/version/full_version/types_check.pg index 7860413a6f9..d09dd6714d1 100644 --- a/pgtap/version/full_version/types_check.pg +++ b/pgtap/version/full_version/types_check.pg @@ -34,9 +34,8 @@ SELECT set_eq( ); -- parameter types -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_full_version'$$, - $$SELECT '{25,25,25,25,25,25,25,25,25}'::OID[] $$ +SELECT function_types_eq('pgr_full_version', + $$SELECT '{text,text,text,text,text,text,text,text,text}'::TEXT[] $$ ); diff --git a/pgtap/version/version/types_check.pg b/pgtap/version/version/types_check.pg index 0364b1210ed..2ef435cb967 100644 --- a/pgtap/version/version/types_check.pg +++ b/pgtap/version/version/types_check.pg @@ -21,27 +21,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT plan(6); +SELECT plan(3); SELECT has_function('pgr_version'); SELECT has_function('pgr_version', ARRAY[]::text[]); SELECT function_returns('pgr_version', ARRAY[]::text[], 'text'); -SELECT set_eq( - $$SELECT proargnames from pg_proc where proname = 'pgr_version'$$, - $$SELECT NULL::TEXT[] $$ -); - -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_version'$$, - $$SELECT NULL::OID[] $$ -); - -SELECT set_eq( - $$SELECT prorettype from pg_proc where proname = 'pgr_version'$$, - $$VALUES ('25'::OID)$$ -); - SELECT finish(); ROLLBACK; diff --git a/pgtap/withPoints/withPoints/types_check.pg b/pgtap/withPoints/withPoints/types_check.pg index a666638d9f3..e2fd00f0cac 100644 --- a/pgtap/withPoints/withPoints/types_check.pg +++ b/pgtap/withPoints/withPoints/types_check.pg @@ -60,14 +60,13 @@ WHEN min_version('3.2.0') THEN ('{"","","","directed","driving_side","details","seq","path_seq","start_pid","end_pid","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpoints'$$, + function_types_eq('pgr_withpoints', $$VALUES - ('{25,25,20,20,16,1042,16,23,23,20,20,701,701}'::OID[]), - ('{25,25,20,2277,16,1042,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,25,2277,20,16,1042,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,25,2277,2277,16,1042,16,23,23,20,20,20,20,701,701}'::OID[]), - ('{25,25,25,16,1042,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,text,int8,int8,bool,bpchar,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,anyarray,bool,bpchar,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), + ('{text,text,anyarray,int8,bool,bpchar,bool,int4,int4,int8,int8,int8,float8,float8}'), + ('{text,text,int8,anyarray,bool,bpchar,bool,int4,int4,int8,int8,int8,float8,float8}'), + ('{text,text,text,bool,bpchar,bool,int4,int4,int8,int8,int8,int8,float8,float8}') $$) ) ELSE @@ -81,13 +80,12 @@ ELSE ('{"","","","","directed","driving_side","details","seq","path_seq","start_pid","end_pid","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpoints'$$, + function_types_eq('pgr_withpoints', $$VALUES - ('{25,25,20,20,16,1042,16,23,23,20,20,701,701}'::OID[]), - ('{25,25,20,2277,16,1042,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,25,2277,20,16,1042,16,23,23,20,20,20,701,701}'::OID[]), - ('{25,25,2277,2277,16,1042,16,23,23,20,20,20,20,701,701}'::OID[]) + ('{text,text,int8,int8,16,1042,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,anyarray,16,1042,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,int8,16,1042,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,anyarray,16,1042,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) END; diff --git a/pgtap/withPoints/withPointsCost/types_check.pg b/pgtap/withPoints/withPointsCost/types_check.pg index 8aa9c1d2e38..45107486382 100644 --- a/pgtap/withPoints/withPointsCost/types_check.pg +++ b/pgtap/withPoints/withPointsCost/types_check.pg @@ -60,14 +60,14 @@ WHEN min_version('3.2.0') THEN ('{"","","","","directed","driving_side","start_pid","end_pid","agg_cost"}'::TEXT[]), ('{"","","","directed","driving_side","start_pid","end_pid","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpointscost'$$, + + function_types_eq('pgr_withpointscost', $$VALUES - ('{25,25,25,16,1042,20,20,701}'::OID[]), - ('{25,25,20,20,16,1042,20,20,701}'::OID[]), - ('{25,25,20,2277,16,1042,20,20,701}'::OID[]), - ('{25,25,2277,20,16,1042,20,20,701}'::OID[]), - ('{25,25,2277,2277,16,1042,20,20,701}'::OID[]) + ('{text,text,text,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,int8,int8,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,int8,anyarray,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,anyarray,int8,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,anyarray,anyarray,bool,bpchar,int8,int8,float8}'::TEXT[]) $$) ) ELSE @@ -80,13 +80,13 @@ ELSE ('{"","","","","directed","driving_side","start_pid","end_pid","agg_cost"}'::TEXT[]), ('{"","","","","directed","driving_side","start_pid","end_pid","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpointscost'$$, + + function_types_eq('pgr_withpointscost', $$VALUES - ('{25,25,20,20,16,1042,20,20,701}'::OID[]), - ('{25,25,20,2277,16,1042,20,20,701}'::OID[]), - ('{25,25,2277,20,16,1042,20,20,701}'::OID[]), - ('{25,25,2277,2277,16,1042,20,20,701}'::OID[]) + ('{text,text,int8,int8,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,int8,anyarray,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,anyarray,int8,bool,bpchar,int8,int8,float8}'::TEXT[]), + ('{text,text,anyarray,anyarray,bool,bpchar,int8,int8,float8}'::TEXT[]) $$) ) END; diff --git a/pgtap/withPoints/withPointsCostMatrix/types_check.pg b/pgtap/withPoints/withPointsCostMatrix/types_check.pg index 92de372fc73..8407d91b9ec 100644 --- a/pgtap/withPoints/withPointsCostMatrix/types_check.pg +++ b/pgtap/withPoints/withPointsCostMatrix/types_check.pg @@ -31,10 +31,9 @@ SELECT set_eq( ('{"","","","directed","driving_side","start_vid","end_vid","agg_cost"}'::TEXT[]) $$); -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpointscostmatrix'$$, +SELECT function_types_eq('pgr_withpointscostmatrix', $$VALUES - ('{25,25,2277,16,1042,20,20,701}'::OID[]) + ('{text,text,anyarray,bool,bpchar,int8,int8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/withPoints/withPointsDD/types_check.pg b/pgtap/withPoints/withPointsDD/types_check.pg index 4f55b557105..66501d46c42 100644 --- a/pgtap/withPoints/withPointsDD/types_check.pg +++ b/pgtap/withPoints/withPointsDD/types_check.pg @@ -54,13 +54,13 @@ THEN collect_tap ( ('{"","","","","directed","driving_side","details","seq","node","edge","cost","agg_cost"}'::TEXT[]), ('{"","","","","directed","driving_side","details","equicost","seq","start_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpointsdd'$$, + + function_types_eq('pgr_withpointsdd', $$VALUES - ('{25,25,20,701,1042,16,16,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,25,2277,701,1042,16,16,16,20,20,20,20,20,20,701,701}'::OID[]), - ('{25,25,20,701,16,1042,16,23,20,20,701,701}'::OID[]), - ('{25,25,2277,701,16,1042,16,16,23,20,20,20,701,701}'::OID[]) + ('{text,text,anyarray,float8,bpchar,bool,bool,bool,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,float8,bpchar,bool,bool,int8,int8,int8,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,float8,bool,bpchar,bool,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,float8,bool,bpchar,bool,bool,int4,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) ELSE collect_tap( @@ -70,11 +70,11 @@ ELSE collect_tap( ('{"","","","","directed","driving_side","details","seq","node","edge","cost","agg_cost"}'::TEXT[]), ('{"","","","","directed","driving_side","details","equicost","seq","start_vid","node","edge","cost","agg_cost"}'::TEXT[]) $$), - set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_withpointsdd'$$, + + function_types_eq('pgr_withpointsdd', $$VALUES - ('{25,25,20,701,16,1042,16,23,20,20,701,701}'::OID[]), - ('{25,25,2277,701,16,1042,16,16,23,20,20,20,701,701}'::OID[]) + ('{text,text,anyarray,float8,bool,bpchar,bool,bool,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,float8,bool,bpchar,bool,int4,int8,int8,float8,float8}') $$) ) END; From fc972f83dbe64cdcd9e5663a660788bed492eb36 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 31 Mar 2025 22:45:30 -0600 Subject: [PATCH 4/7] (pgtap) SELECT -> VALUES & other fixes --- pgtap/chinese/chinesePostman/types_check.pg | 2 +- pgtap/components/articulationPoints/types_check.pg | 2 +- pgtap/components/biconnectedComponents/types_check.pg | 2 +- pgtap/components/bridges/types_check.pg | 2 +- pgtap/components/connectedComponenes/types_check.pg | 2 +- pgtap/components/strongComponenets/types_check.pg | 2 +- pgtap/contraction/contraction/types_check.pg | 2 +- pgtap/ksp/ksp/types_check.pg | 2 +- pgtap/ksp/turnRestrictedPath/types_check.pg | 2 +- pgtap/ksp/withPointsKSP/types_check.pg | 2 +- pgtap/lineGraph/lineGraph/types_check.pg | 2 +- pgtap/lineGraph/lineGraphFull/types_check.pg | 2 +- pgtap/max_flow/maxCardinalityMatch/types_check.pg | 2 +- pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg | 4 ++-- pgtap/mincut/stoerWagner/types_check.pg | 2 +- pgtap/others/dagShortestPath/types_check.pg | 2 +- pgtap/pickDeliver/pickDeliver/types_check.pg | 4 ++-- pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg | 4 ++-- pgtap/pickDeliver/vrp_basic/types_check.pg | 2 +- pgtap/topology/analyzeGraph/types_check.pg | 2 +- pgtap/topology/analyzeOneWay/types_check.pg | 2 +- pgtap/topology/createTopology/types_check.pg | 2 +- pgtap/topology/createVerticesTable/types_check.pg | 2 +- pgtap/topology/nodeNetwork/types_check.pg | 2 +- pgtap/trsp/trsp/types_check.pg | 11 +++-------- pgtap/version/full_version/types_check.pg | 2 +- pgtap/withPoints/withPoints/types_check.pg | 8 ++++---- tools/testers/dijkstra_pgtap_tests.sql | 1 + tools/testers/spanningtree.sql | 2 +- tools/testers/tsp_pgtap_tests.sql | 2 +- 30 files changed, 38 insertions(+), 42 deletions(-) diff --git a/pgtap/chinese/chinesePostman/types_check.pg b/pgtap/chinese/chinesePostman/types_check.pg index 875c435d977..4813ec1123d 100644 --- a/pgtap/chinese/chinesePostman/types_check.pg +++ b/pgtap/chinese/chinesePostman/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_chinesepostman', - $$SELECT '{text,int4,int8,int8,float8,float8}'::TEXT[] $$); + $$VALUES ('{text,int4,int8,int8,float8,float8}'::TEXT[]) $$); SELECT * FROM finish(); ROLLBACK; diff --git a/pgtap/components/articulationPoints/types_check.pg b/pgtap/components/articulationPoints/types_check.pg index 01002c53515..67fff323263 100644 --- a/pgtap/components/articulationPoints/types_check.pg +++ b/pgtap/components/articulationPoints/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_articulationpoints', - $$SELECT '{text,int8}'::TEXT[] $$ + $$VALUES ('{text,int8}'::TEXT[]) $$ ); SELECT * FROM finish(); diff --git a/pgtap/components/biconnectedComponents/types_check.pg b/pgtap/components/biconnectedComponents/types_check.pg index 2112fb0a60b..d22d852e12a 100644 --- a/pgtap/components/biconnectedComponents/types_check.pg +++ b/pgtap/components/biconnectedComponents/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_biconnectedcomponents', - $$SELECT '{text,int8,int8,int8}'::TEXT[] $$ + $$VALUES ('{text,int8,int8,int8}'::TEXT[])$$ ); SELECT * FROM finish(); diff --git a/pgtap/components/bridges/types_check.pg b/pgtap/components/bridges/types_check.pg index 68d2e7f9c91..8a92e79c9b1 100644 --- a/pgtap/components/bridges/types_check.pg +++ b/pgtap/components/bridges/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_bridges', - $$SELECT '{text,int8}'::TEXT[] $$ + $$VALUES ('{text,int8}'::TEXT[])$$ ); SELECT * FROM finish(); diff --git a/pgtap/components/connectedComponenes/types_check.pg b/pgtap/components/connectedComponenes/types_check.pg index 8ed10268894..cd13161b3c2 100644 --- a/pgtap/components/connectedComponenes/types_check.pg +++ b/pgtap/components/connectedComponenes/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_connectedcomponents', - $$SELECT '{text,int8,int8,int8}'::TEXT[] $$ + $$VALUES ('{text,int8,int8,int8}'::TEXT[])$$ ); SELECT * FROM finish(); diff --git a/pgtap/components/strongComponenets/types_check.pg b/pgtap/components/strongComponenets/types_check.pg index ad4a4f1a70e..6601de0383d 100644 --- a/pgtap/components/strongComponenets/types_check.pg +++ b/pgtap/components/strongComponenets/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_strongcomponents', - $$SELECT '{text,int8,int8,int8}'::TEXT[] $$ + $$VALUES ('{text,int8,int8,int8}'::TEXT[])$$ ); SELECT * FROM finish(); diff --git a/pgtap/contraction/contraction/types_check.pg b/pgtap/contraction/contraction/types_check.pg index 2141e9e52d5..58c8a17c34b 100644 --- a/pgtap/contraction/contraction/types_check.pg +++ b/pgtap/contraction/contraction/types_check.pg @@ -49,7 +49,7 @@ BEGIN $$); RETURN QUERY SELECT function_types_eq('pgr_contraction', - $$SELECT '{text,_int8,int4,_int8,bool,text,int8,_int8,int8,int8,float8}'::TEXT[] $$ + $$VALUES ('{text,_int8,int4,_int8,bool,text,int8,_int8,int8,int8,float8}'::TEXT[])$$ ); END IF; diff --git a/pgtap/ksp/ksp/types_check.pg b/pgtap/ksp/ksp/types_check.pg index bfa3667a902..1c4313bc5ad 100644 --- a/pgtap/ksp/ksp/types_check.pg +++ b/pgtap/ksp/ksp/types_check.pg @@ -68,7 +68,7 @@ BEGIN $$SELECT '{"","","","","directed","heap_paths","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$ ), function_types_eq('pgr_ksp', - $$SELECT '{text,int8,int8,int4,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[] $$ + $$SVALUES ('{text,int8,int8,int4,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ ) ) END; diff --git a/pgtap/ksp/turnRestrictedPath/types_check.pg b/pgtap/ksp/turnRestrictedPath/types_check.pg index 76eb1145a04..df9064ca13f 100644 --- a/pgtap/ksp/turnRestrictedPath/types_check.pg +++ b/pgtap/ksp/turnRestrictedPath/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_turnrestrictedpath', - $$SELECT '{text,text,int8,int8,int4,bool,bool,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[] $$ + $$VALUES ('{text,text,int8,int8,int4,bool,bool,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ ); SELECT finish(); ROLLBACK; diff --git a/pgtap/ksp/withPointsKSP/types_check.pg b/pgtap/ksp/withPointsKSP/types_check.pg index a7625320e66..69a7fe0c64e 100644 --- a/pgtap/ksp/withPointsKSP/types_check.pg +++ b/pgtap/ksp/withPointsKSP/types_check.pg @@ -66,7 +66,7 @@ BEGIN ), function_types_eq('pgr_withpointsksp', - $$SELECT '{text,text,int8,int8,int4,bool,bool,bpchar,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[] $$ + $$VALUES '{text,text,int8,int8,int4,bool,bool,bpchar,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ ) )END; diff --git a/pgtap/lineGraph/lineGraph/types_check.pg b/pgtap/lineGraph/lineGraph/types_check.pg index c420944e7b5..3d3693b8186 100644 --- a/pgtap/lineGraph/lineGraph/types_check.pg +++ b/pgtap/lineGraph/lineGraph/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_linegraph', - $$SELECT '{text,bool,int4,int8,int8,float8,float8}'::TEXT[] $$ + $$VALUES ('{text,bool,int4,int8,int8,float8,float8}'::TEXT[])$$ ); SELECT finish(); diff --git a/pgtap/lineGraph/lineGraphFull/types_check.pg b/pgtap/lineGraph/lineGraphFull/types_check.pg index 6a25b78c4d7..375671409dc 100644 --- a/pgtap/lineGraph/lineGraphFull/types_check.pg +++ b/pgtap/lineGraph/lineGraphFull/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_linegraphfull', - $$SELECT '{text,int4,int8,int8,float8,int8}'::TEXT[] $$ + $$VALUES ('{text,int4,int8,int8,float8,int8}'::TEXT[])$$ ); SELECT finish(); diff --git a/pgtap/max_flow/maxCardinalityMatch/types_check.pg b/pgtap/max_flow/maxCardinalityMatch/types_check.pg index d649b0d7306..eacb7d1013c 100644 --- a/pgtap/max_flow/maxCardinalityMatch/types_check.pg +++ b/pgtap/max_flow/maxCardinalityMatch/types_check.pg @@ -54,7 +54,7 @@ ELSE ), function_types_eq('pgr_maxcardinalitymatch', - $$SELECT '{text,bool,int4,int8,int8,int8}'::TEXT[]$$ + $$VALUES ('{text,bool,int4,int8,int8,int8}'::TEXT[])$$ )) END; diff --git a/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg b/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg index 9ca7d00c3cb..bbc36b0daee 100644 --- a/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg +++ b/pgtap/max_flow/maxFlowMinCost_Cost/types_check.pg @@ -53,7 +53,7 @@ SELECT set_eq( SELECT CASE WHEN min_version('3.2.0') THEN - function_types_eq('pgr_maxflow', + function_types_eq('pgr_maxflowmincost_cost', $$VALUES ('{text,text}'::TEXT[]), ('{text,int8,int8}'), @@ -62,7 +62,7 @@ WHEN min_version('3.2.0') THEN ('{text,anyarray,anyarray}') $$) ELSE - function_types_eq('pgr_maxflow', + function_types_eq('pgr_maxflowmincost_cost', $$VALUES ('{text,int8,int8}'::TEXT[]), ('{text,int8,anyarray}'), diff --git a/pgtap/mincut/stoerWagner/types_check.pg b/pgtap/mincut/stoerWagner/types_check.pg index 22d2673174f..d37245cc42a 100644 --- a/pgtap/mincut/stoerWagner/types_check.pg +++ b/pgtap/mincut/stoerWagner/types_check.pg @@ -36,7 +36,7 @@ SELECT set_eq( SELECT function_types_eq('pgr_stoerwagner', $$VALUES ('{text,int4,int8,float8,float8}'::TEXT[]) - $$);; + $$); SELECT finish(); ROLLBACK; diff --git a/pgtap/others/dagShortestPath/types_check.pg b/pgtap/others/dagShortestPath/types_check.pg index ebda012381c..5b4fc5de7c5 100644 --- a/pgtap/others/dagShortestPath/types_check.pg +++ b/pgtap/others/dagShortestPath/types_check.pg @@ -1,7 +1,7 @@ /*PGR-GNU***************************************************************** -Copyright (c) int818 pgRouting developers +Copyright (c) 2018 pgRouting developers Mail: project@pgrouting.org ------ diff --git a/pgtap/pickDeliver/pickDeliver/types_check.pg b/pgtap/pickDeliver/pickDeliver/types_check.pg index f9a0f169f3d..4a5d59df3b5 100644 --- a/pgtap/pickDeliver/pickDeliver/types_check.pg +++ b/pgtap/pickDeliver/pickDeliver/types_check.pg @@ -34,8 +34,8 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_pickdeliver', - $$SELECT - '{text,text,text,float8,int4,int4,int4,int4,int8,int4,int4,int8,int8,float8,float8,float8,float8,float8,float8}'::TEXT[] + $$VALUES + ('{text,text,text,float8,int4,int4,int4,int4,int8,int4,int4,int8,int8,float8,float8,float8,float8,float8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg b/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg index b492428484e..f0222234ec4 100644 --- a/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg +++ b/pgtap/pickDeliver/pickDeliverEuclidean/types_check.pg @@ -35,8 +35,8 @@ SELECT bag_has( ); SELECT function_types_eq('pgr_pickdelivereuclidean', - $$SELECT - '{text,text,float8,int4,int4,int4,int4,int8,int4,int4,int8,float8,float8,float8,float8,float8,float8}'::TEXT[] + $$VALUES + ('{text,text,float8,int4,int4,int4,int4,int8,int4,int4,int8,float8,float8,float8,float8,float8,float8}'::TEXT[]) $$); SELECT finish(); diff --git a/pgtap/pickDeliver/vrp_basic/types_check.pg b/pgtap/pickDeliver/vrp_basic/types_check.pg index d88cb1b51be..5fdf53c1f5b 100644 --- a/pgtap/pickDeliver/vrp_basic/types_check.pg +++ b/pgtap/pickDeliver/vrp_basic/types_check.pg @@ -30,7 +30,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_vrponedepot', - $$SELECT '{text,text,text,int4,int4,int4,int4,int4,int4}'::TEXT[] $$); + $$VALUES ('{text,text,text,int4,int4,int4,int4,int4,int4}'::TEXT[])$$); SELECT finish(); ROLLBACK; diff --git a/pgtap/topology/analyzeGraph/types_check.pg b/pgtap/topology/analyzeGraph/types_check.pg index 0542bf22820..5fc458fcb70 100644 --- a/pgtap/topology/analyzeGraph/types_check.pg +++ b/pgtap/topology/analyzeGraph/types_check.pg @@ -32,7 +32,7 @@ SELECT set_eq( SELECT function_types_eq('pgr_analyzegraph', - $$SELECT '{text,float8,text,text,text,text,text}'::TEXT[]$$ + $$VALUES ('{text,float8,text,text,text,text,text}'::TEXT[])$$ ); SELECT set_eq( diff --git a/pgtap/topology/analyzeOneWay/types_check.pg b/pgtap/topology/analyzeOneWay/types_check.pg index 9f48cebecc5..13a15e07e5f 100644 --- a/pgtap/topology/analyzeOneWay/types_check.pg +++ b/pgtap/topology/analyzeOneWay/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_analyzeoneway', - $$SELECT '{text,_text,_text,_text,_text,bool,text,text,text}'::TEXT[]$$ + $$VALUES ('{text,_text,_text,_text,_text,bool,text,text,text}'::TEXT[])$$ ); SELECT set_eq( diff --git a/pgtap/topology/createTopology/types_check.pg b/pgtap/topology/createTopology/types_check.pg index d6dceba3c8d..fed50a7d8c4 100644 --- a/pgtap/topology/createTopology/types_check.pg +++ b/pgtap/topology/createTopology/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_createtopology', - $$SELECT '{text,float8,text,text,text,text,text,bool}'::TEXT[]$$ + $$VALUES ('{text,float8,text,text,text,text,text,bool}'::TEXT[])$$ ); SELECT set_eq( diff --git a/pgtap/topology/createVerticesTable/types_check.pg b/pgtap/topology/createVerticesTable/types_check.pg index c1e2649b00a..e172a6419b0 100644 --- a/pgtap/topology/createVerticesTable/types_check.pg +++ b/pgtap/topology/createVerticesTable/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_createverticestable', - $$SELECT '{text,text,text,text,text}'::TEXT[]$$ + $$VALUES ('{text,text,text,text,text}'::TEXT[]$$) ); SELECT set_eq( diff --git a/pgtap/topology/nodeNetwork/types_check.pg b/pgtap/topology/nodeNetwork/types_check.pg index 5e9e37ed090..175a0a9b806 100644 --- a/pgtap/topology/nodeNetwork/types_check.pg +++ b/pgtap/topology/nodeNetwork/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_nodenetwork', - $$SELECT '{text,float8,text,text,text,text,bool}'::TEXT[]$$ + $$VALUES ('{text,float8,text,text,text,text,bool}'::TEXT[])$$ ); SELECT set_eq( diff --git a/pgtap/trsp/trsp/types_check.pg b/pgtap/trsp/trsp/types_check.pg index 3af93736656..d16da5f5931 100644 --- a/pgtap/trsp/trsp/types_check.pg +++ b/pgtap/trsp/trsp/types_check.pg @@ -37,15 +37,10 @@ SELECT bag_has( ('{"","","","","","","","turn_restrict_sql","seq","id1","id2","cost"}'::TEXT[]) $$, 'old signature names'); -SELECT function_types_eq('pgr_trsp', +SELECT function_types_has('pgr_trsp', $$VALUES - ('{text,text,anyarray,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]), - ('{text,int4,int4,bool,bool,text,int4,int4,int4,float8}'), - ('{text,text,int8,int8,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), - ('{text,int4,float8,int4,float8,bool,bool,text,int4,int4,int4,float8}'), - ('{text,text,int8,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), - ('{text,text,text,bool,int4,int4,int8,int8,int8,int8,float8,float8}'), - ('{text,text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}') + ('{text,int4,int4,bool,bool,text,int4,int4,int4,float8}'::TEXT[]), + ('{text,int4,float8,int4,float8,bool,bool,text,int4,int4,int4,float8}') $$); diff --git a/pgtap/version/full_version/types_check.pg b/pgtap/version/full_version/types_check.pg index d09dd6714d1..be69c701379 100644 --- a/pgtap/version/full_version/types_check.pg +++ b/pgtap/version/full_version/types_check.pg @@ -35,7 +35,7 @@ SELECT set_eq( -- parameter types SELECT function_types_eq('pgr_full_version', - $$SELECT '{text,text,text,text,text,text,text,text,text}'::TEXT[] $$ + $$VALUES ('{text,text,text,text,text,text,text,text,text}'::TEXT[])$$ ); diff --git a/pgtap/withPoints/withPoints/types_check.pg b/pgtap/withPoints/withPoints/types_check.pg index e2fd00f0cac..4e40375476b 100644 --- a/pgtap/withPoints/withPoints/types_check.pg +++ b/pgtap/withPoints/withPoints/types_check.pg @@ -82,10 +82,10 @@ ELSE function_types_eq('pgr_withpoints', $$VALUES - ('{text,text,int8,int8,16,1042,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), - ('{text,text,int8,anyarray,16,1042,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), - ('{text,text,anyarray,int8,16,1042,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), - ('{text,text,anyarray,anyarray,16,1042,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) + ('{text,text,int8,int8,bool,bpchar,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,int8,anyarray,bool,bpchar,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,int8,bool,bpchar,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), + ('{text,text,anyarray,anyarray,bool,bpchar,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) $$) ) END; diff --git a/tools/testers/dijkstra_pgtap_tests.sql b/tools/testers/dijkstra_pgtap_tests.sql index c3af2ffac36..ab0db015eca 100644 --- a/tools/testers/dijkstra_pgtap_tests.sql +++ b/tools/testers/dijkstra_pgtap_tests.sql @@ -205,6 +205,7 @@ ELSE RETURN QUERY SELECT function_types_eq(fn, $$VALUES + ('{text,int8,int8,bool,int4,int4,int8,int8,float8,float8}'::TEXT[]), ('{text,int8,anyarray,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), ('{text,anyarray,int8,bool,int4,int4,int8,int8,int8,float8,float8}'::TEXT[]), ('{text,anyarray,anyarray,bool,int4,int4,int8,int8,int8,int8,float8,float8}'::TEXT[]) diff --git a/tools/testers/spanningtree.sql b/tools/testers/spanningtree.sql index 452d6bbbffe..d58bbbf982b 100644 --- a/tools/testers/spanningtree.sql +++ b/tools/testers/spanningtree.sql @@ -12,7 +12,7 @@ BEGIN ); RETURN QUERY SELECT function_types_eq(fn, - $$SELECT '{text,int8,float8}'::TEXT[] $$ + $$VALUES ('{text,int8,float8}'::TEXT[])$$ ); END; diff --git a/tools/testers/tsp_pgtap_tests.sql b/tools/testers/tsp_pgtap_tests.sql index 6bf015a161f..558a02e09ba 100644 --- a/tools/testers/tsp_pgtap_tests.sql +++ b/tools/testers/tsp_pgtap_tests.sql @@ -233,7 +233,7 @@ BEGIN RETURN QUERY -- parameter types SELECT function_types_eq(fn, - $$SELECT '{text,int8,int8,float8,int4,int4,int4,float8,float8,float8,bool,int4,int8,float8,float8}'::TEXT[] $$ + $$VALUES '{text,int8,int8,float8,int4,int4,int4,float8,float8,float8,bool,int4,int8,float8,float8}'::TEXT[])$$ ); END; $BODY$ From 4464398736f4b9cc0be993d5ee4c5d9119cba26c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 31 Mar 2025 23:21:06 -0600 Subject: [PATCH 5/7] Fixing some errors --- pgtap/topology/createVerticesTable/types_check.pg | 2 +- tools/testers/tsp_pgtap_tests.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pgtap/topology/createVerticesTable/types_check.pg b/pgtap/topology/createVerticesTable/types_check.pg index e172a6419b0..371deaa02f7 100644 --- a/pgtap/topology/createVerticesTable/types_check.pg +++ b/pgtap/topology/createVerticesTable/types_check.pg @@ -31,7 +31,7 @@ SELECT set_eq( ); SELECT function_types_eq('pgr_createverticestable', - $$VALUES ('{text,text,text,text,text}'::TEXT[]$$) + $$VALUES ('{text,text,text,text,text}'::TEXT[])$$ ); SELECT set_eq( diff --git a/tools/testers/tsp_pgtap_tests.sql b/tools/testers/tsp_pgtap_tests.sql index 558a02e09ba..0fe0ce6ef12 100644 --- a/tools/testers/tsp_pgtap_tests.sql +++ b/tools/testers/tsp_pgtap_tests.sql @@ -233,7 +233,7 @@ BEGIN RETURN QUERY -- parameter types SELECT function_types_eq(fn, - $$VALUES '{text,int8,int8,float8,int4,int4,int4,float8,float8,float8,bool,int4,int8,float8,float8}'::TEXT[])$$ + $$VALUES ('{text,int8,int8,float8,int4,int4,int4,float8,float8,float8,bool,int4,int8,float8,float8}'::TEXT[])$$ ); END; $BODY$ From f2df9d2b2954a52971ce4f0291c29468c9e3ed52 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 1 Apr 2025 07:50:11 -0600 Subject: [PATCH 6/7] more fixes and rabbit suggestions --- pgtap/ksp/ksp/types_check.pg | 2 +- pgtap/ksp/withPointsKSP/types_check.pg | 2 +- pgtap/withPoints/withPointsDD/types_check.pg | 2 +- tools/testers/tsp_pgtap_tests.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pgtap/ksp/ksp/types_check.pg b/pgtap/ksp/ksp/types_check.pg index 1c4313bc5ad..f2f2b215c54 100644 --- a/pgtap/ksp/ksp/types_check.pg +++ b/pgtap/ksp/ksp/types_check.pg @@ -68,7 +68,7 @@ BEGIN $$SELECT '{"","","","","directed","heap_paths","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$ ), function_types_eq('pgr_ksp', - $$SVALUES ('{text,int8,int8,int4,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ + $$ VALUES ('{text,int8,int8,int4,bool,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ ) ) END; diff --git a/pgtap/ksp/withPointsKSP/types_check.pg b/pgtap/ksp/withPointsKSP/types_check.pg index 69a7fe0c64e..44eb71263bd 100644 --- a/pgtap/ksp/withPointsKSP/types_check.pg +++ b/pgtap/ksp/withPointsKSP/types_check.pg @@ -66,7 +66,7 @@ BEGIN ), function_types_eq('pgr_withpointsksp', - $$VALUES '{text,text,int8,int8,int4,bool,bool,bpchar,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ + $$VALUES ('{text,text,int8,int8,int4,bool,bool,bpchar,bool,int4,int4,int4,int8,int8,float8,float8}'::TEXT[])$$ ) )END; diff --git a/pgtap/withPoints/withPointsDD/types_check.pg b/pgtap/withPoints/withPointsDD/types_check.pg index 66501d46c42..cb74b7ed59b 100644 --- a/pgtap/withPoints/withPointsDD/types_check.pg +++ b/pgtap/withPoints/withPointsDD/types_check.pg @@ -74,7 +74,7 @@ ELSE collect_tap( function_types_eq('pgr_withpointsdd', $$VALUES ('{text,text,anyarray,float8,bool,bpchar,bool,bool,int4,int8,int8,int8,float8,float8}'::TEXT[]), - ('{text,text,int8,float8,bool,bpchar,bool,int4,int8,int8,float8,float8}') + ('{text,text,int8,float8,bool,bpchar,bool,int4,int8,int8,float8,float8}'::TEXT[]) $$) ) END; diff --git a/tools/testers/tsp_pgtap_tests.sql b/tools/testers/tsp_pgtap_tests.sql index 0fe0ce6ef12..642e6870fe2 100644 --- a/tools/testers/tsp_pgtap_tests.sql +++ b/tools/testers/tsp_pgtap_tests.sql @@ -185,7 +185,7 @@ BEGIN RETURN QUERY SELECT function_types_eq(fn, - $$VALUES ('{text,int8,int8,23,int8,float8,float8}'::TEXT[]) $$ + $$VALUES ('{text,int8,int8,int4,int8,float8,float8}'::TEXT[]) $$ ); END; $BODY$ From 96d7422a9bd5a3336525beb5d36802081836db5f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 1 Apr 2025 10:58:44 -0600 Subject: [PATCH 7/7] (CI) Avoid error: Compatibility with CMake < 3.5 has been removed from CMake. --- .github/workflows/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 83235bd6947..a369fd3b472 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -91,7 +91,7 @@ jobs: export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH mkdir build cd build || exit 1 - cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF .. + cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.12 -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF .. make -j 4 sudo make install