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 RETURN ARRAY[split_part($1,'.',1), replace($1,'.','')]; END; $func$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION identity (JSONB) RETURNS JSONB AS $func$ SELECT $1; $func$ LANGUAGE SQL IMMUTABLE; CREATE OR REPLACE FUNCTION identity (TEXT) RETURNS TEXT AS $func$ SELECT $1; $func$ LANGUAGE SQL IMMUTABLE;