On Wed, Jul 28, 2010 at 1:20 AM, Mike Lewis <mikelikes...@gmail.com> wrote: >> >> > 1. As-is, it's a significant *pessimization* for small arrays, because >> > the heap_tuple_untoast_attr_slice code does a palloc/copy even when one >> > is not needed because the data is already not toasted. I think there >> > needs to be a code path that avoids that. >> >> This seems like it shouldn't be too hard to fix, and I think it should be >> fixed. > > Do you have any suggestions where to start? I do agree that this should be > fixed as well. I don't have too much time to dedicate to this project. I > can try to put in some time this weekend though if it isn't looking too bad.
Perhaps you could check VARATT_IS_EXTENDED. If that's true, then slice it, but if it's false, then just use the original datum. You might want to wrap that up in a function rather than cramming it all in the macro definition, though. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise Postgres Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers