From: | 日向充 <mitsuru(dot)hinata(dot)5432(at)gmail(dot)com> |
---|---|
To: | pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | A minor bug in the doc of "SQL Functions Returning Sets" in xfunc.sgml. |
Date: | 2024-07-19 01:46:04 |
Message-ID: | CAF-2iM_9-2a8PijHoHbS6ZFFV=tziOx8TDo4j+YGDAbsTApk4w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
Hi!
I have found executable examples that do not work correctly
in the doc of "SQL Functions Returning Sets" in xfunc.sgml.
So I fixed the examples as follows.
- Changed CREATE TABLE tab
'(y int, z int)' to '(x int, y int, z int)'
- Changed INSERT INTO tab
'(1, 2), (3, 4), (5, 6), (7, 8)'
to '(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)'
- Changed CREATE FUNCTION sum_n_product_with_tab
'(x int, OUT sum int, OUT product int)'
to '(int, OUT sum int, OUT product int)'
- Changed CREATE FUNCTION sum_n_product_with_tab
'SELECT $1 + tab.y, $1 * tab.y FROM tab;'
to 'SELECT $1 + tab.x, $1 * tab.x FROM tab;'
- Changed result of "SELECT * FROM sum_n_product_with_tab(10);"
The above will improve the results of examples as follows in this chapter.
①
- before
=# SELECT x, generate_series(1,5) AS g FROM tab;
ERROR: column "x" does not exist
LINE 1: SELECT x, generate_series(1,5) AS g FROM tab;
^
- after
=# SELECT x, generate_series(1,5) AS g FROM tab;
x | g
----+---
1 | 1
1 | 2
1 | 3
1 | 4
1 | 5
4 | 1
4 | 2
4 | 3
4 | 4
4 | 5
7 | 1
7 | 2
7 | 3
7 | 4
7 | 5
10 | 1
10 | 2
10 | 3
10 | 4
10 | 5
(20 rows)
②
- before
=# SELECT x, g FROM tab, LATERAL generate_series(1,5) AS g;
ERROR: column "x" does not exist
LINE 1: SELECT x, g FROM tab, LATERAL generate_series(1,5) AS g;
^
- after
=# SELECT x, g FROM tab, LATERAL generate_series(1,5) AS g;
x | g
----+---
1 | 1
4 | 1
7 | 1
10 | 1
1 | 2
4 | 2
7 | 2
10 | 2
1 | 3
4 | 3
7 | 3
10 | 3
1 | 4
4 | 4
7 | 4
10 | 4
1 | 5
4 | 5
7 | 5
10 | 5
(20 rows)
③
- before
=# SELECT srf1(srf2(x), srf3(y)), srf4(srf5(z)) FROM tab;
ERROR: column "x" does not exist
LINE 1: SELECT srf1(srf2(x), srf3(y)), srf4(srf5(z)) FROM tab;
^
- after
=# SELECT srf1(srf2(x), srf3(y)), srf4(srf5(z)) FROM tab;
ERROR: function srf2(integer) does not exist
LINE 1: SELECT srf1(srf2(x), srf3(y)), srf4(srf5(z)) FROM tab;
^
HINT: No function matches the given name and argument types. You
might need to add explicit type casts.
④
- before
=# SELECT x, CASE WHEN x > 0 THEN generate_series(1, 5) ELSE 0 END FROM tab;
ERROR: column "x" does not exist
LINE 1: SELECT x, CASE WHEN x > 0 THEN generate_series(1, 5) ELSE 0 ...
^
- after
=# SELECT x, CASE WHEN x > 0 THEN generate_series(1, 5) ELSE 0 END FROM tab;
ERROR: set-returning functions are not allowed in CASE
LINE 1: SELECT x, CASE WHEN x > 0 THEN generate_series(1, 5) ELSE 0 ...
^
HINT: You might be able to move the set-returning function into a
LATERAL FROM item.
⑤
- before
=# SELECT x, CASE WHEN y > 0 THEN generate_series(1, z) ELSE 5 END FROM tab;
ERROR: column "x" does not exist
LINE 1: SELECT x, CASE WHEN y > 0 THEN generate_series(1, z) ELSE 5 ...
^
- after
=# SELECT x, CASE WHEN y > 0 THEN generate_series(1, z) ELSE 5 END FROM tab;
ERROR: set-returning functions are not allowed in CASE
LINE 1: SELECT x, CASE WHEN y > 0 THEN generate_series(1, z) ELSE 5 ...
^
HINT: You might be able to move the set-returning function into a
LATERAL FROM item.
⑥
- before
=# SELECT x, case_generate_series(y > 0, 1, z, 5) FROM tab;
CREATE FUNCTION
ERROR: column "x" does not exist
LINE 1: SELECT x, case_generate_series(y > 0, 1, z, 5) FROM tab;
^
- after
=# SELECT x, case_generate_series(y > 0, 1, z, 5) FROM tab;
x | case_generate_series
----+----------------------
1 | 1
1 | 2
1 | 3
4 | 1
4 | 2
4 | 3
4 | 4
4 | 5
4 | 6
7 | 1
7 | 2
7 | 3
7 | 4
7 | 5
7 | 6
7 | 7
7 | 8
7 | 9
10 | 1
10 | 2
10 | 3
10 | 4
10 | 5
10 | 6
10 | 7
10 | 8
10 | 9
10 | 10
10 | 11
10 | 12
(30 rows)
Do you think?
Regards,
Mitsuru Hinata
NTT Open Source Software Center
Attachment | Content-Type | Size |
---|---|---|
0001-fix-SQL-Functions-Returning-Sets-docs-in-xfunc.sgml.patch | application/octet-stream | 1.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2024-07-19 02:10:25 | Re: A minor bug in the doc of "SQL Functions Returning Sets" in xfunc.sgml. |
Previous Message | Jonathan S. Katz | 2024-07-18 18:03:40 | Re: A minor bug in doc. Hovering over heading shows # besides it. |