Re: Maximum size for char or varchar with limit

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: adrian(dot)klaver(at)gmail(dot)com
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:04:07
Message-ID: 15790.1291824247@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rob Gansevles 2010-12-08 16:36:13 Re: Maximum size for char or varchar with limit
Previous Message Merlin Moncure 2010-12-08 15:32:02 Re: Asynchronous query execution