VIEW instead of FUNCTION for inserting data
Named parameters should actually be passed using =&gt; not = and not :=.

e.g.

select my_function(argument_one =&gt; 42, argument_five =&gt; 'foobar');


The =&gt; is defined by the SQL standard for named parameters, the := was used historically by Postgres, but its use is discouraged in newer versions in favor of the standard compliant =&gt;

Using Named Notation in the manual.