Andres Freund wrote: > Hi, > > I've previously mentioned (e.g. ) that tuple deforming is a serious > bottlneck. I've also experimented successfully  making > slot_deform_tuple() faster.
I'm currently messing with making heapam.c be just one possible implementation of tuple storage, to allow other modules to implement tuple storage in different ways. Each such module would have a pg_am row, and among the set of routines that such a module would have to provide is the equivalent of slot_deform_tuple, which takes a tuple in whatever format the storage module uses and puts it into executor-formatted tts_values/tts_isnull arrays. For tuples coming from heapam.c-formatted tables that would be pretty much slot_deform_tuple, but of course other modules could have tuples in completely different formats. (This is one part in the larger project of columnar storage, where a storage module would store tuples in some columnar format rather than row-oriented. Obviously, tuple deforming means a completely different thing in that world than in heapam.c). No patch to show at present; I mentioned this project in Brussels. I intend to present for 10.0. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers