diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index d81d63f922fde450def1c17efaf6060b2760524e..e8620ef07389970fd4aefcc5c88b0bde58f95fc3 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -1767,7 +1767,8 @@ typedef struct <para> Finally, all variable-length types must also be passed by reference. All variable-length types must begin - with a length field of exactly 4 bytes, and all data to + with an opaque length field of exactly 4 bytes, which will be set + by SET_VARSIZE; never set this field directly! All data to be stored within that type must be located in the memory immediately following that length field. The length field contains the total length of the structure, @@ -1833,7 +1834,7 @@ memcpy(destination->data, buffer, 40); ]]> </programlisting> - <literal>VARHDRSZ</> is the same as <literal>sizeof(int4)</>, but + <literal>VARHDRSZ</> is the same as <literal>sizeof(int32)</>, but it's considered good style to use the macro <literal>VARHDRSZ</> to refer to the size of the overhead for a variable-length type. Also, the length field <emphasis>must</> be set using the