Horizon-specific functions, beginning with a date conversion routine
[migration-tools.git] / sql / ils_specific / horizon / horizon.sql
1 CREATE OR REPLACE FUNCTION migration_tools.attempt_hz_date (TEXT,TEXT) RETURNS DATE AS $$
2     DECLARE
3         attempt_value ALIAS FOR $1;
4         fail_value ALIAS FOR $2;
5         output DATE;
6     BEGIN
7         FOR output IN
8             EXECUTE E'SELECT (\'1970-01-01\'::date + \'' || attempt_value || E' days\'::interval)::date AS a;'
9         LOOP
10             RETURN output;
11         END LOOP;
12     EXCEPTION
13         WHEN OTHERS THEN
14             FOR output IN
15                 EXECUTE 'SELECT ' || quote_literal(fail_value) || '::date AS a;'
16             LOOP
17                 RETURN output;
18             END LOOP;
19     END;
20 $$ LANGUAGE PLPGSQL STRICT STABLE;
21