Re: question about varchar

From: Gavan Schneider <pg-gts(at)snkmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: question about varchar
Date: 2012-12-19 02:39:48
Message-ID: 3384-1355884792-626106@sneakemail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tuesday, December 18, 2012 at 10:15, Rui Li wrote:
/*
** text 'cleaned' to remove message digest cruft
** apologies for any errors
*/
>In postgresql, we can create column as varchar(n)=94 where n is the
>sizeof the char, or we can just define column as varchar=94
>rli=3D# CREATE TABLE test (v1 varchar(100), v2 varchar);
>CREATE TABLE
>rli=3D# \d test
>Table "public.test"
>Column | Type | Modifiers
>--------+------------------------+-----------
>v1 | character varying(100) |
>v2 | character varying |
>
>so my question is: why should we even declare character varying(n) in
>postgresql when there's an easier options to declaring character
>varying (without n) is there any performance different between it? or
>some other reason we should use varchar(n) instead of just varchar?
>
>thanks for any help
>
The short answer seems to be: just use text, e.g.,
CREATE TABLE test (v1 text, v2 text);
and, only go to varchar(n) if there is a very special need.

Lots of good reasons to not use char(n) if you cannot guarantee
to fill the field every time (otherwise those right filled blank
padding characters will just cause problems).

There is no speed performance difference between them, but lots
of design advantages in favour of text (it's much more 'future proof').

These ideas are much better explained, and tested here:
<http://www.depesz.com/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/>

Regards
Gavan Schneider

In response to

  • at 2012-12-18 23:15:42 from News Subsystem

Browse pgsql-general by date

  From Date Subject
Next Message News Subsystem 2012-12-19 08:03:45
Previous Message News Subsystem 2012-12-18 23:15:42