Re: VARATT_EXTERNAL_GET_POINTER is not quite there yet

From: Gregory Stark <stark(at)enterprisedb(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: VARATT_EXTERNAL_GET_POINTER is not quite there yet
Date: 2008-02-21 09:11:38
Message-ID: 87ir0ivflh.fsf@oxford.xeocode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

> After much experimentation I was able to get it to work by invoking
> memcpy through a function pointer, which seems to be sufficient to
> disable this particular compiler's built-in intelligence about memcpy.
> I can't say that I find this a nice clean solution; but does anyone have
> a better one?

I'm thinking instead of having struct varlena (which you're not allowed to
safely use any members of anyways) we should just have a typedef to void*.

That would make things like DATUM_GET_TEXT_PP slightly more sane as well.
text* would just be a typedef to void* which could be passed to VARDATA_ANY
and VARDATA_ANY_EXHDR but not manipulated directly.

--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Get trained by Bruce Momjian - ask me about EnterpriseDB's PostgreSQL training!

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2008-02-21 09:18:38 Re: Permanent settings
Previous Message Gevik Babakhani 2008-02-21 08:04:56 Re: Which MemoryContext?