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/29.sql
ALTER TABLE public.album
  ADD COLUMN start_time bigint,
  ADD COLUMN end_time bigint;
CREATE OR REPLACE VIEW public.share_album_view
AS
SELECT album.id,
    album.id_user,
    album.name,
    album.type,
    album.shared,
    album.create_time,
    album.cover,
    album.sort_by,
    album.sort_direction,
    album.passphrase_share,
    album.version,
    album.item_count,
    share.modified_time,
    album.normalized_name,
    album.start_time,
    album.end_time
FROM album, share
WHERE album.passphrase_share = share.passphrase;
CREATE OR REPLACE FUNCTION public.get_unit_takentime_by_condition_album ( id_album integer)
  RETURNS TABLE ( max bigint,  min bigint)
  LANGUAGE plpgsql
  VOLATILE
  CALLED ON NULL INPUT
  SECURITY INVOKER
  COST 1
  AS $$
DECLARE
  unit_table text;
  item_table text;
BEGIN
    unit_table = 'public.unit';
    item_table = 'public.condition_album_item_' || id_album;
    RETURN QUERY EXECUTE 'SELECT MAX(takentime), MIN(takentime) FROM ' || unit_table || ' WHERE id_item IN(
        SELECT id_item FROM '|| item_table ||')';
END;
$$;
CREATE OR REPLACE FUNCTION public.insert_item_to_update_condition_album_func ( id_album integer)
  RETURNS void
  LANGUAGE plpgsql
  VOLATILE
  CALLED ON NULL INPUT
  SECURITY INVOKER
  COST 1
  AS $$
DECLARE
  item_table text;
  condition_album_table text;
  max_time bigint;
  min_time bigint;
  count integer;
BEGIN
  condition_album_table = 'public.condition_album';
  item_table = 'public.condition_album_item_' || id_album;
  EXECUTE 'SELECT count(*) FROM ' || item_table INTO count;
  EXECUTE format('SELECT COALESCE(max, 0), COALESCE(min, 0) FROM public.get_unit_takentime_by_condition_album(%L)', id_album) INTO max_time, min_time;
  EXECUTE 'UPDATE ' || condition_album_table || ' SET start_time = ' || min_time || ', end_time = ' || max_time || ', item_count = ' || count || ' WHERE id = ' || id_album;
END;
$$;