diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/rangefuncs.out | 20 | ||||
| -rw-r--r-- | src/test/regress/sql/rangefuncs.sql | 19 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out index 66736a3564c..c6a3e575afb 100644 --- a/src/test/regress/expected/rangefuncs.out +++ b/src/test/regress/expected/rangefuncs.out @@ -898,3 +898,23 @@ select * from foobar(); (2 rows) drop function foobar(); +-- check handling of a SQL function with multiple OUT params (bug #5777) +create or replace function foobar(out integer, out numeric) as +$$ select (1, 2.1) $$ language sql; +select * from foobar(); + column1 | column2 +---------+--------- + 1 | 2.1 +(1 row) + +create or replace function foobar(out integer, out numeric) as +$$ select (1, 2) $$ language sql; +select * from foobar(); -- fail +ERROR: function return row and query-specified return row do not match +DETAIL: Returned type integer at ordinal position 2, but query expects numeric. +create or replace function foobar(out integer, out numeric) as +$$ select (1, 2.1, 3) $$ language sql; +select * from foobar(); -- fail +ERROR: function return row and query-specified return row do not match +DETAIL: Returned row contains 3 attributes, but query expects 2. +drop function foobar(); diff --git a/src/test/regress/sql/rangefuncs.sql b/src/test/regress/sql/rangefuncs.sql index db74770228d..46aaf335d09 100644 --- a/src/test/regress/sql/rangefuncs.sql +++ b/src/test/regress/sql/rangefuncs.sql @@ -429,3 +429,22 @@ select foobar(); select * from foobar(); drop function foobar(); + +-- check handling of a SQL function with multiple OUT params (bug #5777) + +create or replace function foobar(out integer, out numeric) as +$$ select (1, 2.1) $$ language sql; + +select * from foobar(); + +create or replace function foobar(out integer, out numeric) as +$$ select (1, 2) $$ language sql; + +select * from foobar(); -- fail + +create or replace function foobar(out integer, out numeric) as +$$ select (1, 2.1, 3) $$ language sql; + +select * from foobar(); -- fail + +drop function foobar(); |
