Files
database/initdb.d/01-function.sql
T
2021-10-15 12:43:17 +07:00

25 lines
627 B
PL/PgSQL

CREATE OR REPLACE FUNCTION "f_updatedAt"()
RETURNS TRIGGER AS $$
BEGIN
NEW."updatedAt" = now();
RETURN NEW;
END;
$$ language 'plpgsql';
CREATE FUNCTION array_distinct(anyarray) RETURNS anyarray AS $f$
SELECT array_agg(DISTINCT x) FROM unnest($1) t(x);
$f$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION normalize_reading (TEXT[]) RETURNS TEXT[] AS
$func$
DECLARE
s TEXT;
new_arr TEXT[] := '{}';
BEGIN
FOREACH s IN ARRAY $1||'{}'::text[] LOOP
new_arr := new_arr||ARRAY[split_part(s,'.',1), replace(s,'.','')];
END LOOP;
RETURN new_arr;
END;
$func$ LANGUAGE plpgsql IMMUTABLE;