Ответ зависит от того, что вы подразумеваете под «шаблоном»:
Если вы хотите быть c универсальным в отношении параметра, вы уже сделали (за исключением некоторых настроек синтаксиса): просто опустите TEMPLATE
и вместо этого произнесите RETURNS users
.
Если вы хотите быть универсальным c по отношению к столбцу (firstname
), вы можете сделать это с помощью Dynami c SQL.
Если вы хотите быть generi c по отношению к таблице, вам не повезло: у вас не может быть разумного типа возврата Dynami c в PostgreSQL.
Это ваша функция, написанная синтаксически правильно:
CREATE FUNCTION getUserByFirstName(text) RETURNS users
LANGUAGE sql AS
'SELECT * FROM users WHERE firstname = $1';