Skip to content

Commit ce21421

Browse files
committed
Add SQL fragment for procedures_are()
1 parent 00bc7a5 commit ce21421

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

sql/pgtap--1.3.4--1.4.0.sql

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
-- procedures_are( schema, procedures[], description )
2+
CREATE OR REPLACE FUNCTION procedures_are ( NAME, NAME[], TEXT )
3+
RETURNS TEXT AS $$
4+
SELECT _are(
5+
'procedures',
6+
ARRAY(
7+
SELECT name FROM tap_funky WHERE schema = $1 and prokind = 'p'
8+
EXCEPT
9+
SELECT $2[i]
10+
FROM generate_series(1, array_upper($2, 1)) s(i)
11+
),
12+
ARRAY(
13+
SELECT $2[i]
14+
FROM generate_series(1, array_upper($2, 1)) s(i)
15+
EXCEPT
16+
SELECT name FROM tap_funky WHERE schema = $1 and prokind = 'p'
17+
),
18+
$3
19+
);
20+
$$ LANGUAGE SQL;
21+
22+
-- procedures_are( schema, procedures[] )
23+
CREATE OR REPLACE FUNCTION procedures_are ( NAME, NAME[] )
24+
RETURNS TEXT AS $$
25+
SELECT procedures_are( $1, $2, 'Schema ' || quote_ident($1) || ' should have the correct procedures' );
26+
$$ LANGUAGE SQL;
27+
28+
-- procedures_are( procedures[], description )
29+
CREATE OR REPLACE FUNCTION procedures_are ( NAME[], TEXT )
30+
RETURNS TEXT AS $$
31+
SELECT _are(
32+
'procedures',
33+
ARRAY(
34+
SELECT name FROM tap_funky WHERE is_visible and prokind = 'p'
35+
AND schema NOT IN ('pg_catalog', 'information_schema')
36+
EXCEPT
37+
SELECT $1[i]
38+
FROM generate_series(1, array_upper($1, 1)) s(i)
39+
),
40+
ARRAY(
41+
SELECT $1[i]
42+
FROM generate_series(1, array_upper($1, 1)) s(i)
43+
EXCEPT
44+
SELECT name FROM tap_funky WHERE is_visible and prokind = 'p'
45+
AND schema NOT IN ('pg_catalog', 'information_schema')
46+
),
47+
$2
48+
);
49+
$$ LANGUAGE SQL;
50+
51+
-- procedures_are( procedures[] )
52+
CREATE OR REPLACE FUNCTION procedures_are ( NAME[] )
53+
RETURNS TEXT AS $$
54+
SELECT procedures_are( $1, 'Search path ' || pg_catalog.current_setting('search_path') || ' should have the correct procedures' );
55+
$$ LANGUAGE SQL;

0 commit comments

Comments
 (0)