Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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)