diff options
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); +} |