[COMMITTERS] pgsql: Fix crash when columns have been added to the end of a view. - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Fix crash when columns have been added to the end of a view.
Date
Msg-id E1e8CBg-0000iD-Pp@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix crash when columns have been added to the end of a view.

expandRTE() supposed that an RTE_SUBQUERY subquery must have exactly
as many non-junk tlist items as the RTE has column aliases for it.
This was true at the time the code was written, and is still true so
far as parse analysis is concerned --- but when the function is used
during planning, the subquery might have appeared through insertion
of a view that now has more columns than it did when the outer query
was parsed.  This results in a core dump if, for instance, we have
to expand a whole-row Var that references the subquery.

To avoid crashing, we can either stop expanding the RTE when we run
out of aliases, or invent new aliases for the added columns.  While
the latter might be more useful, the former is consistent with what
expandRTE() does for composite-returning functions in the RTE_FUNCTION
case, so it seems like we'd better do it that way.

Per bug #14876 from Samuel Horwitz.  This has been busted since commit
ff1ea2173 allowed views to acquire more columns, so back-patch to all
supported branches.

Discussion: https://postgr.es/m/20171026184035.1471.82810@wrigleys.postgresql.org

Branch
------
REL9_3_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/9d15b8b36a9185f9990309770f480900310c75d4

Modified Files
--------------
src/backend/parser/parse_relation.c       | 12 ++++-
src/test/regress/expected/alter_table.out | 85 +++++++++++++++++++++++++++++++
src/test/regress/sql/alter_table.sql      | 20 ++++++++
3 files changed, 116 insertions(+), 1 deletion(-)


--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: [COMMITTERS] pgsql: Allow parallel query for prepared statements with genericplans.
Next
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Dept of second thoughts: keep aliasp_item in sync withtlistitem