Skip to content

Commit a914377

Browse files
committed
Expose the "*VALUES*" alias that we generate for a stand-alone VALUES list.
We were trying to make that strictly an internal implementation detail, but it turns out that it's exposed anyway when dumping a view defined like CREATE VIEW test_view AS VALUES (1), (2), (3) ORDER BY 1; This comes out as CREATE VIEW ... ORDER BY "*VALUES*".column1; which fails to parse when reloading the dump. Hacking ruleutils.c to suppress the column qualification looks like it'd be a risky business, so instead promote the RTE alias to full-fledged usability. Per bug #6049 from Dylan Adams. Back-patch to all supported branches.
1 parent 0484175 commit a914377

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/backend/parser/analyze.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,7 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
999999
* transforms a VALUES clause that's being used as a standalone SELECT
10001000
*
10011001
* We build a Query containing a VALUES RTE, rather as if one had written
1002-
* SELECT * FROM (VALUES ...)
1002+
* SELECT * FROM (VALUES ...) AS "*VALUES*"
10031003
*/
10041004
static Query *
10051005
transformValuesClause(ParseState *pstate, SelectStmt *stmt)
@@ -1162,6 +1162,7 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
11621162
rtr->rtindex = list_length(pstate->p_rtable);
11631163
Assert(rte == rt_fetch(rtr->rtindex, pstate->p_rtable));
11641164
pstate->p_joinlist = lappend(pstate->p_joinlist, rtr);
1165+
pstate->p_relnamespace = lappend(pstate->p_relnamespace, rte);
11651166
pstate->p_varnamespace = lappend(pstate->p_varnamespace, rte);
11661167

11671168
/*

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy