Re: Avoid using lcons and list_delete_first in plan_union_children()
От | Heikki Linnakangas |
---|---|
Тема | Re: Avoid using lcons and list_delete_first in plan_union_children() |
Дата | |
Msg-id | f76c16ad-fd0a-191a-19b5-c899180a11bf@iki.fi обсуждение исходный текст |
Ответ на | Avoid using lcons and list_delete_first in plan_union_children() ("Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>) |
Список | pgsql-hackers |
On 01/12/2020 12:52, Hou, Zhijie wrote: > Hi, > > In function plan_union_children(), > I found the lcons and list_delete_first here is easy to be replaced by lappend and list_delete_last. > > And I also found a previous commit do similar thing, so I try to improve this one. > > Previous commit: > d97b714a219959a50f9e7b37ded674f5132f93f3 This doesn't matter much in practice. I was able to measure a performance difference with a very extreme example: "SELECT 1 UNION SELECT 2 UNION ... UNION SELECT 10000". That was about 30% faster with this patch. I don't see any downside, though. And like the commit message of d97b714a21, it's better to have good examples than bad ones in the code base, if someone copy-pastes it to somewhere where it matters. But then again, I'm not excited about changing these one by one. If this is worth changing, what about the one in simplify_or_arguments()? Or in CopyMultiInsertInfoFlush()? Perhaps it would make sense to invent a new Queue abstraction for this. Or maybe it would be overkill.. - Heikki
В списке pgsql-hackers по дате отправления: