Restore PostgreSQL 8.1 support in trunk schema
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 7 Jul 2008 13:33:07 +0000 (13:33 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 7 Jul 2008 13:33:07 +0000 (13:33 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@9980 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/002.functions.aggregate.sql

index b6d308f..0463321 100644 (file)
  *
  */
 
-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,
@@ -30,8 +36,6 @@ CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS a
        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,
@@ -42,8 +46,6 @@ CREATE OR REPLACE FUNCTION public.last_agg ( anyelement, anyelement ) RETURNS an
        SELECT $2;
 $$ LANGUAGE SQL STABLE;
 
-DROP AGGREGATE IF EXISTS  public.last(anyelement) CASCADE;
-
 CREATE AGGREGATE public.last (
        sfunc    = public.last_agg,
        basetype = anyelement,
@@ -60,8 +62,6 @@ SELECT
        END;
 $$ LANGUAGE SQL STABLE;
 
-DROP AGGREGATE IF EXISTS  public.agg_text(text) CASCADE;
-
 CREATE AGGREGATE public.agg_text (
        sfunc    = public.text_concat,
        basetype = text,
@@ -78,8 +78,6 @@ SELECT
        END;
 $$ LANGUAGE SQL STABLE;
 
-DROP AGGREGATE IF EXISTS  public.agg_tsvector(tsvector) CASCADE;
-
 CREATE AGGREGATE public.agg_tsvector (
        sfunc    = public.tsvector_concat,
        basetype = tsvector,