pgsql: Allow extracting fields from a ROW() expression in more cases.
От | Tom Lane |
---|---|
Тема | pgsql: Allow extracting fields from a ROW() expression in more cases. |
Дата | |
Msg-id | E1qhFx0-0042ty-LY@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Allow extracting fields from a ROW() expression in more cases. Teach get_expr_result_type() to manufacture a tuple descriptor directly from a RowExpr node. If the RowExpr has type RECORD, this is the only way to get a tupdesc for its result, since even if the rowtype has been blessed, we don't have its typmod available at this point. (If the RowExpr has some named composite type, we continue to let the existing code handle it, since the RowExpr might well not have the correct column names embedded in it.) This fixes assorted corner cases illustrated by the added regression tests. This is a back-patch of the v13-era commit 8b7a0f1d1 into previous branches. At the time I'd judged it not important enough to back-patch, but the upcoming fix for bug #18077 includes a test case that depends on this working correctly; and 8b7a0f1d1 has now aged long enough to have good confidence that it won't break anything. Discussion: https://postgr.es/m/10872.1572202006@sss.pgh.pa.us Discussion: https://postgr.es/m/3607145.1694803130@sss.pgh.pa.us Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/ece1154f4c892585ee824a2bde764ff85169b021 Modified Files -------------- src/backend/utils/fmgr/funcapi.c | 32 ++++++++++++++++++++++++++++ src/test/regress/expected/rowtypes.out | 39 ++++++++++++++++++++++++++++++++++ src/test/regress/sql/rowtypes.sql | 9 ++++++++ 3 files changed, 80 insertions(+)
В списке pgsql-committers по дате отправления: