7

I keep getting this ERROR: column reference "person" is ambiguous.

It is required of me to return a TABLE (person integer). It works fine when I use SETOF integer but in this instance it doesn't work. My other function recurse() returns a set of integers perfectly well.

CREATE OR REPLACE FUNCTION try(_group text) RETURNS TABLE (person integer) AS $$ DECLARE _init_id integer; _record integer; BEGIN SELECT id INTO _init_id FROM egroups WHERE name = _group; FOR _record in SELECT person FROM egroupdata WHERE egroup IN (SELECT recurse(_init_id)) LOOP RETURN NEXT; END LOOP; END; $$ language plpgsql stable; 
1

1 Answer 1

27

Ambiguous column references are due to there being more than one column available of the same name. In this case I guess it's a quirk of returning a table. Try changing the query to:

SELECT egroupdata.person FROM egroupdata WHERE egroup IN (SELECT recurse(_init_id)) 

This will disambiguate the column reference.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.