Page MenuHomeSoftware Heritage

public.swh_occurrence_history_add.sql
No OneTemporary

public.swh_occurrence_history_add.sql

--
-- PostgreSQL database dump
--
-- Dumped from database version 10.1
-- Dumped by pg_dump version 10.2 (Debian 10.2-1.pgdg+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;
SET search_path = public, pg_catalog;
--
-- Name: swh_occurrence_history_add(); Type: FUNCTION; Schema: public; Owner: -
--
CREATE FUNCTION swh_occurrence_history_add() RETURNS void
LANGUAGE plpgsql
AS $$
declare
origin_id origin.id%type;
begin
-- Create or update occurrence_history
with occurrence_history_id_visit as (
select tmp_occurrence_history.*, object_id, visits from tmp_occurrence_history
left join occurrence_history using(origin, branch, target, target_type)
),
occurrences_to_update as (
select object_id, visit from occurrence_history_id_visit where object_id is not null
),
update_occurrences as (
update occurrence_history
set visits = array(select unnest(occurrence_history.visits) as e
union
select occurrences_to_update.visit as e
order by e)
from occurrences_to_update
where occurrence_history.object_id = occurrences_to_update.object_id
)
insert into occurrence_history (origin, branch, target, target_type, visits)
select origin, branch, target, target_type, ARRAY[visit]
from occurrence_history_id_visit
where object_id is null;
-- update occurrence
for origin_id in
select distinct origin from tmp_occurrence_history
loop
perform swh_occurrence_update_for_origin(origin_id);
end loop;
return;
end
$$;
--
-- PostgreSQL database dump complete
--

File Metadata

Mime Type
text/plain
Expires
Jun 4 2025, 6:58 PM (10 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3383167

Event Timeline