Re: Alias of VALUES RTE in explain plan
От | Yasir |
---|---|
Тема | Re: Alias of VALUES RTE in explain plan |
Дата | |
Msg-id | CAA9OW9cL+d-uDA9OxcvLTRnqtVdgFq4A_rVdjtQp_bcAWhjbiQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Alias of VALUES RTE in explain plan (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Alias of VALUES RTE in explain plan
|
Список | pgsql-hackers |
On Sat, Oct 26, 2024 at 12:21 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
I wrote:
> However ... I don't like this implementation, not even a little
> bit.
I forgot to mention a third problem, which is that reassigning the
alias during subquery pullup means it doesn't happen if subquery
pullup doesn't happen. As an example, with your patch:
regression=# explain verbose select * from (values (1), (2)) v(x);
QUERY PLAN
----------------------------------------------------
Values Scan on v (cost=0.00..0.03 rows=2 width=4)
Output: v.x
(2 rows)
regression=# explain verbose select * from (values (1), (random())) v(x);
QUERY PLAN
-------------------------------------------------------------
Values Scan on "*VALUES*" (cost=0.00..0.03 rows=2 width=8)
Output: "*VALUES*".column1
(2 rows)
That's because the volatile function prevents subquery flattening.
Yes, that is by design. As I used is_simple_values() so if the values list is not a simple one, which is not in this case, the alias won't be reassigned.
regards, tom lane
В списке pgsql-hackers по дате отправления: