1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-03 15:22:11 +03:00

Fix core dump in transformValuesClause when there are no columns.

The parser code that transformed VALUES from row-oriented to
column-oriented lists failed if there were zero columns.
You can't write that straightforwardly (though probably you
should be able to), but the case can be reached by expanding
a "tab.*" reference to a zero-column table.

Per bug #17477 from Wang Ke.  Back-patch to all supported branches.

Discussion: https://postgr.es/m/17477-0af3c6ac6b0a6ae0@postgresql.org
This commit is contained in:
Tom Lane
2022-05-09 14:15:37 -04:00
parent 9b5797ca54
commit ab2f783921
3 changed files with 18 additions and 12 deletions

View File

@@ -517,6 +517,13 @@ TABLE int8_tbl;
4567890123456789 | -4567890123456789
(9 rows)
-- corner case: VALUES with no columns
CREATE TEMP TABLE nocols();
INSERT INTO nocols DEFAULT VALUES;
SELECT * FROM nocols n, LATERAL (VALUES(n.*)) v;
--
(1 row)
--
-- Test ORDER BY options
--

View File

@@ -148,6 +148,11 @@ SELECT 2+2, 57
UNION ALL
TABLE int8_tbl;
-- corner case: VALUES with no columns
CREATE TEMP TABLE nocols();
INSERT INTO nocols DEFAULT VALUES;
SELECT * FROM nocols n, LATERAL (VALUES(n.*)) v;
--
-- Test ORDER BY options
--