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 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..4813ec1123d 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', + $$VALUES ('{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..67fff323263 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', + $$VALUES ('{text,int8}'::TEXT[]) $$ ); SELECT * FROM finish(); diff --git a/pgtap/components/biconnectedComponents/types_check.pg b/pgtap/components/biconnectedComponents/types_check.pg index 9770e657ccd..d22d852e12a 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', + $$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 e9c6797d3ce..8a92e79c9b1 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', + $$VALUES ('{text,int8}'::TEXT[])$$ ); SELECT * FROM finish(); diff --git a/pgtap/components/connectedComponenes/types_check.pg b/pgtap/components/connectedComponenes/types_check.pg index a5bac50eca0..cd13161b3c2 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', + $$VALUES ('{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..6601de0383d 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', + $$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 f5650b3004f..58c8a17c34b 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', + $$VALUES ('{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..f2f2b215c54 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', + $$ VALUES ('{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..df9064ca13f 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', + $$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 cc1427d654e..44eb71263bd 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', + $$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 d2275ee7e10..3d3693b8186 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', + $$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 1fec6734916..375671409dc 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', + $$VALUES ('{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..eacb7d1013c 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', + $$VALUES ('{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..bbc36b0daee 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_maxflowmincost_cost', $$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_maxflowmincost_cost', $$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..d37245cc42a 100644 --- a/pgtap/mincut/stoerWagner/types_check.pg +++ b/pgtap/mincut/stoerWagner/types_check.pg @@ -33,11 +33,10 @@ 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(); ROLLBACK; 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..5b4fc5de7c5 100644 --- a/pgtap/others/dagShortestPath/types_check.pg +++ b/pgtap/others/dagShortestPath/types_check.pg @@ -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..4a5d59df3b5 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', + $$VALUES + ('{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..f0222234ec4 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', + $$VALUES + ('{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..5fdf53c1f5b 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', + $$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 660f9517823..5fc458fcb70 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', + $$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 6bd2ea2435b..13a15e07e5f 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', + $$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 5d0c5bd0857..fed50a7d8c4 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', + $$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 5854342e35b..371deaa02f7 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', + $$VALUES ('{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..175a0a9b806 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', + $$VALUES ('{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..d16da5f5931 100644 --- a/pgtap/trsp/trsp/types_check.pg +++ b/pgtap/trsp/trsp/types_check.pg @@ -37,12 +37,11 @@ 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_has('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,int4,int4,bool,bool,text,int4,int4,int4,float8}'::TEXT[]), + ('{text,int4,float8,int4,float8,bool,bool,text,int4,int4,int4,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..be69c701379 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', + $$VALUES ('{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..4e40375476b 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,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/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..cb74b7ed59b 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}'::TEXT[]) $$) ) END; 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..ab0db015eca 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,12 @@ 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,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[]) $$); 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/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; diff --git a/tools/testers/spanningtree.sql b/tools/testers/spanningtree.sql index b7f0d74bd9a..d58bbbf982b 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, + $$VALUES ('{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..642e6870fe2 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,int4,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, + $$VALUES ('{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$