maya
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
message_part_trig_func()
Parameters
Name
Type
Mode
Definition
DECLARE v_count int; v_partition_name text; v_partition_timestamp timestamptz; BEGIN IF TG_OP = 'INSERT' THEN v_partition_timestamp := date_trunc('month', NEW.senddate); IF NEW.senddate >= '2023-03-01 00:00:00+00' AND NEW.senddate < '2023-04-01 00:00:00+00' THEN INSERT INTO public.message_p2023_03 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2023-02-01 00:00:00+00' AND NEW.senddate < '2023-03-01 00:00:00+00' THEN INSERT INTO public.message_p2023_02 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2023-04-01 00:00:00+00' AND NEW.senddate < '2023-05-01 00:00:00+00' THEN INSERT INTO public.message_p2023_04 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2023-01-01 00:00:00+00' AND NEW.senddate < '2023-02-01 00:00:00+00' THEN INSERT INTO public.message_p2023_01 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2023-05-01 00:00:00+00' AND NEW.senddate < '2023-06-01 00:00:00+00' THEN INSERT INTO public.message_p2023_05 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2022-12-01 00:00:00+00' AND NEW.senddate < '2023-01-01 00:00:00+00' THEN INSERT INTO public.message_p2022_12 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2023-06-01 00:00:00+00' AND NEW.senddate < '2023-07-01 00:00:00+00' THEN INSERT INTO public.message_p2023_06 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2022-11-01 00:00:00+00' AND NEW.senddate < '2022-12-01 00:00:00+00' THEN INSERT INTO public.message_p2022_11 VALUES (NEW.*) ; ELSIF NEW.senddate >= '2023-07-01 00:00:00+00' AND NEW.senddate < '2023-08-01 00:00:00+00' THEN INSERT INTO public.message_p2023_07 VALUES (NEW.*) ; ELSE v_partition_name := public.check_name_length('message', to_char(v_partition_timestamp, 'YYYY_MM'), TRUE); SELECT count(*) INTO v_count FROM pg_catalog.pg_tables WHERE schemaname = 'public'::name AND tablename = v_partition_name::name; IF v_count > 0 THEN EXECUTE format('INSERT INTO %I.%I VALUES($1.*) ', 'public', v_partition_name) USING NEW; ELSE RETURN NEW; END IF; END IF; END IF; RETURN NULL; END