| From: | "Brendan Jurd" <direvus(at)gmail(dot)com> |
|---|---|
| To: | "Gregory Stark" <stark(at)enterprisedb(dot)com> |
| Cc: | pgsql-patches(at)postgresql(dot)org |
| Subject: | Re: Eliminate more detoast copies for packed varlenas |
| Date: | 2007-09-27 12:53:06 |
| Message-ID: | 37ed240d0709270553u20e5cd3fp9827d665bb387fd@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers pgsql-patches |
On 9/22/07, Gregory Stark <stark(at)enterprisedb(dot)com> wrote:
> Ok, this removes what should be most if not all of the call sites where we're
> detoasting text or byteas. In particular it gets all the regexp/like functions
> and all the trim/pad functions. It also gets hashtext and hash_any.
Looks like there's some more of this in src/tutorial/funcs.c and funcs_new.c.
On a related note, while I was trawling through header files trying to
wrap my head around all this toast and varlena business, I found the
following comment, in fmgr.h and reiterated in postgres.h:
<>
WARNING: It is only safe to use PG_DETOAST_DATUM_UNPACKED() and
VARDATA_ANY() if you really don't care about the alignment.
</>
Shouldn't this be PG_DETOAST_DATUM_PACKED()? I'm emboldened by the
fact that there is no macro called PG_TOAST_DATUM_UNPACKED defined
anywhere in postgres.
Patch attached, in case I've got the right idea.
Regards,
BJ
| Attachment | Content-Type | Size |
|---|---|---|
| packed-comment.diff | text/plain | 1.8 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Brendan Jurd | 2007-09-27 13:41:52 | Re: Text <-> C string |
| Previous Message | Simon Riggs | 2007-09-27 11:56:51 | Re: [FEATURE REQUEST] Streaming Onlinebackup (Maybe OFFTOPIC) |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Brendan Jurd | 2007-09-27 13:41:52 | Re: Text <-> C string |
| Previous Message | Magnus Hagander | 2007-09-27 09:59:44 | Re: Warning is adjusted of pgbench. |