I'm trying to return multiple values in plpgsql with a very simplistic test function. The test function takes an integer as input and is supposed to return if it's positive, negative and zero. I've seen some example but they are all over complicated and go over my head.
Here is what i tried:
create or replace function test(v integer)
returns record as $$
BEGIN
IF v > 0
THEN return true as positive, false as negative, false as zero;
ELSEIF v < 0
THEN return false as positive, true as negative, false as zero;
ELSE
return false as positive, false as negative, true as zero;
END IF;
END;
$$ LANGUAGE plpgsql;
Also tried this
create or replace function test(v integer)
returns record as $$
DECLARE
result record;
BEGIN
IF v > 0
THEN
result.positive = true;
result.negative = false;
result.zero = false;
ELSEIF v < 0
THEN
result.positive = false;
result.negative = true;
result.zero = false;
ELSE
result.positive = false;
result.negative = false;
result.zero = true;
return result;
END IF;
END;
$$ LANGUAGE plpgsql;
ALSO this:
IF v > 0
THEN
SELECT true, false, false into
result.positive, result.negative, result.zero;
ELSEIF v < 0
THEN
SELECT false, true, false into
result.positive, result.negative, result.zero;
ELSE
SELECT false, false, true into
result.positive, result.negative, result.zero;
return result;
END IF;