Re: [PATCHES] Eliminate more detoast copies for packed varlenas

From: Gregory Stark <stark(at)enterprisedb(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "PostgreSQL-development Hackers" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCHES] Eliminate more detoast copies for packed varlenas
Date: 2007-09-24 14:15:01
Message-ID: 87abrcf8uy.fsf@oxford.xeocode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:

> (It might be interesting to make textin produce a packed result when
> possible, just to see what breaks; but I would be afraid to try to do
> that for production...)

Reassuringly all checks pass with a hack like that in place. (attached)

I think the right approach here is to define a new type text_packed * (which
would just be a char* or varattrib_1b* or something like that). Then
PG_GETARG_*_PP would return one of these new pointers.

This does leave us with warnings whenever an old-style function calls a
new-style function but I think there would be relatively few of those since
we'll tackle the higher traffic areas first which will be the lower level
functions.

The benefit is that it will give us a warning if we try to pass a pointer from
a new-style function to an old-style function which isn't prepared to receive
it.

Attachment Content-Type Size
debug-packed-varlena_v0.patch text/x-diff 832 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2007-09-24 14:32:19 Re: Bytea as C string in pg_convert?
Previous Message Dave Page 2007-09-24 13:18:38 Re: CREATE DATABASE cannot be executed from a function or multi-command string

Browse pgsql-patches by date

  From Date Subject
Next Message ITAGAKI Takahiro 2007-09-25 01:07:41 Re: ilike multi-byte pattern cache
Previous Message Simon Riggs 2007-09-24 10:30:37 Re: [HACKERS] 'Waiting on lock'