diff options
Diffstat (limited to 'src/test/regress/expected/rangefuncs.out')
| -rw-r--r-- | src/test/regress/expected/rangefuncs.out | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out index 843bc53e4e..a32cbf5f79 100644 --- a/src/test/regress/expected/rangefuncs.out +++ b/src/test/regress/expected/rangefuncs.out @@ -836,3 +836,64 @@ ERROR: a column definition list is required for functions returning "record" LINE 1: select * from testfoo(); ^ drop function testfoo(); +-- +-- Check some cases involving dropped columns in a rowtype result +-- +create temp table users (userid text, email text, todrop bool, enabled bool); +insert into users values ('id','email',true,true); +insert into users values ('id2','email2',true,true); +alter table users drop column todrop; +create or replace function get_first_user() returns users as +$$ SELECT * FROM users ORDER BY userid LIMIT 1; $$ +language sql stable; +SELECT get_first_user(); + get_first_user +---------------- + (id,email,t) +(1 row) + +SELECT * FROM get_first_user(); + userid | email | enabled +--------+-------+--------- + id | email | t +(1 row) + +create or replace function get_users() returns setof users as +$$ SELECT * FROM users ORDER BY userid; $$ +language sql stable; +SELECT get_users(); + get_users +---------------- + (id,email,t) + (id2,email2,t) +(2 rows) + +SELECT * FROM get_users(); + userid | email | enabled +--------+--------+--------- + id | email | t + id2 | email2 | t +(2 rows) + +drop function get_first_user(); +drop function get_users(); +drop table users; +-- this won't get inlined because of type coercion, but it shouldn't fail +create or replace function foobar() returns setof text as +$$ select 'foo'::varchar union all select 'bar'::varchar ; $$ +language sql stable; +select foobar(); + foobar +-------- + foo + bar +(2 rows) + +select * from foobar(); + foobar +-------- + foo + bar +(2 rows) + +drop function foobar(); |
