File: /volume1/@appstore/SynologyPhotos/etc/sql/8.sql
CREATE OR REPLACE FUNCTION public.display_item_type_order (item_type integer)
RETURNS integer
LANGUAGE plpgsql
IMMUTABLE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 1
AS $$
DECLARE
display_order integer;
order_map integer[];
BEGIN
-- kPhoto = 0, order 0
-- kVideo = 1, order 3
-- kBurst = 2, order 5
-- kLive = 3, order 1
-- kPhoto360 = 4, order 2
-- kVideo360 = 5, order 4
SELECT ARRAY[0, 3, 5, 1, 2, 4] INTO order_map;
display_order = order_map[item_type + 1];
RETURN display_order;
END
$$;
CREATE INDEX unit_item_type_order_func_idx ON public.unit
USING btree (
display_item_type_order(item_type) ASC NULLS LAST
);
CREATE INDEX item_type_order_func_idx ON public.item
USING btree (
display_item_type_order(type) ASC NULLS LAST
);