Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-20 Thread Greg Stark
On Thu, Feb 21, 2013 at 2:32 AM, Greg Stark wrote: > On Tue, Feb 19, 2013 at 2:00 PM, Andres Freund wrote: >> The only reasonable thing I can see us doing is renaming >> varattrib_1b_e.va_len_1be into va_type and redefine VARSIZE_1B_E into a >> switch that maps types into lengths. But I think I w

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-20 Thread Greg Stark
On Tue, Feb 19, 2013 at 2:00 PM, Andres Freund wrote: > The only reasonable thing I can see us doing is renaming > varattrib_1b_e.va_len_1be into va_type and redefine VARSIZE_1B_E into a > switch that maps types into lengths. But I think I would put this off, > except placing a comment somewhere,

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-20 Thread Andres Freund
On 2013-02-20 10:16:45 -0500, Robert Haas wrote: > On Tue, Feb 19, 2013 at 9:26 AM, Andres Freund wrote: > > On 2013-02-19 09:12:02 -0500, Robert Haas wrote: > >> On Tue, Feb 19, 2013 at 9:00 AM, Andres Freund > >> wrote: > >> >> I'd be a little > >> >> reluctant to do it the way you propose be

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-20 Thread Robert Haas
On Tue, Feb 19, 2013 at 9:26 AM, Andres Freund wrote: > On 2013-02-19 09:12:02 -0500, Robert Haas wrote: >> On Tue, Feb 19, 2013 at 9:00 AM, Andres Freund >> wrote: >> >> So the other way that we could do this is to use something that's the >> >> same size as a TOAST pointer but has different co

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-19 Thread Andres Freund
On 2013-02-19 09:12:02 -0500, Robert Haas wrote: > On Tue, Feb 19, 2013 at 9:00 AM, Andres Freund wrote: > >> So the other way that we could do this is to use something that's the > >> same size as a TOAST pointer but has different content - the > >> seemingly-obvious choice being va_toastrelid =

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-19 Thread Robert Haas
On Tue, Feb 19, 2013 at 9:00 AM, Andres Freund wrote: >> So the other way that we could do this is to use something that's the >> same size as a TOAST pointer but has different content - the >> seemingly-obvious choice being va_toastrelid == 0. > > Unfortunately that would mean you need to copy t

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-19 Thread Andres Freund
On 2013-02-19 08:48:05 -0500, Robert Haas wrote: > On Sat, Feb 16, 2013 at 11:42 AM, Andres Freund > wrote: > > Given that there have been wishes to support something like b) for quite > > some time, independent from logical decoding, it seems like a good idea > > to add support for it. Its e.g.

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-19 Thread Robert Haas
On Sat, Feb 16, 2013 at 11:42 AM, Andres Freund wrote: > Given that there have been wishes to support something like b) for quite > some time, independent from logical decoding, it seems like a good idea > to add support for it. Its e.g. useful for avoiding repeated detoasting > or decompression o

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-17 Thread Greg Stark
On Sat, Feb 16, 2013 at 4:42 PM, Andres Freund wrote: > I propose extending the EXTERNAL varlenas to be able to point to memory > instead just to disk. It seem apt to use EXTERNAL for this as they > aren't stored in the normal heap tuple but somewhere else. > Unfortunately there is no backward-com

Re: [HACKERS] [RFC] indirect toast tuple support

2013-02-16 Thread Andres Freund
On 2013-02-16 17:42:31 +0100, Andres Freund wrote: > +/* -- > + * toast_datum_differs - > + * > + * Determine whether two toasted datums are the same and don't have to be > + * stored again. > + * -- > + */ > +static bool > +toast_datum_differs(struct varlena *old_value, struct va