*** src/backend/utils/adt/timestamp.c~	2009-06-11 15:49:04.000000000 +0100
--- src/backend/utils/adt/timestamp.c	2009-10-30 14:04:42.000000000 +0000
***************
*** 2105,2110 ****
--- 2105,2124 ----
  	PG_RETURN_INT32(interval_cmp_internal(interval1, interval2));
  }
  
+ Datum
+ interval_abs(PG_FUNCTION_ARGS)
+ {
+ 	Interval   *interval1 = PG_GETARG_INTERVAL_P(0);
+ 	Interval   *interval2 = PG_GETARG_INTERVAL_P(1);
+ 	Interval   *result;
+ 
+ 	if (interval_cmp_internal(interval1, interval2) < 0)
+ 		result = interval1;
+ 	else
+ 		result = interval2;
+ 	PG_RETURN_INTERVAL_P(result);
+ }
+ 
  /*
   * Hashing for intervals
   *
