The following bug has been logged on the website:
Bug reference: 16977
Logged by: Dusan Djuric
Email address: dusan.djuric@istratech.hr
PostgreSQL version: 13.2
Operating system: Windows 10
Description:
-- THIS DON'T WORK!
CREATE OR REPLACE FUNCTION lctest(p_parameter varchar)
RETURNS varchar
LANGUAGE 'plpgsql'
COST 100
VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
l_lc_time varchar;
l_dateFormat varchar := 'TMDay, TMMonth dd.mm.yyyy';
l_current_date varchar;
BEGIN
l_lc_time := p_parameter;
SET LC_TIME TO l_lc_time;
select to_char(current_date, l_dateFormat)
into l_current_date;
RETURN l_current_date;
END;
$BODY$;
-- THIS WORKS!
CREATE OR REPLACE FUNCTION lctest(p_parameter varchar)
RETURNS varchar
LANGUAGE 'plpgsql'
COST 100
VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
l_lc_time varchar;
l_dateFormat varchar := 'TMDay, TMMonth dd.mm.yyyy';
l_current_date varchar;
BEGIN
l_lc_time := p_parameter;
SET LC_TIME TO l_lc_time;
IF l_lc_time = 'hr_HR.UTF8' THEN
SET LC_TIME TO 'hr_HR.UTF8';
END IF;
IF l_lc_time = 'en_EN.UTF8' THEN
SET LC_TIME TO 'en_EN.UTF8';
END IF;
select to_char(current_date, l_dateFormat)
into l_current_date;
RETURN l_current_date;
END;
$BODY$;