The following bug has been logged on the website:
Bug reference: 13909
Logged by: Hein
Email address: hein@bitechsystems.co.za
PostgreSQL version: 9.5.0
Operating system: Windows 10 / Linux
Description:
After upgrading to 9.5 with a new database, concatenation of a citext and a
function that returns citext does not work. It gives a syntax error.
Code to duplicate, requires citext extension:
CREATE OR REPLACE FUNCTION isnull(
p_value citext
,p_replacevalue citext = ''
)
RETURNS citext
AS $$
select case when p_value is null then p_replacevalue else p_value end
$$ LANGUAGE sql IMMUTABLE COST 1;
DO
$$
DECLARE
m_text citext;
BEGIN
m_text = 'test' || isnull(m_text,''); --code breaks here!
--raise notice '%', isnull(m_text);
END;
$$ LANGUAGE plpgsql ;