Skip to content

Commit b45526e

Browse files
committed
Add procedures_are()
copy pasted with minor edition from `functions_are()`
1 parent f784e51 commit b45526e

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

sql/pgtap.sql.in

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5029,6 +5029,62 @@ RETURNS TEXT AS $$
50295029
SELECT functions_are( $1, 'Search path ' || pg_catalog.current_setting('search_path') || ' should have the correct functions' );
50305030
$$ LANGUAGE SQL;
50315031

5032+
-- procedures_are( schema, procedures[], description )
5033+
CREATE OR REPLACE FUNCTION procedures_are ( NAME, NAME[], TEXT )
5034+
RETURNS TEXT AS $$
5035+
SELECT _are(
5036+
'procedures',
5037+
ARRAY(
5038+
SELECT name FROM tap_funky WHERE schema = $1 and prokind = 'p'
5039+
EXCEPT
5040+
SELECT $2[i]
5041+
FROM generate_series(1, array_upper($2, 1)) s(i)
5042+
),
5043+
ARRAY(
5044+
SELECT $2[i]
5045+
FROM generate_series(1, array_upper($2, 1)) s(i)
5046+
EXCEPT
5047+
SELECT name FROM tap_funky WHERE schema = $1 and prokind = 'p'
5048+
),
5049+
$3
5050+
);
5051+
$$ LANGUAGE SQL;
5052+
5053+
-- procedures_are( schema, procedures[] )
5054+
CREATE OR REPLACE FUNCTION procedures_are ( NAME, NAME[] )
5055+
RETURNS TEXT AS $$
5056+
SELECT procedures_are( $1, $2, 'Schema ' || quote_ident($1) || ' should have the correct procedures' );
5057+
$$ LANGUAGE SQL;
5058+
5059+
-- procedures_are( procedures[], description )
5060+
CREATE OR REPLACE FUNCTION procedures_are ( NAME[], TEXT )
5061+
RETURNS TEXT AS $$
5062+
SELECT _are(
5063+
'procedures',
5064+
ARRAY(
5065+
SELECT name FROM tap_funky WHERE is_visible and prokind = 'p'
5066+
AND schema NOT IN ('pg_catalog', 'information_schema')
5067+
EXCEPT
5068+
SELECT $1[i]
5069+
FROM generate_series(1, array_upper($1, 1)) s(i)
5070+
),
5071+
ARRAY(
5072+
SELECT $1[i]
5073+
FROM generate_series(1, array_upper($1, 1)) s(i)
5074+
EXCEPT
5075+
SELECT name FROM tap_funky WHERE is_visible and prokind = 'p'
5076+
AND schema NOT IN ('pg_catalog', 'information_schema')
5077+
),
5078+
$2
5079+
);
5080+
$$ LANGUAGE SQL;
5081+
5082+
-- procedures_are( procedures[] )
5083+
CREATE OR REPLACE FUNCTION procedures_are ( NAME[] )
5084+
RETURNS TEXT AS $$
5085+
SELECT procedures_are( $1, 'Search path ' || pg_catalog.current_setting('search_path') || ' should have the correct procedures' );
5086+
$$ LANGUAGE SQL;
5087+
50325088
-- indexes_are( schema, table, indexes[], description )
50335089
CREATE OR REPLACE FUNCTION indexes_are( NAME, NAME, NAME[], TEXT )
50345090
RETURNS TEXT AS $$

0 commit comments

Comments
 (0)