37 lines
1.3 KiB
PL/PgSQL
37 lines
1.3 KiB
PL/PgSQL
-- Delta-миграция (auth-БД): функция auth.user_select_by_ids — batch-выборка публичных профилей
|
|
-- пользователей по списку id. Нужна для межсервисного обогащения списков в потребителях
|
|
-- (Kit.Auth.Client.JoinUserProfiles → POST auth/user/by-ids).
|
|
--
|
|
-- Идемпотентна: CREATE OR REPLACE. Безопасно запускать повторно; подходит для прода без
|
|
-- пересоздания БД. Соответствует init/schemas/auth/functions/user/user_select_by_ids.psql.
|
|
|
|
BEGIN;
|
|
|
|
CREATE OR REPLACE FUNCTION auth.user_select_by_ids(_ids integer[] DEFAULT NULL::integer[])
|
|
RETURNS SETOF refcursor
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
DECLARE
|
|
_rc refcursor;
|
|
BEGIN
|
|
OPEN _rc FOR
|
|
SELECT
|
|
main.id,
|
|
main.outer_user_id,
|
|
main.login,
|
|
main.first_name,
|
|
main.last_name,
|
|
main.middle_name,
|
|
main.email,
|
|
main.phone,
|
|
main.sex,
|
|
main.date_created,
|
|
main.is_blocked
|
|
FROM auth.user main
|
|
WHERE main.is_deleted = false
|
|
AND main.id = ANY(_ids);
|
|
RETURN NEXT _rc;
|
|
END;
|
|
$$;
|
|
|
|
COMMIT; |