[BUGS] BUG #8393: ERROR: failed to locate grouping columns on grouping by varchar returned from function
The following bug has been logged on the website: Bug reference: 8393 Logged by: Evan Martin Email address: postgre...@realityexists.net PostgreSQL version: 9.2.4 Operating system: Windows 7 x64 SP1 Description: version(): PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 64-bit Run the following: CREATE OR REPLACE FUNCTION test_group_by() RETURNS TABLE (my_col varchar(5)) AS $BODY$ SELECT 'hello'::varchar(5); $BODY$ LANGUAGE sql STABLE; SELECT my_col FROM test_group_by() GROUP BY 1; Expected result: 'hello' Actual result: ERROR: failed to locate grouping columns Interestingly, if the function is marked VOLATILE it works. Casting the result to text also makes it work. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #8393: ERROR: failed to locate grouping columns on grouping by varchar returned from function
postgre...@realityexists.net writes: CREATE OR REPLACE FUNCTION test_group_by() RETURNS TABLE (my_col varchar(5)) AS $BODY$ SELECT 'hello'::varchar(5); $BODY$ LANGUAGE sql STABLE; SELECT my_col FROM test_group_by() GROUP BY 1; ERROR: failed to locate grouping columns Fixed in our git tree; thanks for the report! As a workaround in this particular case, you could just not bother with marking the specific length of the varchar constant. The function definition essentially ignores the length, storing only varchar as the result column type, and it's the discrepancy between that and the declaration of the constant that's tickling the bug. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs