woensdag 14 april 2021

Postgresql paste

create or replace function create_partitions()
returns void
language plpgsql
as $$
declare
  c_date_format constant varchar(8) := 'yyyymmdd';
  meuk varchar(255);
begin
  for r in (select tablename from pg_tables where tablename like 'history_%' and substring (tablename from '........$' < to_char(now() + '-7 day', c_date_format))
  loop
     meuk := r.tablename;
     raise notice '%', meuk;
     execute format ('drop table %1$s', r.tablename);
  end loop;
end;
$$;


do $$
declare
distance float;
begin
distance := (select ST_Distance(ST_Transform(old."location"::geometry, 3857), ST_Transform(new."location"::geometry, 3857)));
if (distance > 4.0) then
   perform create_partitions();
end if;
end;
$$


select create_partitions()

select cron.schedule('10 2 * * *', $$select create_partitions()$$);
-- iedere 5 minuten is: '*/5 * * * *'
select * from cron.job
select cron.unschedule(jobid) from cron.job where jobid = {jobid getal}
select * from history where date > TIMESTAMP 'yesterday'

Geen opmerkingen:

Een reactie posten