Re: PSQL Data Type: text vs. varchar(n)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Chris <dmagick(at)gmail(dot)com>
Cc: kurt _ <kjs216(at)hotmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: PSQL Data Type: text vs. varchar(n)
Date: 2006-03-31 05:27:16
Message-ID: 3535.1143782836@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Chris <dmagick(at)gmail(dot)com> writes:
> kurt _ wrote:
>> My question: Is a text field just a varchar(Integer.MAX_VALUE)?

> varchar has a max of 255 characters,

You must be using some other database ;-)

The current Postgres code has a physical limit of 1G bytes for any
column value (and in practice you'll hit the threshold of pain
performance-wise at much less than that). The only real difference
between type "text" and type "varchar(N)" is that you'll incur runtime
overhead checking that values assigned to varchar columns are not any
wider than the specified "N".

My own take on this is that you should "say what you mean". If you do
not have a clear application-oriented reason for specifying a particular
limit N in varchar(N), you have no business choosing a random value of N
instead. Use text, instead of making up an N.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Christopher Browne 2006-03-31 05:27:18 Re: [Slightly OT] data model books/resources?
Previous Message Chris Travers 2006-03-31 05:25:05 Re: PSQL Data Type: text vs. varchar(n)