Yeah, I thought of that (actually bytea *), but then you have to assume that bytea and text will always be typedef'ed to the same thing. (Is casting between different non-void pointer types, even if they are compatible, a warning/error in C? I can't remember.)
On Thu, Oct 22, 2015 at 5:16 PM, Jim Nasby <Jim.Nasby@xxxxxxxxxxxxxx> wrote:
On 10/22/15 12:13 PM, Ken Been wrote:
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?
Why not just (bytea) cstring_to_text_with_len(...) ?
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com