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/9.sql
DROP TABLE unit_similar_hash;
DROP TABLE many_similar_group_has_many_item;
DROP TABLE similar_group;
DROP FUNCTION IF EXISTS public.update_similar_info_func() CASCADE;
DROP FUNCTION IF EXISTS public.update_similar_group_count(text, integer) CASCADE;
DROP FUNCTION IF EXISTS public.update_similar_group_cover(text, integer) CASCADE;
CREATE OR REPLACE FUNCTION public.unit_update_id_item_func ( schema text,  item_id integer,  new_item_id integer)
	RETURNS void
	LANGUAGE plpgsql
	VOLATILE
	CALLED ON NULL INPUT
	SECURITY INVOKER
	COST 1
	AS $$
DECLARE
  many_item_has_many_normal_album_table text;
  album_array bigint[];
  album_id bigint;
  record RECORD;
BEGIN
  many_item_has_many_normal_album_table = schema || '.many_item_has_many_normal_album';
  EXECUTE format('SELECT array_agg(id_normal_album) FROM %s WHERE id_item = %L', many_item_has_many_normal_album_table, item_id) INTO album_array;
  IF (album_array IS NOT NULL) THEN
    FOREACH album_id IN ARRAY album_array LOOP
      EXECUTE format('SELECT * FROM %s WHERE id_normal_album = %L AND id_item = %L', many_item_has_many_normal_album_table, album_id, new_item_id) INTO record;
      IF (record IS NULL) THEN
        EXECUTE format('UPDATE %s SET id_item = %L WHERE id_normal_album = %L AND id_item = %L', many_item_has_many_normal_album_table, new_item_id, album_id, item_id);
      END IF;
    END LOOP;
  END IF;
END
$$;