HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /volume1/@appstore/SynologyPhotos/etc/sql/50.sql
CREATE OR REPLACE FUNCTION public.recalculate_person_album_item_count(user_id integer)
RETURNS VOID AS
$$
BEGIN
  INSERT INTO
  person_item_count (id_person, id_user, item_count)
  SELECT
    person.id AS id_person,
    user_id as id_user,
    (
      SELECT
        COUNT(DISTINCT(id_item))
      FROM
        person_face_view
      WHERE
        id_user = user_id
        AND id_person = person.id
        AND is_major
    ) as item_count
  FROM
    person
  WHERE
    id_user = user_id
  ON CONFLICT(id_user, id_person) DO UPDATE
  SET
    (id_person, id_user, item_count) = (EXCLUDED.id_person, EXCLUDED.id_user, EXCLUDED.item_count);
END;
$$ LANGUAGE plpgsql;
DELETE FROM person_item_count WHERE id_person NOT IN (SELECT id FROM person);
ALTER TABLE
  public.person_item_count
ADD
  CONSTRAINT person_fk FOREIGN KEY (id_person) REFERENCES public.person (id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE;
DROP TRIGGER IF EXISTS delete_person_item_count_trigger ON public.face CASCADE;
DROP FUNCTION IF EXISTS public.delete_person_item_count_func() CASCADE;