Re: Reducing tuple overhead
От | Alvaro Herrera |
---|---|
Тема | Re: Reducing tuple overhead |
Дата | |
Msg-id | 20150423181041.GL4369@alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: Reducing tuple overhead ("Joshua D. Drake" <jd@commandprompt.com>) |
Список | pgsql-hackers |
Thanks for posting this. Joshua D. Drake wrote: > First of all I should note that I discussed the approach mentioned above to > pgsql-hackers and got a very interesting comment from Tom Lane that adding > sorting info to Var and TargetEntry nodes was not a very good idea because > it'd break stored rules whenever a table column changed. So I went back and > studied that code and noticed that it was really the change in > RangeTableEntry that's doing the good magic; those other changes are > fortunately not necessary. (Though there were a necessary vehicle for me to > understand how the other stuff works.) So in the logical columns thread I was saying that this change of eref didn't work either; it seems that most of the time (if not always) the list should continue to be in attnum order, and the logical-ordering-info data should be obtained from the tuple descriptor and whatever needs to be sorted should be sorted afterwards, i.e. in setrefs.c, using data previously stored in RelOptInfo. I tried doing that and ran into some other mess elsewhere. > I've been continuing to study the backend code looking for uses of attribute > lists that assume a single ordering. As I get more into it, more complex > cases appear. The number of cases is fortunately bounded, though. <he hopes, and eventually gives up> > However, some other places are not like that. I have "fixed" SQL functions > two times now, and I just found out that the second fix (which I believed to > be "mostly correct") was to be the final one, but I found out just now that > it's not, and the proper fix is going to require something a bit more > low-level (namely, a projection step that reorders columns correctly after > the fact). Fortunately, I believe that this extra projection step is going > to fix a lot of other cases too, which I originally had no idea how to > attack. Moreover, understanding that bit means I also figured out what Tom > Lane meant on the second half of his response to my original pgsql-hackers > comment. So I think we're good on that front. I had forgotten my intention to rework things using projection. In any case, I have posted a lot of patches now which others could study, if there's interest. I would sure like to see this split, and there are multiple benefits such as reduction of padding space. I'm sure there's a nonempty set of guys brighter than me that could figure it out in not that much time. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления: