Re: Maximum size for char or varchar with limit

From: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org, Rob Gansevles <rgansevles(at)gmail(dot)com>
Subject: Re: Maximum size for char or varchar with limit
Date: 2010-12-08 16:37:40
Message-ID: 4CFFB454.4020807@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 12/08/2010 08:04 AM, Tom Lane wrote:
> Adrian Klaver<adrian(dot)klaver(at)gmail(dot)com> writes:
>> So the answer is, it depends on your encoding.
>
> No, it doesn't. What Rob is looking for is this bit in htup.h:
>
> /*
> * MaxAttrSize is a somewhat arbitrary upper limit on the declared size of
> * data fields of char(n) and similar types. It need not have anything
> * directly to do with the *actual* upper limit of varlena values, which
> * is currently 1Gb (see TOAST structures in postgres.h). I've set it
> * at 10Mb which seems like a reasonable number --- tgl 8/6/00.
> */
> #define MaxAttrSize (10 * 1024 * 1024)
>
> The rationale for having a limit of this sort is (a) we *don't* want
> the upper limit of declarable length to be encoding-dependent; and
> (b) if you are trying to declare an upper limit that's got more than a
> few digits in it, you almost certainly ought to not be declaring a limit
> at all.
>
> regards, tom lane

Well that explains it :) Would it be possible to change the below
section in the docs to state that the declared max value of n is limited
to a max string size of 10Mb? I have always taken it to mean that the
max value was calculated based off the encoding. Then again it might
just be me.

"The maximum value that will be allowed for n in the data type
declaration is less than that. It wouldn't be useful to change this
because with multibyte character encodings the number of characters and
bytes can be quite different."

--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Gabi Julien 2010-12-08 16:37:51 Re: Postgresql 9.1 pg_last_xact_replay_timestamp limitations
Previous Message Rob Gansevles 2010-12-08 16:36:13 Re: Maximum size for char or varchar with limit