From bbde818fd9fe255e83da5fa896fcd31993f9b59e Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 16 Nov 2005 22:48:56 +0000 Subject: [PATCH 1/1] first() and last() aggregates git-svn-id: svn://svn.open-ils.org/ILS/trunk@2049 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/sql/Pg/020.schema.functions.sql | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Open-ILS/src/sql/Pg/020.schema.functions.sql b/Open-ILS/src/sql/Pg/020.schema.functions.sql index 1d1fbf67f0..64f7be3a52 100644 --- a/Open-ILS/src/sql/Pg/020.schema.functions.sql +++ b/Open-ILS/src/sql/Pg/020.schema.functions.sql @@ -10,6 +10,26 @@ CREATE OR REPLACE FUNCTION public.call_number_dewey( TEXT ) RETURNS TEXT AS $$ } $$ LANGUAGE 'plperl' STRICT IMMUTABLE; +CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS anyelement AS $$ + SELECT CASE WHEN $1 IS NULL THEN $2 ELSE $1 END; +$$ LANGUAGE SQL STABLE; + +CREATE AGGREGATE public.first ( + sfunc = public.first_agg, + basetype = anyelement, + stype = anyelement +); + +CREATE OR REPLACE FUNCTION public.last_agg ( anyelement, anyelement ) RETURNS anyelement AS $$ + SELECT $2; +$$ LANGUAGE SQL STABLE; + +CREATE AGGREGATE public.last ( + sfunc = public.last_agg, + basetype = anyelement, + stype = anyelement +); + CREATE OR REPLACE FUNCTION public.text_concat ( TEXT, TEXT ) RETURNS TEXT AS $$ SELECT CASE WHEN $1 IS NULL -- 2.43.2