У меня есть эта функция pgsql, которая проверяет, существует ли человек на основе заданного personid
. Эта функция возвращает bool
соответственно. Из моего запроса я получаю следующее:
Тем не менее, я хочу, чтобы результирующий столбец имел alias
, чтобы он был более удобочитаемым для наших разработчиков. Поэтому вместо того, чтобы получать func_util__check_basicinfo
, я хочу, чтобы это было person_exists
.
Также причина, по которой функция названа таким образом, связана с нашей конвенцией.
Вот мой запрос для этой функции:
CREATE OR REPLACE FUNCTION profile.func_util__check_basicinfo(person_id integer)
RETURNS boolean
LANGUAGE plpgsql
AS $function$
begin
return exists (
select 1
from profile.person_basicinfo pb
where pb.personid = person_id
);
END;
$function$
;
Определение функции не определяет и не может определять псевдоним. Вам нужно будет использовать псевдоним в запросе, где вы используете функцию:
select func_util_check_basicinfo(...) as person_exists
from ...
По умолчанию столбец будет назван в честь источника в запросе. Таким образом, имя столбца по умолчанию всегда совпадает с именем функции (это верно для всех функций в Postgres). Если вы не хотите указывать псевдоним столбца вручную в каждом запросе, единственный вариант — переименовать функцию в person_exists()
(я бы нашел для начала гораздо лучшее имя, чем существующее)
Вау, это так правильно, нужно использовать псевдоним во время вызова функции ... но да, вы тоже правы, называя функцию
person_exists()
, имеет гораздо больше смысла. Это то, что я на самом деле в конечном итоге сделал и отложил наше соглашение об именах для этого случая... Спасибо, чувак!