Buenas, pessoas. Eu criei as queries conforme abaixo e não tive o erro de conversão de um inteiro para o decimal, mencinado no tempo 2:30 de vídeo. Acredito que em alguma versão entre a 12 (usada pelo Vinícius) e a 16 (usada no dia de hoje) esse problema foi corrigido. Pode ser interessante adicionar essa informação como alguma nota após o vídeo.
CREATE TABLE instrutor (
id SERIAL PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
salario DECIMAL(10,2) NULL
);
INSERT INTO instrutor VALUES (1, 'Augusto', 100);
INSERT INTO instrutor VALUES (2, 'Mauro', 200);
CREATE OR REPLACE FUNCTION dobro_salario (var instrutor) RETURNS DECIMAL AS
$funcao$
SELECT var.salario * 2 AS dobro;
$funcao$ LANGUAGE SQL;
SELECT nome, dobro_salario(instrutor.*) FROM instrutor;
CREATE OR REPLACE FUNCTION cria_falso() RETURNS instrutor AS $funcao$
SELECT 22 AS id, 'Invasor' AS nome, 400 AS salario;
$funcao$ LANGUAGE SQL;
SELECT nome, dobro_salario(cria_falso()) FROM cria_falso()
UNION
SELECT nome, dobro_salario(instrutor) FROM instrutor;