-- unixdate
-- Routines to convert int4 (Unix system time) to datetime
--  and int4 (delta time) to timespan
--
-- Thomas Lockhart (lockhart@alumni.caltech.edu)
-- 1997-11-25
--
-- This cheats and reuses existing code in the standard package.
-- Can not include this directly because built-in functions are optimized
--  into a cache and the duplicate function names abstime_datetime() and
--  reltime_timespan() result in duplicate constants.
--
-- This works with Postgres v6.2 and higher.

--
-- Conversions from integer to datetime
--

CREATE FUNCTION abstime_datetime(int4)
 RETURNS datetime
 AS '-' LANGUAGE 'internal';

CREATE FUNCTION datetime(int4)
 RETURNS datetime
 AS 'select abstime_datetime($1)' LANGUAGE 'SQL';

CREATE FUNCTION reltime_timespan(int4)
 RETURNS timespan
 AS '-' LANGUAGE 'internal';

CREATE FUNCTION timespan(int4)
 RETURNS timespan
 AS 'select reltime_timespan($1)' LANGUAGE 'SQL';

--
-- Conversions back to integer
--

CREATE FUNCTION datetime_abstime(datetime)
 RETURNS int4
 AS '-' LANGUAGE 'internal';

CREATE FUNCTION utime(datetime)
 RETURNS int4
 AS 'select datetime_abstime($1)' LANGUAGE 'SQL';

CREATE FUNCTION timespan_reltime(timespan)
 RETURNS int4
 AS '-' LANGUAGE 'internal';

CREATE FUNCTION uspan(timespan)
 RETURNS int4
 AS 'select timespan_reltime($1)' LANGUAGE 'SQL';