> I don't really see this as a big deal since, for example, only 16 bytes
> are allocated for a char16, so it is not guaranteed to be zero delimited
> and you have to make a working copy to use libc functions anyway. Also,
> that is really an implementation detail or annoyance rather than a
> user-visible feature.
Agreed.
> With the macros that are provided for the varlena structure
> manipulations, things are pretty convenient. Are there more macros which
> could be helpful here??
From postgres.h:
#define VARSIZE(PTR) (((struct varlena *)(PTR))->vl_len)
#define VARDATA(PTR) (((struct varlena *)(PTR))->vl_dat)
#define VARHDRSZ sizeof(int32)
I have gone throught the code before 6.3, and changed many hard-coded
4's to use these macros.
--
Bruce Momjian | 830 Blythe Avenue
maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)