-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparse_date.sql
31 lines (28 loc) · 1.13 KB
/
parse_date.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- Function: osdregistry.parse_date(text, date)
-- DROP FUNCTION osdregistry.parse_date(text, date);
CREATE OR REPLACE FUNCTION osdregistry.parse_date(val text, def date)
RETURNS date AS
$BODY$
DECLARE
err_msg text := '';
BEGIN
BEGIN
-- whitespace trimming done by cast method
RETURN coalesce ( osdregistry.parse_date(val), def) ;
EXCEPTION WHEN OTHERS THEN
GET STACKED DIAGNOSTICS err_msg = RETURNED_SQLSTATE;
RAISE LOG 'wrong date % and sqlstate=%', val, err_msg;
return res;
END;
return res;
END;
$BODY$
LANGUAGE plpgsql IMMUTABLE
COST 100;
ALTER FUNCTION osdregistry.parse_date(text, date)
OWNER TO megdb_admin;
GRANT EXECUTE ON FUNCTION osdregistry.parse_date(text, date) TO megdb_admin;
GRANT EXECUTE ON FUNCTION osdregistry.parse_date(text, date) TO megx_team;
GRANT EXECUTE ON FUNCTION osdregistry.parse_date(text, date) TO megxuser;
REVOKE ALL ON FUNCTION osdregistry.parse_date(text, date) FROM public;
COMMENT ON FUNCTION osdregistry.parse_date(text, date) IS 'Returns a date value, in case it can not cast to date returns user suppied default value';