Re: carray_to_bytea?

From: Ken Been <kbbeen(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: carray_to_bytea?
Date: 2015-10-22 17:13:26
Message-ID: CANe84ryrzEkDAv03aKLKr-qcOnPjva+Y_HEYA3SmCd6PrmAPHQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Oct 22, 2015 at 4:12 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Ken Been <kbbeen(at)gmail(dot)com> writes:
> > I'd like to propose a carray_to_bytea function, similar to
> > cstring_to_text_with_len, declared in src/include/utils.h and implemented
> > in src/backend/utils/adt/varlena.c. The implementation would be the same
> > as cstring_to_text_with_len, but with a different return type.
>
> > I have put the implementation in my code, but I'd much prefer to use a
> > public API with hidden implementation.
>
> Hardly worth it, really. There is nothing to a bytea except the length
> and the bytes, so I'd say that any "information hiding" you might be
> getting is illusory. Moreover, such a function would encourage people
> to assemble useless intermediate copies of the bytestring rather than
> constructing it directly in the result object. Consider for example what
> byteacat() would look like if it were required to use such a function.
>
> (To some extent these arguments could also be made to apply to
> cstring_to_text_with_len, of course, but I consider that to be a sibling
> of cstring_to_text, which does have considerable usefulness.)
>
> regards, tom lane
>

All right, well, it's not a big deal for me, but I'll make one last pitch
concerning the usefulness. My input is a byte array with a length.
I can't assume zero-termination for varchar fields, so
cstring_to_text_with_len
is exactly what I need for those. For varbinary (i.e., bytea), you're
right, it's
just a couple of lines of code, but what if the implementation of struct
varlena
changes? Are we guaranteed that "palloc(len + VARHDRSZ)" will always
allocate the correct amount?

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jim Nasby 2015-10-22 17:16:55 Re: carray_to_bytea?
Previous Message Jim Nasby 2015-10-22 17:12:55 Re: temporary indexes?