]> git.sur5r.net Git - bacula/bacula/blob - gui/bweb/script/bweb-postgresql.sql
ebl add function to decode base64 lstat
[bacula/bacula] / gui / bweb / script / bweb-postgresql.sql
1 BEGIN;
2
3 CREATE FUNCTION SEC_TO_TIME(timestamp with time zone)
4 RETURNS timestamp with time zone AS $$
5     select date_trunc('second', $1);
6 $$ LANGUAGE SQL;
7
8 CREATE FUNCTION SEC_TO_TIME(bigint)
9 RETURNS interval AS $$
10     select date_trunc('second', $1 * interval '1 second');
11 $$ LANGUAGE SQL;
12
13 CREATE FUNCTION UNIX_TIMESTAMP(timestamp with time zone)
14 RETURNS double precision AS $$
15     select date_part('epoch', $1);
16 $$ LANGUAGE SQL;
17
18 CREATE FUNCTION SEC_TO_INT(interval)
19 RETURNS double precision AS $$
20     select extract(epoch from $1);
21 $$ LANGUAGE SQL;
22
23 CREATE OR REPLACE FUNCTION base64_decode_lstat(int4, varchar) RETURNS int8 AS $$
24 DECLARE
25 val int8;
26 b64 varchar(64);
27 size varchar(64);
28 i int;
29 BEGIN
30 size := split_part($2, ' ', $1);
31 b64 := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
32 val := 0;
33 FOR i IN 1..length(size) LOOP
34 val := val + (strpos(b64, substr(size, i, 1))-1) * (64^(length(size)-i));
35 END LOOP;
36 RETURN val;
37 END;
38 $$ language 'plpgsql';
39
40 COMMIT;