diff options
author | Neil Conway <neilc@samurai.com> | 2005-02-28 03:45:24 +0000 |
---|---|---|
committer | Neil Conway <neilc@samurai.com> | 2005-02-28 03:45:24 +0000 |
commit | 484f0464ff4aa5a5fccc1d4e3c0d3518a8f01068 (patch) | |
tree | b939fae4ca3af9e19186f89bcaa00aecae632b05 /src/backend/utils/adt/arrayfuncs.c | |
parent | 517872c566217368b370fbf2a7c229529b405042 (diff) | |
download | postgresql-484f0464ff4aa5a5fccc1d4e3c0d3518a8f01068.tar.gz postgresql-484f0464ff4aa5a5fccc1d4e3c0d3518a8f01068.zip |
Implement max() and min() aggregates for array types. Patch from Koju
Iijima, reviewed by Neil Conway. Catalog version number bumped,
regression tests updated.
Diffstat (limited to 'src/backend/utils/adt/arrayfuncs.c')
-rw-r--r-- | src/backend/utils/adt/arrayfuncs.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index dfdeb0bd160..19db8f4cc96 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.115 2004/12/31 22:01:21 pgsql Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.116 2005/02/28 03:45:21 neilc Exp $ * *------------------------------------------------------------------------- */ @@ -3387,3 +3387,33 @@ makeMdArrayResult(ArrayBuildState *astate, return PointerGetDatum(result); } + +Datum +array_larger(PG_FUNCTION_ARGS) +{ + ArrayType *v1, + *v2, + *result; + + v1 = PG_GETARG_ARRAYTYPE_P(0); + v2 = PG_GETARG_ARRAYTYPE_P(1); + + result = ((array_cmp(fcinfo) > 0) ? v1 : v2); + + PG_RETURN_ARRAYTYPE_P(result); +} + +Datum +array_smaller(PG_FUNCTION_ARGS) +{ + ArrayType *v1, + *v2, + *result; + + v1 = PG_GETARG_ARRAYTYPE_P(0); + v2 = PG_GETARG_ARRAYTYPE_P(1); + + result = ((array_cmp(fcinfo) < 0) ? v1 : v2); + + PG_RETURN_ARRAYTYPE_P(result); +} |