Add a function to convert iCalendar interval syntax into SQL.

This commit is contained in:
Andrew McMillan 2010-05-07 22:44:13 +12:00
parent cee251d700
commit bf2d2c3870
2 changed files with 11 additions and 0 deletions

View File

@ -702,3 +702,8 @@ BEGIN
END;
$$ LANGUAGE 'plpgsql' IMMUTABLE;
CREATE or REPLACE FUNCTION icalendar_interval_to_SQL( TEXT ) RETURNS interval AS $function$
SELECT CASE WHEN substring($1,1,1) = '-' THEN -1 ELSE 1 END * regexp_replace( regexp_replace($1, '[PT-]', '', 'g'), '([A-Z])', E'\\1 ', 'g')::interval;
$function$ LANGUAGE 'SQL' IMMUTABLE STRICT;

View File

@ -708,3 +708,9 @@ BEGIN
END;
$$ LANGUAGE 'plpgsql' IMMUTABLE STRICT;
CREATE or REPLACE FUNCTION icalendar_interval_to_SQL( TEXT ) RETURNS interval AS $function$
SELECT CASE WHEN substring($1,1,1) = '-' THEN -1 ELSE 1 END * regexp_replace( regexp_replace($1, '[PT-]', '', 'g'), '([A-Z])', E'\\1 ', 'g')::interval;
$function$ LANGUAGE 'SQL' IMMUTABLE STRICT;