*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.148 2005/08/12 18:23:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.149 2005/08/25 01:30:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
{
Timestamp dt1 = PG_GETARG_TIMESTAMP(0);
Timestamp dt2 = PG_GETARG_TIMESTAMP(1);
- Interval *result;
+ Interval *result, *result2;
result = (Interval *) palloc(sizeof(Interval));
result->month = 0;
result->day = 0;
- result = DatumGetIntervalP(DirectFunctionCall1(interval_justify_hours,
+ result2 = DatumGetIntervalP(DirectFunctionCall1(interval_justify_hours,
IntervalPGetDatum(result)));
- PG_RETURN_INTERVAL_P(result);
+ pfree(result);
+ PG_RETURN_INTERVAL_P(result2);
}
/* interval_justify_hours()
Interval *span = PG_GETARG_INTERVAL_P(0);
float8 factor = PG_GETARG_FLOAT8(1);
double month_remainder, day_remainder;
- Interval *result;
+ Interval *result, *result2;
result = (Interval *) palloc(sizeof(Interval));
day_remainder * SECS_PER_DAY);
#endif
- result = DatumGetIntervalP(DirectFunctionCall1(interval_justify_hours,
+ result2 = DatumGetIntervalP(DirectFunctionCall1(interval_justify_hours,
IntervalPGetDatum(result)));
- PG_RETURN_INTERVAL_P(result);
+ pfree(result);
+ PG_RETURN_INTERVAL_P(result2);
}
Datum
Interval *span = PG_GETARG_INTERVAL_P(0);
float8 factor = PG_GETARG_FLOAT8(1);
double month_remainder, day_remainder;
- Interval *result;
+ Interval *result, *result2;
result = (Interval *) palloc(sizeof(Interval));
result->time = JROUND(result->time);
#endif
- result = DatumGetIntervalP(DirectFunctionCall1(interval_justify_hours,
+ result2 = DatumGetIntervalP(DirectFunctionCall1(interval_justify_hours,
IntervalPGetDatum(result)));
- PG_RETURN_INTERVAL_P(result);
+ pfree(result);
+ PG_RETURN_INTERVAL_P(result2);
}
/*