*
*/
-BEGIN;
+-- Allow these to fail gracelessly outside the transaction
+-- because PostgreSQL 8.1 does not support IF EXISTS
+DROP AGGREGATE array_accum(anyelement) CASCADE;
+DROP AGGREGATE public.first(anyelement) CASCADE;
+DROP AGGREGATE public.last(anyelement) CASCADE;
+DROP AGGREGATE public.agg_text(text) CASCADE;
+DROP AGGREGATE public.agg_tsvector(tsvector) CASCADE;
-DROP AGGREGATE IF EXISTS array_accum(anyelement) CASCADE;
+BEGIN;
CREATE AGGREGATE array_accum (
sfunc = array_append,
SELECT CASE WHEN $1 IS NULL THEN $2 ELSE $1 END;
$$ LANGUAGE SQL STABLE;
-DROP AGGREGATE IF EXISTS public.first(anyelement) CASCADE;
-
CREATE AGGREGATE public.first (
sfunc = public.first_agg,
basetype = anyelement,
SELECT $2;
$$ LANGUAGE SQL STABLE;
-DROP AGGREGATE IF EXISTS public.last(anyelement) CASCADE;
-
CREATE AGGREGATE public.last (
sfunc = public.last_agg,
basetype = anyelement,
END;
$$ LANGUAGE SQL STABLE;
-DROP AGGREGATE IF EXISTS public.agg_text(text) CASCADE;
-
CREATE AGGREGATE public.agg_text (
sfunc = public.text_concat,
basetype = text,
END;
$$ LANGUAGE SQL STABLE;
-DROP AGGREGATE IF EXISTS public.agg_tsvector(tsvector) CASCADE;
-
CREATE AGGREGATE public.agg_tsvector (
sfunc = public.tsvector_concat,
basetype = tsvector,