b0VIM 7.4X U/decibeldecina.example.com~decibel/public_git/pgtap/sql/pgtap.sql.in 3210#"! UtpSop||q~vln`voDmg mgp[`a+kskjed: u s h v d } ob  nR j *zm#jmzgkkLqu(kdhlxrLot-sqtvso|~^wySNt\OivqqdltxDww3oy z j !sv!g!jP"c"_#m|#e#]N$adovsHE0/oP e W < ;  ~ f e : '   ;  f 1 ;  c.`UT,h1!x\VA50N>9j`[?>DECLARERETURNS integer AS $$CREATE OR REPLACE FUNCTION _get_latest ( text, integer )$$ LANGUAGE plpgsql strict;END; RAISE EXCEPTION 'You tried to run a test without a plan! Gotta have a plan';EXCEPTION WHEN undefined_table THEN RETURN ret; quote_literal($1) || ') LIMIT 1' INTO ret; quote_literal($1) || ' AND id = (SELECT MAX(id) FROM __tcache__ WHERE label = ' || EXECUTE 'SELECT ARRAY[ id, value] FROM __tcache__ WHERE label = ' ||BEGIN ret integer[];DECLARERETURNS integer[] AS $$CREATE OR REPLACE FUNCTION _get_latest ( text )$$ LANGUAGE plpgsql strict;END; RETURN ret; EXECUTE 'SELECT value FROM __tcache__ WHERE label = ' || quote_literal($1) || ' LIMIT 1' INTO ret;BEGIN ret integer;DECLARERETURNS integer AS $$CREATE OR REPLACE FUNCTION _get ( text )$$ LANGUAGE plpgsql strict;END; RETURN; PERFORM plan(0);BEGINRETURNS SETOF boolean AS $$CREATE OR REPLACE FUNCTION no_plan()$$ LANGUAGE plpgsql strict;END; RETURN '1..' || $1; PERFORM _set('plan', $1 ); -- Save the plan and return. END; END IF; RAISE EXCEPTION 'You tried to plan twice!'; IF rcount > 0 THEN GET DIAGNOSTICS rcount = ROW_COUNT; EXECUTE 'SELECT TRUE FROM __tcache__ WHERE label = ''plan'''; -- Raise an exception if there's already a plan. EXCEPTION WHEN duplicate_table THEN '; GRANT ALL ON TABLE __tresults___numb_seq TO PUBLIC; GRANT ALL ON TABLE __tresults__ TO PUBLIC; CREATE UNIQUE INDEX __tresults___key ON __tresults__(numb); ); reason TEXT NOT NULL DEFAULT '''' type TEXT NOT NULL DEFAULT '''', descr TEXT NOT NULL DEFAULT '''', aok BOOLEAN NOT NULL DEFAULT TRUE, ok BOOLEAN NOT NULL DEFAULT TRUE, numb INTEGER NOT NULL DEFAULT nextval(''__tresults___numb_seq''), CREATE TEMP TABLE __tresults__ ( CREATE TEMP SEQUENCE __tresults___numb_seq; GRANT ALL ON TABLE __tcache___id_seq TO PUBLIC; GRANT ALL ON TABLE __tcache__ TO PUBLIC; CREATE UNIQUE INDEX __tcache___key ON __tcache__(id); ); note TEXT NOT NULL DEFAULT '''' value INTEGER NOT NULL, label TEXT NOT NULL, id INTEGER NOT NULL DEFAULT nextval(''__tcache___id_seq''), CREATE TEMP TABLE __tcache__ ( CREATE TEMP SEQUENCE __tcache___id_seq; EXECUTE ' BEGINBEGIN rcount INTEGER;DECLARERETURNS TEXT AS $$CREATE OR REPLACE FUNCTION plan( integer )LANGUAGE SQL IMMUTABLE;RETURNS NUMERIC AS 'SELECT __VERSION__;'CREATE OR REPLACE FUNCTION pgtap_version()LANGUAGE SQL IMMUTABLE;RETURNS TEXT AS 'SELECT ''__OS__''::text;'CREATE OR REPLACE FUNCTION os_name()$$ LANGUAGE SQL IMMUTABLE; ) AS s; SELECT string_to_array(current_setting('server_version'), '.') AS a FROM ( + COALESCE(substring(s.a[3] FROM '[[:digit:]]+')::int, 0) + COALESCE(substring(s.a[2] FROM '[[:digit:]]+')::int, 0) * 100 SELECT s.a[1]::int * 10000RETURNS integer AS $$CREATE OR REPLACE FUNCTION pg_version_num()LANGUAGE SQL IMMUTABLE;RETURNS text AS 'SELECT current_setting(''server_version'')'CREATE OR REPLACE FUNCTION pg_version()-- http://pgtap.org/---- The home page for the pgTAP project is:---- testing. It is distributed under the revised FreeBSD license.-- This file defines pgTAP, a collection of functions for TAP-based unitad\]e6] q j Y X  } | A  J 7 | 4 ! ^ K  "-O>=kD\[GRANT SELECT ON pg_all_foreign_keys TO PUBLIC;GRANT SELECT ON tap_funky TO PUBLIC;$$ LANGUAGE SQL; ); 'Search path ' || pg_catalog.current_setting('search_path') || ' should have the correct foreign tables' 'foreign tables', _extras('f', $1), _missing('f', $1), SELECT _are(RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION foreign_tables_are ( NAME[] )-- foreign_tables_are( tables )$$ LANGUAGE SQL; ); 'Schema ' || quote_ident($1) || ' should have the correct foreign tables' 'foreign tables', _extras('f', $1, $2), _missing('f', $1, $2), SELECT _are(RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION foreign_tables_are ( NAME, NAME[] )-- foreign_tables_are( schema, tables )$$ LANGUAGE SQL; SELECT _are( 'foreign tables', _extras('f', $1), _missing('f', $1), $2);RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION foreign_tables_are ( NAME[], TEXT )-- foreign_tables_are( tables, description )$$ LANGUAGE SQL; SELECT _are( 'foreign tables', _extras('f', $1, $2), _missing('f', $1, $2), $3);RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION foreign_tables_are ( NAME, NAME[], TEXT )-- foreign_tables_are( schema, tables, description )$$ LANGUAGE SQL; SELECT hasnt_materialized_view( $1, 'Materialized view ' || quote_ident($1) || ' should not exist' );RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION hasnt_materialized_view ( NAME )-- hasnt_materialized_view( materialized_view )$$ LANGUAGE SQL; SELECT ok( NOT _rexists( 'm', $1 ), $2 );RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION hasnt_materialized_view ( NAME, TEXT )-- hasnt_materialized_view( materialized_view, description )$$ LANGUAGE SQL; SELECT ok( NOT _rexists( 'm', $1, $2 ), $3 );RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION hasnt_materialized_view ( NAME, NAME, TEXT )-- hasnt_materialized_view( schema, materialized_view, description )$$ LANGUAGE SQL; SELECT has_materialized_view( $1, 'Materialized view ' || quote_ident($1) || ' should exist' );RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION has_materialized_view ( NAME )-- has_materialized_view( materialized_view )$$ LANGUAGE SQL; SELECT ok( _rexists( 'm', $1 ), $2 );RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION has_materialized_view ( NAME, TEXT )-- has_materialized_view( materialized_view, description )$$ LANGUAGE SQL; SELECT ok( _rexists( 'm', $1, $2 ), $3 );RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION has_materialized_view ( NAME, NAME, TEXT )-- has_materialized_view( schema, materialized_view, description )$$ LANGUAGE sql; ); 'Materialized view ' || quote_ident($1) || ' should be owned by ' || quote_ident($2) $1, $2, SELECT materialized_view_owner_is(RETURNS TEXT AS $$CREATE OR REPLACE FUNCTION materialized_view_owner_is ( NAME, NAME )-- materialized_view_owner_is ( materialized_view, user )$$ LANGUAGE plpgsql;END; RETURN is(owner, $2, $3); END IF; ); E' Materialized view ' || quote_ident($1) || ' does not exist' RETURN ok(FALSE, $3) || E'\n' || diag( IF owner IS NULL THEN -- Make sure the materialized view exists.BEGIN owner NAME := _get_rel_owner('m'::char, $1);DECLARERETURNS TEXT AS $$