*** timestamp.c.bak Wed Nov 21 09:41:35 2001 --- timestamp.c Wed Nov 21 09:44:46 2001 *************** *** 1569,1577 **** * buggy array code: it won't ensure proper alignment of Interval * objects on machines where double requires 8-byte alignment. That * should be fixed, but in the meantime... */ ! memcpy( (void *)&sumX, (void *)DatumGetIntervalP(transdatums[0]), sizeof(Interval)); ! memcpy( (void *)&N, (void *)DatumGetIntervalP(transdatums[1]), sizeof(Interval)); newsum = DatumGetIntervalP(DirectFunctionCall2(interval_pl, IntervalPGetDatum(&sumX), IntervalPGetDatum(newval))); --- 1569,1578 ---- * buggy array code: it won't ensure proper alignment of Interval * objects on machines where double requires 8-byte alignment. That * should be fixed, but in the meantime... + * If it ever gets fixed use DatumGetIntervalP instead of DatumGetPointer */ ! memcpy( (void *)&sumX, (void *)DatumGetPointer(transdatums[0]), sizeof(Interval)); ! memcpy( (void *)&N, (void *)DatumGetPointer(transdatums[1]), sizeof(Interval)); newsum = DatumGetIntervalP(DirectFunctionCall2(interval_pl, IntervalPGetDatum(&sumX), IntervalPGetDatum(newval))); *************** *** 1606,1614 **** * buggy array code: it won't ensure proper alignment of Interval * objects on machines where double requires 8-byte alignment. That * should be fixed, but in the meantime... */ ! memcpy( (void *)&sumX, (void *)DatumGetIntervalP(transdatums[0]), sizeof(Interval)); ! memcpy( (void *)&N, (void *)DatumGetIntervalP(transdatums[1]), sizeof(Interval)); /* SQL92 defines AVG of no values to be NULL */ if (N.time == 0) PG_RETURN_NULL(); --- 1607,1616 ---- * buggy array code: it won't ensure proper alignment of Interval * objects on machines where double requires 8-byte alignment. That * should be fixed, but in the meantime... + * If it ever gets fixed use DatumGetIntervalP instead of DatumGetPointer */ ! memcpy( (void *)&sumX, (void *)DatumGetPointer(transdatums[0]), sizeof(Interval)); ! memcpy( (void *)&N, (void *)DatumGetPointer(transdatums[1]), sizeof(Interval)); /* SQL92 defines AVG of no values to be NULL */ if (N.time == 0) PG_RETURN_NULL();