Re: [PATCH] Use idiomatic style for varlena structs

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Jay Levitt <jay(dot)levitt(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-docs(at)postgresql(dot)org" <pgsql-docs(at)postgresql(dot)org>
Subject: Re: [PATCH] Use idiomatic style for varlena structs
Date: 2012-03-22 19:49:14
Message-ID: CA+TgmoZH3mVMvo2dTBhZ58cN-od0ZPWQvkpFzV7gaFDs4RAjrg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Mon, Feb 13, 2012 at 1:57 PM, Jay Levitt <jay(dot)levitt(at)gmail(dot)com> wrote:
> Tom Lane wrote:
>>
>> Jay Levitt<jay(dot)levitt(at)gmail(dot)com>  writes:
>>>
>>> I'm new to the codebase, but I think this patch reflects real-world
>>> usage;
>>> the PostgreSQL code itself always calls the length field "vl_len_", and I
>>> believe int32 is preferred over int4 (yes?)
>>
>>
>> The point of calling it vl_len_ is that it should never be referenced by
>> that name, so I'm not sure that propagating that name into user
>> documentation is a good idea.  I do agree with the part of this patch
>> that recommends use of SET_VARSIZE.
>
>
> Ah, ok.  My confusion came from trying to build a new extension, using cube
> as a baseline; cube (and all the other contrib extensions) use vl_len_, so I
> saw a disconnect between the "int4 length" in the manual and the
> "int32 vl_len_" in all the real-world examples I had.
>
> My thought was that "vl_len_" *feels* more like a "this is mysterious and
> I'd better not touch it - I'll use that macro", while "length" feels more
> like something I might just set myself if I didn't know better.  But maybe
> not.  Either way, the int32/int4 thing should be fixed.
>
>
>> For context, the issues you're concerned about only matter when dealing
>> with a toastable datatype (not all varlena types are toastable).  The
>> particular bit of docs here doesn't pretend to be explaining how to
>> write toast-safe code.  I think it might be better from an expository
>> standpoint to cover that separately, rather than try to work it into the
>> very first pass over the concepts.
>
>
> Definitely; if anything, that's why I was favoring vl_len_. This is a magic
> field. Do not touch the magic.

I've committed the parts of this to which Tom did not object.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Fujii Masao 2012-03-23 01:21:59 Re: [COMMITTERS] pgsql: Update docs on numeric storage requirements.
Previous Message Robert Haas 2012-03-22 19:41:24 Re: NUMERIC size