From: | Erik Wienhold <ewie(at)ewie(dot)name> |
---|---|
To: | Lorusso Domenico <domenico(dot)l76(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Strange behaviour on function |
Date: | 2023-07-05 13:53:11 |
Message-ID: | 343055114.819586.1688565191572@office.mailbox.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> On 05/07/2023 14:23 CEST Lorusso Domenico <domenico(dot)l76(at)gmail(dot)com> wrote:
>
> Hello guys,
> here a simple function
>
> CREATE OR REPLACE FUNCTION bind_action(
> sqlstr text,
> hrec hstore)
> RETURNS text
> LANGUAGE 'plpgsql'
> COST 100
> immutable PARALLEL SAFE
> AS $BODY$
> declare
> _sqlstr text=sqlstr;
> _k text;
> _debug text;
> begin
> _debug= '--Start' || _sqlstr;
> foreach _k in array akeys(hrec) loop
> _debug =_debug || format($$
> hstore: %s %s
> sqlStr:$$, _k, hrec[_k]);
> _sqlstr=replace(_sqlstr, ':'||_k||':', hrec[_k]);
> _debug =_debug || _sqlstr;
>
> end loop;
>
> raise notice 'final %',_debug;
> return _sqlstr;
> end;
> $BODY$;
>
> and here a simple test
> do
> $$
> declare
> sqlstr text=':id::bignt,:surpa:,:disfa:';
> hs hstore;
> begin
> hs['id']=789;
> hs['disfa']='ssssssss';
> raise notice '%',bind_action(sqlstr,hs);
> end;
> $$;
>
> and it works.
> But...
> When I call this function in a function called by a trigger it down't work
> _debug variable becomes null, also _sqlstr becomes null...
Does the hstore contain nulls? Function replace returns null in that case.
Please show us the trigger, its function, and a reproducer.
--
Erik
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2023-07-05 15:16:26 | Re: Strange behaviour on function |
Previous Message | Lorusso Domenico | 2023-07-05 12:23:44 | Strange behaviour on function |