Bad return type in example

Started by Nikolaus Thielabout 9 years ago2 messagesdocs
Jump to latest
#1Nikolaus Thiel
klt@fsfe.org

* postgresql-9.6-A4.pdf, page 891
* https://www.postgresql.org/docs/9.6/static/xfunc-sql.html#XFUNC-SQL-BASE-FUNCTIONS

Dear Doc Writers,

Would it not be better to change the return type of the following two sample functions to numeric ?

CREATE FUNCTION tf1 (accountno integer, debit numeric) RETURNS integer AS $$
UPDATE bank
SET balance = balance - debit
WHERE accountno = tf1.accountno;
SELECT balance FROM bank WHERE accountno = tf1.accountno;
$$ LANGUAGE SQL;

CREATE FUNCTION tf1 (accountno integer, debit numeric) RETURNS integer AS $$
UPDATE bank
SET balance = balance - debit
WHERE accountno = tf1.accountno
RETURNING balance;
$$ LANGUAGE SQL;

Since debit is of type numeric, balance is (probably) numeric too, so the function ought to return numeric. I guess that the function works as it is using implicit type cast.

With best regards,
Nikolaus Thiel

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Nikolaus Thiel (#1)
Re: Bad return type in example

On 3/8/17 04:00, Nikolaus Thiel wrote:

* postgresql-9.6-A4.pdf, page 891
* https://www.postgresql.org/docs/9.6/static/xfunc-sql.html#XFUNC-SQL-BASE-FUNCTIONS

Dear Doc Writers,

Would it not be better to change the return type of the following two
sample functions to numeric ?

fixed

CREATE FUNCTION tf1 (accountno integer, debit numeric) RETURNS integer AS $$
UPDATE bank
SET balance = balance - debit
WHERE accountno = tf1.accountno;
SELECT balance FROM bank WHERE accountno = tf1.accountno;
$$ LANGUAGE SQL;

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs