On Wednesday 08 December 2010 7:06:07 am Rob Gansevles wrote:
> Adrian,
>
> Thanks for the reply, but this refers to max row or field size, it
> does not tell me where the max varchar limit of 10485760 comes from
> and if this is fixed or whether it depends on something else
>
> Has anyone some info on this?
>
> Rob
In varchar(n) the n is length of character not bytes. The best description of
what that means is from section 8.3
"The storage requirement for a short string (up to 126 bytes) is 1 byte plus the
actual string, which includes the space padding in the case of character.
Longer strings have 4 bytes of overhead instead of 1. Long strings are
compressed by the system automatically, so the physical requirement on disk
might be less. Very long values are also stored in background tables so that
they do not interfere with rapid access to shorter column values. In any case,
the longest possible character string that can be stored is about 1 GB. (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.
If you desire to store long strings with no specific upper limit, use text or
character varying without a length specifier, rather than making up an
arbitrary length limit.) "
So the answer is, it depends on your encoding.
--
Adrian Klaver
adrian.klaver@gmail.com