Need for advice and direction (again)
Hello Tom,
I would like to know your opinion about the way we should refer to composite
type params in functions.
For example:
CREATE TABLE emp (
name text,
salary numeric,
age integer,
cubicle point
);
CREATE FUNCTION double_salary(emp) RETURNS numeric AS $$
SELECT $1.salary * 2 AS salary;
$$ LANGUAGE SQL;
How should we refer to emp in the following example.
CREATE FUNCTION double_salary(PARAM1 emp) RETURNS numeric AS $$
-- At this moment PARAM1.salary will fail because PARAM1
-- is compared to the name of this function
SELECT PARAM1.salary * 2 AS salary;
-- Would this be correct?
SELECT double_salary.PARAM1.salary * 2 AS salary;
$$ LANGUAGE SQL;
Regards,
Gevik.
------------------------------------------------
Gevik Babakhani
PostgreSQL NL http://www.postgresql.nl
TrueSoftware BV http://www.truesoftware.nl
------------------------------------------------
"Gevik Babakhani" <pgdev@xs4all.nl> writes:
How should we refer to emp in the following example.
CREATE FUNCTION double_salary(PARAM1 emp) RETURNS numeric AS $$
-- At this moment PARAM1.salary will fail because PARAM1
-- is compared to the name of this function
SELECT PARAM1.salary * 2 AS salary;
It'd need to be
SELECT (PARAM1).salary * 2 AS salary;
This is already the case in other usages of composite types.
regards, tom lane